All posts
Indie HackingMay 25, 20263 min read

7 Mistakes I Made Shipping My First Flutter App

The 7 expensive mistakes I made shipping my first Flutter app — and the exact fixes I'm using on app #2. Honest lessons from a solo dev.

7 Mistakes I Made Shipping My First Flutter App

I shipped my first real Flutter app — Prayer Lock — after months of late-night coding, broken builds, and one too many "this time I'll finish it" promises.

It launched. People downloaded it. The world didn't end.

But looking back, I made every beginner mistake a solo indie dev can make. Some cost me weeks. Some cost me money. Some cost me data I can never get back.

I'm writing this for the version of me from a year ago — and for any solo builder about to ship their first app.

Here are the 7 mistakes I won't be repeating on app #2.


A bit of context first

I'm a 33-year-old husband and new dad, working a full-time finance job and building apps in the cracks of the day — early mornings, lunch breaks, after my son is asleep.

My goal for 2026 is to ship 10 apps.

Not because I think 10 hits are coming.

Because shipping 10 means I'll have failed enough, iterated enough, and learned enough that one or two of them will actually work.

Prayer Lock was app #1.

These are the lessons it taught me.


Mistake #1: Building for 4 months before showing anyone

I thought I needed "polish" before I let anyone see it.

What I actually needed was feedback.

The truth:

The first ugly version shown to 5 real users will teach you more than 4 months of solo perfection.

The fix on app #2

I'm doing user tests at week 3, not month 4.

Even when the UI is rough.
Even when half the buttons don't work.

The bar isn't:

  • "ready to launch"

The bar is:

  • "ready to learn"

If you're hiding your app from real humans, you're not building a product.

You're building a hobby.


Mistake #2: Treating App Store screenshots like an afterthought

I spent 4 months on the code and 4 hours on the screenshots.

Threw them together the night before submission, told myself:

"I'll iterate later."

I never iterated.

Your screenshots are doing 80% of your conversion.

They deserve more time than the feature you just spent a week building.

The first screenshot — the one users see in search results — is doing more marketing work than every tweet you'll ever post.

The fix on app #2

  • Screenshots get drafted before the app is even done
  • At least 3 versions get tested
  • I compare them against top apps in my category

Mistake #3: Shipping with zero analytics

I launched Prayer Lock with:

  • No event tracking
  • No retention data
  • No conversion funnel
  • No idea where users dropped off

For 3 months, I was flying completely blind.

You can't backfill behavior.

You can't go back and ask:

"What did users do last Tuesday?"

That data is gone forever.

The fix on app #2

Analytics get wired in on day 1.

Minimum stack:

  • Firebase Analytics
  • Crashlytics

Even if I never open the dashboard, future-me will need the data.

The 5 events every app needs from launch

txt
app_opened
onboarding_started
onboarding_completed
core_action_performed
paywall_viewed
#Flutter#Indie Dev#App Development#Solo Founder#Building in Public#ASO#Mobile App#First App#Lessons Learned