SELLING-APPS · 2025-08-09 · 5 MIN READ

Make Your App Boring Before You List It (And Sell It For More)

Clever scares buyers. Boring sells. Here's how to strip the bespoke tricks out of your app in 30 days so a new owner can take over in two hours.

BY BIREXIT TEAM

·

2025-08-09

·
Make Your App Boring Before You List It (And Sell It For More)
TAGS:SELLING-APPSDOCUMENTATIONINFRASTRUCTUREINDIE-FOUNDERSHANDOVER

The single best thing you can do to your app before listing it is make it boring.

Boring means: nothing clever, no hand-rolled infra, no bespoke scripts only you understand, no "oh and there's this one cron that resets the cache every Sunday because of that weird bug from 2023". Boring means a new owner can read three docs, change two env vars, and run the thing in an afternoon.

Buyers pay a premium for boring. Founders systematically under-deliver it because boring feels lazy. Wrong instinct. Boring is the asset.

The 2-Hour Test

Here's the test that matters: could you onboard a stranger to your entire app in 2 hours of screen-share?

If yes, your app is sellable. If no, every minute over 2 hours is dollars off your price.

Most indie apps fail this test for the same five reasons:

  1. Docs don't exist. Or they're a half-written Notion page from when the app was 6 months old, now 18 months stale.
  2. There's a "founder-only" script somewhere. A bash file on your laptop that's not in the repo. A Make.com workflow nobody knows about. A monthly manual SQL query.
  3. The stack has 2 bespoke pieces. Custom auth instead of Clerk. A hand-rolled email queue instead of Resend. A custom Stripe webhook handler with five branching cases.
  4. One service is on a deprecated free tier. Heroku hobby dyno from 2019. Old Firebase plan. Vercel project on a personal account.
  5. The data lives in 3 places. Postgres for users, Airtable for "the real customer list", a Google Sheet for revenue tracking. Pick one. Migrate.

Each of those is a 30-minute meeting during handover. Five of them and you're past two hours.

The 30-Day "Make It Boring" Playbook

Week 1: Write Docs a Non-Coder Can Follow

You don't need a technical wiki. You need a single README.md, in plain English, that covers:

  • What the app does, in one sentence.
  • How to run it locally (3-5 commands).
  • How to deploy a change (literally: git push main or whatever it is).
  • Every env var, what it's for, and where to get a new one if rotated.
  • The Stripe / Resend / Postgres login locations (1Password vault is fine).
  • The 3 most common support requests and how to resolve each.
  • The "if X breaks, do Y" runbook for the top 3 failure modes.

Goal: 1,500-2,500 words, plain Markdown. If a non-coder buyer can't follow your local-dev section, rewrite it.

Week 2: Kill the Brittle Scripts

List every cron, every manual task, every "I do this on Sunday". For each one:

  • Can it be deleted? (Yes more often than you'd think.)
  • Can it move to a managed service? (Vercel Cron, GitHub Actions, Supabase Functions.)
  • Can it become a one-click button in your admin panel?

Brittle scripts on your laptop are worth zero to a buyer and are negative to a deal. Move them or kill them. If you genuinely need a bash script, commit it to the repo with comments.

Week 3: Swap Bespoke for Boring Defaults

Audit your stack against this list and replace anything custom:

ComponentBoring defaultWhy buyers love it
DatabasePostgres on Supabase or NeonEvery dev knows it
PaymentsStripeUniversal, well-documented
Email (transactional)Resend5-minute setup, cheap, reliable
HostingVercel or Fly.ioLogs, rollback, env vars all built in
AuthClerk or NextAuthDon't roll your own
File storageSupabase Storage or S3Standard, portable
Background jobsInngest or QStashManaged, observable

Custom infra has zero buyer premium and significant buyer fear. Cut it.

Week 4: The Dry Run

Find a friend, ideally a non-coder developer or technical-ish PM. Send them your README. Ask them to:

  1. Get the app running locally.
  2. Deploy a one-word change to the homepage.
  3. Add a new admin user.
  4. Find last month's MRR.

Time each task. Anything over 20 minutes is a doc gap. Fix it.

Real Talk: Clever Code Loses You Money

Indie founders romanticize the clever bits. The 80-line regex that parses 12 edge cases. The custom Postgres function that does the analytics. The webhook chain that took two weekends to debug.

Buyers see all of that as risk. They're not buying your clever; they're buying recurring revenue minus inheritance pain. Every clever thing in the code is a question they ask in due diligence, which is a thing that slows the deal and shaves the price.

The best listings on Birexit (and Acquire, MicroAcquire, wherever) read like a parts list. Next.js. Postgres. Stripe. Resend. Clerk. Vercel. 4 cron jobs, all defined in vercel.json. Boring on purpose.

What Boring Earns You

A boring $1,500 MRR app sells for 3-4x annual profit in 4-8 weeks. A clever $1,500 MRR app with bespoke infra and 11 undocumented quirks sells for 1.5-2x in 12-20 weeks, or doesn't sell at all.

Same revenue. Sometimes a 2x price difference. Always a faster close.

The Boring Checklist (Pin This Above Your Desk)

Before you hit "list", run this list. Every "no" is a price discount.

  • README in plain English, under 2,500 words, last edited this month.
  • Local-dev setup takes a stranger under 20 minutes.
  • Zero scripts living on your personal laptop.
  • All env vars documented, all secrets in 1Password (or equivalent).
  • Stack is 100% off-the-shelf services with public pricing pages.
  • Every cron is in vercel.json, github/workflows, or the equivalent. Nothing on your Mac's crontab.
  • Single source of truth for customers (one database, not three).
  • Stripe is the only payment processor. PayPal manual invoices are migrated or written off.
  • One-pager "weekly operating log" of every founder task, totalling under 90 minutes/week.
  • A friend who isn't you has run your app locally and shipped a tiny change.

If you tick 8 of 10, you'll list and close in 4-8 weeks. If you tick 4 of 10, expect 12-20 weeks and a 30-50% discount on your asking price.

Spend 30 days making your app boring before you list. It pays better than any other 30 days of work you could do on it.

TAGS:SELLING-APPSDOCUMENTATIONINFRASTRUCTUREINDIE-FOUNDERSHANDOVER

RELATED POSTS