Compose your own

Builder

Toggle modules, pick a design, preview live, submit for delivery.

CRMon
Bookingon
Invoicingon
Reviewsoff
Loyaltyoff
Open builder
A la carte

Modules

18 individual operational tools at $29-$49 each. Mix and match.

See all
Visual identity

Templates

11 aesthetics. Same kit, different look. Compose orthogonally.

See all
Free forever · MIT

The three free cores

Each is a Vercel-deployable Next.js project.Browse all cores →

Own vs Rent: the 5-Year SaaS Infrastructure TCO Worksheet

A fill-in-the-blanks total-cost-of-ownership model for code-you-own versus a monthly SaaS subscription, including the labor cost that make-or-buy pitches usually hide.

9 min readFree, one email to unlock the full guide + download

Build versus buy pitches almost always cheat the same way. The buy side quotes a headline monthly price and stops. The build side quotes a one-time cost and ignores the maintenance that follows it forever. Both numbers are real, and both are incomplete. This worksheet puts them on the same five-year timeline so the comparison is honest.

There are no vendor prices baked in. You fill in your own numbers, and the formulas below turn them into a five-year total for each path plus a break-even month. The point is not to prove owning wins. It is to show you the conditions under which it does, and the conditions under which renting is the right call.

The two paths, stated honestly

Rent (SaaS subscription)Own (code you run)
Up-frontNear zeroOne-time build or kit cost, plus setup hours
Recurring cashMonthly subscription, scales with seats and usageHosting and services, flatter as you grow
Hidden costPer-seat and per-usage creepYour maintenance and security labor
Exit costData export and re-platformNone: you already hold the code and data

The full worksheet below gives you the exact input list, the five-year formula for each path, a worked example with illustrative placeholder numbers you replace, and the break-even calculation. Drop your email to unlock it and download the worksheet as Markdown you can paste into a sheet.

Step 1: gather your inputs

Every value here is yours to supply. Nothing is assumed. Use your real numbers, or look up the published list price of the specific SaaS you are weighing.

  • BUILD_ONCE: one-time cost to acquire the code (a boilerplate or kit purchase, or the hours to build it valued at your rate).
  • SETUP_HOURS: hours to stand it up the first time, multiplied by RATE.
  • HOST_MONTHLY: your monthly hosting and managed-service bill (database, app hosting, email, any paid APIs).
  • MAINT_HOURS_MONTH: hours per month the stack realistically costs you (dependency updates, key rotation, the occasional incident).
  • RATE: your blended hourly cost. Use what your time is actually worth, not zero.
  • SAAS_MONTHLY: the incumbent’s published price for the seats you need today.
  • SAAS_PER_SEAT: added monthly cost per new seat.
  • SEAT_GROWTH: new seats you expect to add per year.
Note: On RATE being zero

Founders love to set their own hourly rate to zero because the time feels free. It is not free: every hour on maintenance is an hour not shipping. Put a real number here even if it is low. A worksheet that values your time at zero will always tell you to build, which is exactly the bias you are trying to avoid.

Step 2: the five-year formulas

Sixty months. Both paths on the same clock.

OWN_5YR  =  BUILD_ONCE
         +  (SETUP_HOURS * RATE)
         +  (HOST_MONTHLY * 60)
         +  (MAINT_HOURS_MONTH * RATE * 60)

RENT_5YR =  sum over months 1..60 of:
              SAAS_MONTHLY
            + (SAAS_PER_SEAT * seats_added_so_far)

         ~=  (SAAS_MONTHLY * 60)
            + (SAAS_PER_SEAT * SEAT_GROWTH * average_seat_months)

   where, for linear growth over 5 years,
   average_seat_months ~= 60 * 5 / 2 = 150 seat-months per seat/year added

The rent side is not a flat multiply. Seats compound: a seat you add in year one bills for the remaining four years too. The average_seat_months term captures that. If your seat count is flat, drop the second line and rent is simply SAAS_MONTHLY times 60.

Step 3: a worked example (placeholder numbers, replace them)

Note: These numbers are illustrative

The figures below are placeholders chosen to show the arithmetic, not a claim about any real product or vendor. Replace every one with your own.

InputPlaceholder value
BUILD_ONCE$300 (kit purchase)
SETUP_HOURS x RATE8 hrs x $60 = $480
HOST_MONTHLY$35
MAINT_HOURS_MONTH x RATE2 hrs x $60 = $120
SAAS_MONTHLY$200
SAAS_PER_SEAT$15
SEAT_GROWTH3 seats/year
OWN_5YR  = 300 + 480 + (35 * 60) + (120 * 60)
         = 300 + 480 + 2,100 + 7,200
         = 10,080

RENT_5YR = (200 * 60) + (15 * 3 * 150)
         = 12,000 + 6,750
         = 18,750

With these placeholders, owning lands near $10k and renting near $19k over five years. Notice what actually drives the own number: it is not the $300 kit, it is the $7,200 of maintenance labor. That is the honest headline. Code-to-own trades recurring subscription cash for your recurring attention. If your maintenance hours are low and your seat count grows, owning pulls ahead. If you have zero time to maintain anything and your team stays small, the subscription can be the rational buy.

Step 4: break-even

The month where cumulative own cost crosses cumulative rent cost. Below it, renting is cheaper; above it, owning is.

monthly_own_run_rate  = HOST_MONTHLY + (MAINT_HOURS_MONTH * RATE)
monthly_rent_run_rate = SAAS_MONTHLY (+ seat creep)
up_front_own          = BUILD_ONCE + (SETUP_HOURS * RATE)

break_even_month = up_front_own / (monthly_rent_run_rate - monthly_own_run_rate)

// worked: 780 / (200 - (35 + 120)) = 780 / 45 = ~17 months

In the worked example the paths cross at roughly month 17. Before that, the up-front build cost has not been earned back. After it, every month is money kept. If your break-even lands past the point where you would realistically re-platform anyway, renting was the right call and this worksheet just proved it. That is the point: a real model can recommend renting, and an honest one sometimes will.

Fix: The two questions the model forces

One: what is your maintenance actually costing per month, in hours times a real rate? Two: how fast does your seat count grow? Answer those two honestly and the five-year winner falls out of the arithmetic. Everything else is packaging.

The line the model does not price

One cost sits outside the arithmetic: leverage. When you rent, the price is set by someone else and can move on renewal. When you own the code and the data, your exit cost is zero and the vendor has no pricing power over you. That is not a dollar figure you can put in a cell, but it is the reason the own path is worth considering even when the five-year totals are close. Owning is buying out of a negotiation you would otherwise have every year.

Free · one email

Read the rest and take it with you

The full guide plus a downloadable Markdown copy. One email, no wall on the preview above, unsubscribe any time. You also get the occasional build note when we ship something worth your inbox.

Why LaunchKits wrote this

This is the standard our own kits ship against

The patterns in this guide are not theory. They are the org-scoped RLS, atomic counters, and webhook idempotency that ship in every LaunchKits module by default. If you would rather own that foundation than rebuild it, start with the free open-source cores.