Stop rebuilding the first week.
One command in an empty repo: OAuth, workspaces, a typed database, uploads. Written into your project as source you own, not a package you depend on.
01 / ACCESS Pay once. Yours forever.
$ unitstack add base license ul_**************** modules all, forever updates when you choose code yours$ █One key unlocks every module - the ones here and the ones coming - plus the write-ups on how each works. No seats, no renewals, no metering.
02 / DAY ONE You own every line.
█- hooksLifecycle events modules subscribe to. Adding storage later means deleted users lose their files, without editing auth.
- databaseMillisecond reads, generous free tier. Typed schema, migrations wired, cascades declared.
- workspacesOrg-scoped from the first row. B2C and B2B on one schema: personal workspaces or teams with owner/admin/member, no migration between them.
- authGoogle OAuth with PKCE, sealed stateless sessions, takeover detection on relinked identities. Login page, callback, logout, account deletion.
That session is real. Empty repo to working sign-in and tenancy before your first commit.
03 / MODULES Additive, always.
New files only. A module never rewrites a line you wrote, and you take updates as diffs when it suits you.
- coreIds, logging, the primitives the rest import.
- dbMillisecond reads from anywhere, priced like a rounding error. Typed schema, migrations wired, cascades declared.
- authGoogle OAuth end to end: PKCE flow, sealed session cookies, takeover checks, account deletion.locked
- storagePresigned direct uploads, signed downloads, per-workspace quotas, orphan sweeps.locked
- ratelimitFixed-window limits that hold across serverless instances. One call, no new infra.locked
- paymentsCheckout, webhooks, entitlements behind one function. Swap providers without touching features.locked
your repo, after