The engineering bottleneck with assembled stacks
Founding engineers ship multi-tenant products on a pile of free tiers: auth from one vendor, database from another, files somewhere else, billing events reconstructed later. Each is fine alone; together they mean the two-person team operates five consoles before it has five customers, and the first enterprise prospect’s residency question ends the conversation.
Architecture on the Software Lifecycle Cloud
One project holds the product: a tenants table keyed by tenant id, accounts under it, gateway routes marked private with API keys, and Go functions for the API. Longer work — imports, report generation, webhook delivery — becomes nodejs or python workers when the founding code is not Go. Frontend apps live under apps/ and deploy into the same project, so staging and production differ by target, not by assembly.
Multi-tenancy as a key discipline
There is no multi-tenant magic switch; there is a key discipline the stack makes natural. Tenant-scoped tables carry tenant id in the key, handlers derive the tenant from the API key or session rather than trusting request parameters, and one tenant’s slice is one keyed read. Stated plainly in the code review, enforced in every handler — that is what passes a security review at MVP scale.
- API keys are gateway objects: minted per route, printed once, rotatable from stack.json
- An idle MVP spends no compute credits — nights and pre-customer months cost storage pennies
- Preview targets run the same declared stack, so the demo a prospect clicks is the system they would buy
When the MVP outgrows the pattern
Relational reporting across tenants, exotic compliance, and planet-scale traffic are real later problems with real other tools. The KERNSTACK claim is about the first two years: one declared project a small team can hold in its head, where adding a table or a worker is a diff, not a procurement.
Start from the official func-go-minimal starter blueprint or the full-stack platform demo.
Frequently asked questions
By key design and handler discipline: tenant id is part of the table keys, and handlers take the tenant from the authenticated key or session — never from a client-supplied field. Isolation is reviewable in the diff because the whole backend is in one project.
Mostly storage at 0.04 credits per GB-hour. Compute bills at 0.01 credits per GiB-second only when requests run, so a pre-revenue product idles at pocket change instead of a floor of always-on instances.
As workers and workflows in the same stack.json. Onboarding sequences, dunning reminders, and weekly digests become declared steps — including human steps when a founder should eyeball an enterprise onboarding.
Related capabilities, architectures, and comparisons
Ship your stack on the Software Lifecycle Cloud.
Closed preview on dedicated European infrastructure. Bring a repository or start from a blueprint.