Phase 11: Maintenance
Once shipped, the work changes — watch Sentry, reply to users, merge Dependabot, watch the bills. Performance and costs both stay small if you let them.
Phase 11: Maintenance
In one line: Once shipped, the work shifts from building to watching, replying, and iterating. The hardest discipline is not accumulating a half-built backlog.
Maintenance isn't glamorous, but it's where projects either survive or die. Half-built backlog items rot; ignored error reports compound; angry users become churned users. The fix is a small weekly routine — fifteen minutes of looking at the right dashboards — that catches almost everything before it becomes a crisis.
Regular Maintenance
Once shipped, the work changes:
- Watch Sentry weekly for new error patterns.
- Watch your Stripe dashboard for failed payments.
- Reply to user emails promptly — early users are gold.
- Merge Dependabot PRs weekly (or daily, with caution).
- Back up data — most managed databases (Neon, Supabase) auto-backup, but check your settings.
Adding Features
Use the same loop: pick one feature, build it end-to-end, ship it. Don't accumulate a half-built backlog.
Performance
Most personal projects don't have performance problems. If they do:
- Check the slow query log in Neon/Supabase.
- Add indexes on columns you filter/sort on.
- Add caching with
unstable_cache(Next.js) or Redis. - Optimize images with Next.js
<Image>.
Costs
Watch your bills. A typical personal project at low traffic:
| Item | Cost/month |
|---|---|
| Domain (annualized) | $1 |
| Vercel (free tier) | $0 |
| Neon (free tier) | $0 |
| Clerk (up to 10K MAU) | $0 |
| Sentry (free tier) | $0 |
| Stripe (per transaction) | variable |
| Total | ~$1/month |
If you grow beyond free tiers:
| Item | Cost/month |
|---|---|
| Vercel Hobby → Pro | $20 |
| Neon Pro | $19 |
| Clerk paid | $25–100 |
| Sentry Team | $26 |
| Better Stack | $24 |
| Total at small scale | $100–200 |
Still trivial for a project earning anything meaningful.
Schedule a recurring 15-minute calendar block, once a week, called "ShelfTrack tending." In that block:
- Open Sentry — scan for new issues. Triage one if there is one.
- Open Stripe — check for failed charges or chargebacks.
- Open your inbox — reply to user emails (even just "got it, looking into it").
- Open your GitHub PRs page — merge any Dependabot updates that look safe.
Fifteen minutes, once a week. That's the whole maintenance routine for a small SaaS until you have hundreds of users.
At a big company, one customer is one of millions. For your indie project, one of your first ten users is ten percent of your user base. Reply to their emails. Ask them questions. Ship the feature they asked about. Treat them like co-founders, because that's basically what they are.
Common mistakes
- Auto-merging every Dependabot PR. It feels productive until a minor bump to a transitive dep takes prod down on a Sunday morning. The fix is to merge security patches quickly but treat every major-version PR like a real change — read the changelog, run it on a preview deploy, then merge.
- Ignoring user emails for "a week or two." Early users who get silence churn permanently — and they were your free product research. The fix is a same-day acknowledgment (even just "got it, looking into it") and a real reply within the week. Email is your highest-signal feedback channel; treat it that way.
- Adding indexes you don't need. "Performance maintenance" turns into indexing every column "just in case," and now every write is slower. The fix is to add indexes only when the slow query log actually flags the query — measure first, then index the column you're filtering on.
- Not watching the bill until it surprises you. A runaway loop calling the OpenAI API or a Neon compute spike from a misbehaving cron job turns "$1/month" into "$240 next Tuesday." The fix is a monthly spend alert on every paid service (Stripe Radar, OpenAI, AWS) — caught at $20, not $200.
- Skipping the weekly tending block "because nothing is broken." That's exactly when problems compound silently. The fix is to run the 15-minute routine even when everything looks fine — Sentry trends, slow query log, failed Stripe charges. The point of a routine is that you do it before you need to.
Page checkpoint
Did the maintenance routine stick?
RequiredWhat's next
→ Continue to Realistic Time Investment where we'll look at how long indie SaaS v1s actually take.