I’ve been working on my writing app, Writhm, since January, and I just crossed 10,000 signups. Here’s what the journey’s looked like so far.

Road to 10,000 users through social posting and building in public

I had an earlier prototype with ~3k users, but the majority have joined since I re-launched with Lovable in April.

It’s been a helluva learning curve.

Here are 10 tips in no particular order. Most of my experience is with Lovable and Replit, but these can apply to any app builder.

1. Third-party auth doesn't matter

Being able to login with Google/Facebook/etc. had 0 impact on signups.

I’ve tested it myself. I’ve talked to conversion experts about it. I’ve heard growth leaders like Luke Harries say the same thing. It doesn’t matter. If people want in, they’ll use email. Focus elsewhere.

2. Pay for Supabase Pro as soon as you have users

I had a nightmare situation where a user lost all her data due to a mistake with payments logic. Thankfully, I had upgraded to Supabase Pro and was able to recover the data through the 7-day backups.

If I hadn’t been on Pro, all her projects would be gone. Forever.

Most people are on the Free tier because it has generous limits, but it doesn’t come with auto-backups or Point-In-Time Recovery (PITR). Don’t dick around. Just pay the $25/mo. and sleep better at night.

3. Get on GitHub sooner than later

I delayed syncing projects with GitHub for a long time. Too long.

I was managing builds directly with Lovable’s version history, and I never had issues, so I thought, “Why bother?” Just do it. It’s another safety mechanism, and if you ever collaborate with devs, you’ll need it anyway.

My only gripe is that edits made in Lovable and Replit don’t count as contributions in GitHub, which means they don’t show up in the heat map.

GitHub’s famous heat map. I wish it worked for vibe coders out of the box.

I want my map to light up like the Christmas tree at Rockefeller Center. If it’s not possible, Lovable/Replit/etc. should make their own.

4. Build an audience first, then a product

The main reason my product has been successful is because I was able to build a bit of an audience first – around 30k followers on TikTok.

Here’s how I recommend doing it.

👉 Step 1: Post 100 times on TikTok and YouTube Shorts. They’re the only platforms where a post can blow up if you don’t have any followers. After 100 posts, at least 2-3 will hit, and you’re off to the races.

👉 Step 2: Marry content with products. My TikTok account took off when I realized tools and games are better than tips and clips. Instead of posting writing advice, I built a tool that helped writers analyze their work; instead of quizzes, I built a grammar game. Huge unlock.

👉 Step 3: Build with your audience, not for your audience. Involve your users in every decision. I let people pick my product’s name, logo, features – everything. It’s a great growth loop. The more people engage, the more the product improves and your audience grows.

I’ll dive deeper into marketing in the future, but if you focus on these three steps, you’ll be ahead of the game.

5. DON'T use Stripe. Taxes will be a nightmare.

If I could do it again, I’d avoid Stripe altogether.

It’s a great platform, but it’s NOT a Merchant of Record (MoR).* That means they don’t help with tax compliance, and one day you’ll log in and see you passed your tax thresholds in a smattering of random countries.

Stripe is NOT a Merchant of Record (MoR), so taxes are your problem

Instead, I would use Paddle, Polar.sh, or LemonSqueezy. They automate tax compliance and make it a non-issue. Totally worth it for solopreneurs.

*Stripe has an MoR called Managed Payments in beta, but it’s not widely available. Hopefully they expand it soon and this problem goes away.

6. Set up 100% coupon codes for testing credit cards

There comes a terrifying time in every app’s development when you have to test payment transactions with a real credit card.

If you’re testing live payments, set up a coupon code for 100% so you can go through your checkout as many times as you want without hitting your credit card over and over again. Last thing you want is to get flagged.

7. Embrace spikes & open source

In developer terms, a “spike” is when you take time to research different approaches and existing solutions. But with tools like Lovable and Replit, most people jump straight into building something from scratch.

And guess what? That ends up slowing you down later when, I dunno, you realize it’s hard to build a rich text editor and you should’ve just used an open source library that could’ve saved you three frickin weeks.

Don’t reinvent the wheel. See if there’s an open-source solution first.

8. Implement unit tests

I could explain unit tests, but Uncle Bob does a much better job. Watch the video and do it. The bigger your app, the more important this gets.

9. Make as much self-serve as possible

The less your users have to contact you to do something (delete their account, update contact info, change billing, etc.), the better.

The easiest win is implementing a billing portal via Stripe / Polar / Paddle etc. I tried like a fool for days to build my own interface for customers to update their billing info, but it turns out most providers have a pre-built portal you can integrate. Just do that.

10. Post bounties for "impossible" bugs

You can *almost* always figure out whatever problem you’re facing – but for the .001% of the time when you’re truly stuck, call in a pro.

I’ve only had to do it once. I put out a bounty for $500 to help me figure out a CSS issue, and it was the best money I ever spent.

Replit has a bounty program and a partnership with Contra. Lovable has the Shipped community and Discord. Codementor is good. There are devs all over the place. Find them, contact them. They can save your sanity.

CAUTION: When you find a dev, don’t rely on them too much. This is still vibe coding. Believe in yourself, for God’s sake. You’ve got this.

That’s it for now.

Don’t forget to sign up for the Ship Rats newsletter so you don’t miss more tips & tricks. Check it.


Devon

Devon Hennig is the captain of Ship Rats and an incurable side hustler. Current projects include Writhm.io, Grammar Ghosts, countless prototypes, and this ragtag blog.

Subscribe to the Ship Rats Newsletter

Join our vibe-coding crew and don’t miss a post

Privacy Preference Center