A few months ago, a client reached out asking me to build a custom web app for their startup.
We got on a call, went through their feature list, and everything sounded pretty standard: Google login, team workspaces with roles, Stripe billing, and some basic AI prompts.
When they asked for an estimate, I told them around 2 to 3 months.
Their response was quick: "We need an MVP in 3 weeks. We can't wait that long."
Just like that, the deal was gone.
The real problem with starting from scratch
What bothered me most was knowing that most of those 3 months would not even go toward the client's actual product.
It was the foundational plumbing that took all my time:
Setting up secure cookie sessions, handling subscription webhooks and tax compliance, writing middleware so workspace members cannot see each other's data, building an admin screen to debug user accounts, metering OpenAI API tokens so costs do not run wild, and fixing mobile UI bugs.
Every single project started with an empty create-next-app folder. And every single time, I found myself copy-pasting half-broken snippets from old repos or rewriting the exact same boilerplate from scratch.
It was exhausting, and it was costing me deals.
Spending two weeks to fix the workflow
After losing another deal to the exact same timeline issue, I stopped taking new client requests for a couple of weeks to build one reusable baseline for Next.js.
I pulled together the backend pieces I was tired of rewriting:
- Cookie-based authentication with email verification and a 1-click demo login
- Multi-tenant workspaces with Owner, Admin, and Member permissions
- Dual billing setup: Polar for automatic merchant-of-record global tax, plus Stripe checkout
- A dedicated super-admin portal with 1-click user impersonation to troubleshoot bugs
- An AI studio module with live token metering per workspace
- Flat, accessible UI components that do not collapse when buttons show loading spinners
What changed
Now, when a client asks for a new web app, I do not spend three weeks wiring database connections and auth flows. The foundational plumbing is already running and tested.
I can spin up a working prototype in a few days, and almost all my billable hours go directly into the client's unique business logic.
If you build web apps for clients or launch solo SaaS projects, stop rebuilding auth and billing from zero on every repository. Take some time to clean up your own boilerplate, or use a solid starter kit. It saves you weeks of unpaid plumbing work and keeps you from burning out.
You can check out the live demo and the architecture blueprint we put together at devpreflight.com.
How do you usually handle repetitive backend setups when starting a fresh project? Do you maintain your own starter or build as you go?
Top comments (0)