DashSuey began as my own dashboard: weather, todos, reminders, GitHub activity, Spotify and site health on a grid I could drag into any shape. One user, no login, no public URL.
The cheap way to build that is a static page and localStorage. I went the other way on purpose: a hosted database from the first commit, every widget a self-contained component, and the multi-user steps written down before anyone else could sign in. I was betting that if the personal version was engineered like a product, the product would be an upgrade instead of a rewrite.
That's roughly how it went. Going multi-user meant adding auth, adding a user_id column and turning on row-level security, and the migrations still show it in order: first any signed-in user, then the owner only, then every person seeing only their own rows. The existing widget, settings, todo and reminder tables gained a column and a policy.