Skip to content
article

april: $29,410 MRR across 3 tiny products (first post here, hi)

i post my revenue every month, good months and bad months. here is april, all of it

Jo Brennan@jo_ships

May 23, 2026 · 2 min read

hi. i'm jo. solo founder in denver, 3 small saas products, no cofounder, no employees, no VC. one dog (biscuit, chief morale officer 🐶).

i've posted my numbers publicly every month for 3 years. moving them here because my old feed is 90% "how i made $1M with AI in a weekend" and i can't anymore.

april, by product

  • invoice PDF API: $17,240 MRR (+$610). 412 paying accounts. churn 2.9%
  • shopify order tagging app: $9,870 MRR (+$220). 688 paying stores. churn 4.1% (every store that closes is a cancel, shopify apps churn like crazy)
  • uptime monitor: $2,300 MRR (-$40). 191 customers. churn 3.6%. this one is my hobby that pays for itself

total: $29,410 MRR. march was $28,620.

money out

  • stripe fees: $1,012 (the shopify app bills through shopify so no stripe on that one)
  • infra: $1,388 (render for the apps, neon for postgres, one hetzner box that does nothing but render PDFs)
  • tools: $612 (email, helpdesk, error tracking, the AI stuff)
  • contractor: $1,950. camilo in medellin did 30 hours on the shopify app. worth every cent
  • ads: $0. i tried google ads in february, spent $800, got 2 customers, both churned in month 1
  • refunds: $340

what worked

  1. one docs page, "generate an invoice PDF from JSON in 5 lines of curl", is still my #1 signup source. it's 2 years old. i have never touched it
  2. replying to every cancellation email myself. 6 of 31 people who cancelled told me why. 2 came back

what flopped

  1. annual plans. i pushed them hard in april. 9 people took one. that's a cash bump, not a business change
  2. a templates marketplace for the PDF API. 4 weeks of evenings. 11 templates sold. at $5 each. you do the math (i did. i cried a little)

may plan: fix onboarding on the shopify app (40% of installs never finish setup) and stop building things nobody asked for. we'll see how that goes lol

ask me anything about the numbers. i answer everything except "what's your exit strategy", the answer is biscuit's college fund

Written by

Jo Brennan

solo founder. no VC, no cofounder, no employees. 3 tiny SaaS products, $38.2k MRR last month (I post the numbers every month, good and bad). ex agency PM. denver. dog: Biscuit 🐶

Get the best of Dynamo Geeks weekly

One email each Monday with the most useful posts. No spam; unsubscribe in one click.

Comments

15

Sign in to join the conversation.

Sign in to comment
Sam Whitaker@segfault_sam
finally someone posting numbers and not a stripe screenshot with the y axis cropped off. welcome
2 net votes
Jo Brennan@jo_ships
the cropped y axis is an art form. i refuse to learn it
4 net votes
Ayesha Siddiqui@laravel_ayesha
11 templates at $5. I felt that in my soul yaar. I made a Laravel admin theme in 2019, sold 3 copies, one was my cousin
4 net votes
Jo Brennan@jo_ships
your cousin is a real one. protect that cousin
0 net votes
Trey Robinson@techwithtrey
Real talk, why render AND hetzner? Not a gotcha, genuinely curious why you split it
5 net votes
Jo Brennan@jo_ships
render runs the web apps and i never want to think about them. the PDF workers are headless chrome and eat CPU like crazy, a hetzner dedicated box is maybe 1/5 the price for that. if hetzner dies the queue just waits. boring split, works
4 net votes
Caio Nascimento@caio_backend
headless chrome for PDFs at 412 accounts, how many PDFs a month? we generate boletos at work and chrome is always the first thing that falls over
5 net votes
Jo Brennan@jo_ships
about 1.9M in april. pool of 6 chrome instances per worker, each instance gets killed and replaced after 500 renders because it leaks memory no matter what you do, hard timeout 20s per render. the recycle-after-N thing fixed like 80% of my 3am pages
4 net votes
Caio Nascimento@caio_backend
recycle after N renders. ok stealing this tomorrow, valeu
2 net votes
Rohit Verma@rohit_codes
Ma'am 4.1% monthly churn is normal for shopify apps? asking bcoz i want to make one for indian D2C brands
4 net votes
Jo Brennan@jo_ships
for apps sold to tiny stores it's on the low side honestly. stores die all the time. price that in before you write a line of code
3 net votes
Achieng Owino@achieng_devrel
Late to this, but the cancellation email point is underrated. Six honest answers out of 31 are worth more than any churn dashboard. Karibu, Jo.
4 net votes
Dana Kowalski@dana_ml
Good format, and thank you for the boring line items. One request for a future month: you list "the AI stuff" as a cost. If you ever measure how much time it actually saves you, I would read that post twice.
3 net votes
Jo Brennan@jo_ships
oh it saves me SO much time. like 10x. i'll write it up some day
7 net votes
Dana Kowalski@dana_ml
I will hold you to "some day".
3 net votes