It's the first real engineering decision of a B2B SaaS: buy a boilerplate and start at the 40-yard line, or build from scratch and get exactly what you want. Both choices are defensible, and both have a cost people underestimate. Here's the honest version — and a third path that's become the default for teams that have done this before.
The case for a boilerplate
A good boilerplate hands you auth, billing, a dashboard, and a deploy setup on day one. For a B2B MVP where the differentiator is the domain logic, not the plumbing, that's real leverage.
The catch: a boilerplate is frozen the moment you fork it. You inherit its stack, its patterns, and its assumptions — and from then on you maintain a codebase you didn't design. When your data model diverges from the template's, you're editing dozens of files by hand. And most boilerplates are single-tenant or bolt multi-tenancy on awkwardly, which is exactly the part B2B can't get wrong.
The case for building from scratch
From scratch, the app fits your domain perfectly and your team owns every decision. For a genuinely novel architecture, that control is worth it.
The catch: you rebuild the same undifferentiated spine every startup builds — auth, tenancy, billing, migrations, mobile, compliance — before you write a line of the thing customers pay for. That's typically 3–4 weeks of margin spent on code that looks identical to everyone else's.
The honest trade-off
| | Boilerplate | From scratch | Generate-and-own | |---|---|---|---| | Time to first working app | Days | Weeks | ~20 minutes | | Fit to your domain | Generic | Perfect | Driven by your spec | | You own + can change it | ✅ (but frozen) | ✅ | ✅ (regenerate) | | Multi-tenancy done right | Often weak | If you build it | Baked in | | Maintenance burden | You inherit it | You own it | Re-emit from the model | | Compliance controls | Rare | If you build them | Baked in |
The third option: generate from a spec, own the output
The reason "boilerplate vs scratch" feels like a forced choice is that both are static — one is someone else's frozen code, the other is your hand-written code. Generation removes the framing.
With Archiet you describe the product (or upload a PRD), it builds a formal ArchiMate blueprint, and it generates a production B2B SaaS codebase — tenant isolation, auth, billing, migrations, mobile, and compliance controls — that you download and own. When the domain model changes, you update the spec and regenerate, instead of hand-patching a frozen template or rebuilding from scratch.
You get the speed of a boilerplate, the fit of from-scratch, and neither of the catches.
So which should you pick?
- Throwaway validation, no buyers yet? A prototype tool is fine — don't over-invest.
- Building a B2B SaaS you intend to sell and pass a security review? Don't fork a frozen template and don't burn a month on plumbing. Generate the spine, own the code, and spend your weeks on the domain logic that actually differentiates you.
FAQ
Isn't generated code lower quality than from-scratch? It's idiomatic, tested, and documented (ADRs + a system map), generated from a formal model rather than a freeform prompt — so it's consistent across the app. You own it and can edit it like any repo.
Can I still customize heavily after generating? Yes — it's your source code. Many teams generate the spine, then build their differentiated logic on top by hand.
What about multi-tenancy specifically? Tenant scoping is enforced in every query by default — the part boilerplates most often get wrong is the part generation makes structural.
See the third option on your idea
Describe your B2B SaaS and watch the spine get built — or start with the free architecture audit for a consulting-grade read on your architecture in about 15 seconds.