Skip to main content
App Upkeep

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.

Monthly upkeep
From $0

Predictable floor cost that scales with your needs. Three tiers. No surprise invoices.

Production incident SLA
0hr

One-hour response on production-down incidents at Reef and Harbor tiers during business hours.

Harbor tier coverage
24/7

On-call rotation included at Harbor. Same engineers who know your code take your 3am call.

Onboarding time
0hrs

Zero onboarding if we built your app. Senior ramp time if we did not, scoped by intake report.

Who this is for

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.

The orphaned codebase

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.

Repo / CommitsLast: 287 days ago
FORMER DEV
COMMITS (LAST 10 MONTHS)
Friday 9pm

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.

Ops clockFriday 9:04pm
LinkedIn DM Upwork $300 Pray
The creeping tech debt

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.

Dependency drift12 out of date
react 18.2.0 19.1.0
next 14.0.4 16.1.6
node 18.17 22.11
stripe 12.18 18.2
How it works

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.

Phase 01Intake

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.

Week 1
Inherited report
10 PAGES
Phase 02Stabilize

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.

Weeks 1-2
Critical patches
SSL renewed
Auth patched
Secrets rotated
CVE triage
Phase 03Operate

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.

Monthly cadence
Monthly log
Deps
Alerts
Fixes
Review
Phase 04Improve

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.

Quarterly
Backlog
Feature A
Refactor
Perf pass
Cost opt
Phase 05Review

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.

Annually
12-month view
What ships every month

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.

Honest about boundaries

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.
Honest fit

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.

Pricing

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.

Lighthouse

$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
Harbor

$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
Overages: $175/hr (Lighthouse), $165/hr (Reef), $155/hr (Harbor). Pre-approval required above 4 hours in a single month. Billed monthly in arrears, no surprise invoices.
SLA comparison

What each tier actually promises.

Six dimensions. Three tiers. No asterisks, no "depending on context," no "subject to availability."

 
Lighthouse
$995/mo
Harbor
$4,995/mo
Production incident SLA
4 hours, business hrs
1 hour, 24/7
Non-production SLA
1 business day
2 hours
Monthly hours
4
30
Hour bank policy
Rolls 3 months
Rolls 1 month
Dependency cadence
Quarterly
Continuous
On-call coverage
Business hours
24/7 rotation
Questions engineering leaders ask us before signing
What counts as a production incident?
Any issue that prevents real users from using a meaningful part of your app. Auth broken, checkout failing, main dashboard blank, API returning 500s, database down. A broken button in the admin panel is a non-production incident. A broken button in the user-facing checkout is a production incident. We err on the user side when the call is close.
Can we change tiers?
Yes. Tier changes take effect the following calendar month with 5 business days notice. You can downgrade during slow seasons and upgrade during active ones. We do not require a minimum time at any tier. The goal is that you stay because upkeep is useful, not because a contract says you have to.
What happens to unused hours?
They roll over per the tier bank policy: 3 months at Lighthouse, 2 months at Reef, 1 month at Harbor. Rollover is use-it-or-lose-it at the end of the bank window. We publish the hour bank balance in the monthly upkeep report so there is no surprise.
Who handles on-call after hours at the Harbor tier?
A rotating on-call engineer with a backup. All on-call engineers know your codebase from the intake walkthrough or from having built it. We are not passing your 3am call to a triage service with no context. Primary responds within an hour. Backup is paged if primary misses.
Can you take on an app you did not build?
Yes, after the $500 intake report confirms we can maintain it responsibly. About 80% of inherited codebases are fine. About 20% are in a state where we recommend a small stabilization project first before starting the upkeep plan. The intake report is honest about which bucket you are in, and you own the report either way.
What if we need a big feature, not a small one?
Small features fit inside the hour allocation at Reef and Harbor. Big features become a separate Custom Business Apps engagement or a temporary upgrade to a full retainer tier. We will scope it transparently and tell you which path is cheaper. Sometimes that means we talk you out of a tier upgrade.
What happens if you stop offering App Upkeep?
We give 90 days notice and a full handoff: credentials, documentation, open incidents, runbook, and an introduction to 2-3 alternative vendors we trust. You never get stranded. This clause is formalized in the MSA.
Do we own the code?
You always own the code. Upkeep does not change ownership. Your GitHub, your infrastructure, your keys. We have access to maintain. You can revoke access any time. Everything we write is committed to your repo.
No hostage policy

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.

Ready?

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.


Panicking right now?

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.

Email emergency@ Replies within 2 business hours, 7 days a week.