Your app is alive. Keep it that way.
Monthly upkeep by engineers who know your code. Dependency updates, bug fixes, small features, and somebody answering the pager at 3am when you actually need it. No full retainer required.
Predictable floor cost that scales with your needs. Three tiers. No surprise invoices.
One-hour response on production-down incidents at Reef and Harbor tiers during business hours.
On-call rotation included at Harbor. Same engineers who know your code take your 3am call.
Zero onboarding if we built your app. Senior ramp time if we did not, scoped by intake report.
Someone built your app. Now someone has to keep it.
Every shipped app ends up in the same place. The initial build is done. The contractor team has moved on. The founder hacker friend has a full-time job now. The agency that built it has new clients. The senior engineer who ramped on your code has left the company.
Meanwhile, your app still serves users. Still takes payments. Still needs the React version bumped, the Node LTS updated, the database patched, the SSL renewed, the Stripe SDK migrated, and the customer who hit a weird edge case at 9pm on a Saturday handled. You do not need a full development retainer. You need somebody whose job is specifically to not let your app slowly fall apart.
Your original dev team is gone.
The app works. The app will keep working until it does not. Every tiny change is a three-day ordeal: find a dev, ramp them on the repo, wait for an estimate, approve it, merge the PR, hope the deploy works. You have been meaning to find a real upkeep partner for fourteen months.
Something breaks at the worst possible time.
Your first option is DM your former dev on LinkedIn and hope. Your second option is post a $300 emergency job on Upwork. Your third option is ignore it until Monday and pray. None of these scale past the first time.
Dependencies two majors behind.
React 18, Node 18 LTS end of life, every dependency one to two majors behind, and the last security patch your team applied was the day you went live. Deferred maintenance costs 3-4x ongoing maintenance. Every month you defer is two months you owe later.
Intake, stabilize, operate, improve, review.
Five phases from the first handshake to the annual review cadence. No sales theater. A working rhythm that keeps your app cared for.
Read the repo. Write the honest diagnosis.
If we built your app, zero intake. Upkeep starts the day the build warranty ends. If someone else built it, a five-hour codebase walkthrough: we clone the repo, read everything, and produce an inherited codebase report listing known issues, urgent patches, deferred debt, and infrastructure risk. Flat $500 if you sign the upkeep plan, $1,500 standalone.
Patch the four-alarm fires nobody told you about.
Exposed secrets, failing auth, out-of-date SSL, known CVEs, runaway cloud cost leaks. This is not gradual modernization. This is the sweep that makes sure the house is not on fire before we move in. Included in the intake phase, not billed extra.
Monthly rhythm. Slack open. Incidents handled.
Dependency updates, infrastructure reviews, error monitoring, support ticket triage, minor bug fixes inside your hour allocation. Incidents handled per tier SLA. A written monthly upkeep report shows what shipped, what broke, what is coming, and what the hour bank looks like.
Quarterly improvement sprint. You approve the scope.
Every quarter we review the backlog: small features you could not justify a full project for, code quality refactors, performance optimizations, cost reductions. You approve the quarter scope. We execute inside the tier hour allocation. No surprise change orders.
Annual roadmap. Honest about tier changes.
Annual review covers the year incidents, performance trends, cost trajectory, and a roadmap for the next twelve months. This is also where we discuss tier changes, scope shifts, and whether your app has grown enough to graduate to a full retainer.
Upkeep, not ghost-mode.
Concrete deliverables every month. Nothing vague. Nothing "included on request." The list below is what is actually in the subscription, varying only by tier allocation.
Not included at any tier. These are separate engagements.
- Major features beyond hour allocation. Bill at retainer rate or upgrade tier.
- Full rebuilds or rewrites. Scope as a Custom Business Apps engagement.
- SOC 2 / HIPAA compliance work. Add-on. We will scope it as a separate project.
- Strategy or product direction. Upgrade to Advisory + Build, or engage a fractional CTO elsewhere.
Skip this solution if any of these are true.
You are actively building a new product.Upkeep is for apps in maintenance mode. If you are shipping features every week, you need Starter, Momentum, or Deep End.
You have a full in-house engineering team.Upkeep adds cost without displacing work. You might still want us for emergency on-call coverage, but the economics only make sense if there is a gap we are filling.
Your app is at massive scale.Tens of millions of requests per day need dedicated SRE, not a monthly upkeep retainer. We happily refer those conversations out.
Stack we do not support.No Java Spring, .NET enterprise, or legacy mainframe. Rails, Django, Node.js, Next.js, Laravel, and PHP WordPress are our comfort zone.
You want free support forever.The original build warranty is included in the build cost. After that, upkeep is a monthly subscription. No undefined "free support" windows.
You want a $300/month unlimited plan.The hour math does not work. Unlimited at low rates defers a giant bill into a conflict. Our tiers are priced honestly.
Three tiers. Move between them any month.
Lighthouse keeps the bulb lit. Reef keeps the structure healthy. Harbor staffs the dock around the clock. Pick the tier that matches the risk of an outage on your app.
$995/mo
Small apps in pure maintenance. Predictable floor cost, no surprises.
- 4 engineering hours per month
- Bankable up to 3 months
- 4-hour SLA on production incidents
- 1 business day SLA on non-production
- Quarterly dependency update pass
- Monthly infra and cost review
- Slack channel, next-business-day response
$2,495/mo
Active apps with occasional feature work. Growing user base. The default choice.
- 12 engineering hours per month
- Bankable up to 2 months
- 1-hour SLA on production, business hours
- 4-hour SLA on non-production
- Monthly dependency and security pass
- Quarterly minor feature work (up to 20 extra hrs)
- Slack channel, same-business-day response
- Monthly 30-min sync call
$4,995/mo
Revenue-critical apps. SaaS with real users. Anywhere downtime costs real money.
- 30 engineering hours per month
- Bankable up to 1 month
- 1-hour SLA on production, 24/7 on-call
- 2-hour SLA on non-production, business hours
- Continuous dependency and security management
- Ongoing minor feature work in allocation
- Slack channel, same-hour response (biz hrs)
- Biweekly 30-min sync call
What each tier actually promises.
Six dimensions. Three tiers. No asterisks, no "depending on context," no "subject to availability."
What counts as a production incident?
Can we change tiers?
What happens to unused hours?
Who handles on-call after hours at the Harbor tier?
Can you take on an app you did not build?
What if we need a big feature, not a small one?
What happens if you stop offering App Upkeep?
Do we own the code?
Move between tiers. Graduate to a full retainer. Exit cleanly if you need to.
You can change tiers any calendar month with five business days notice. If your app grows enough to justify a full retainer, we will tell you honestly and help you move up to Starter, Momentum, or Deep End. If upkeep is the wrong fit, 30 days notice and you are free. We do not hold your code, your infrastructure, or your access hostage. Your GitHub stays yours. Your keys stay yours.
Stop hoping your app works. Start keeping it.
Book a 30-minute call. Tell us about your app, who built it, what stack it is on, and what keeps you up at night. We will recommend a tier honestly, tell you if you need the emergency intake first, and give you a start date inside two weeks.
No upkeep contract exceeds a 30-day notice period. If the fit is wrong, you leave cleanly.
Emergency intake. $2,500 flat.
Your old dev vanished. Your app is on fire. You need somebody today, not a monthly subscription conversation. The emergency intake is $2,500 for diagnosis plus up to six hours of remediation. Required before any ongoing upkeep relationship if we did not build your app.

