DEV Community

Renee Chung
Renee Chung

Posted on

How I Ship Apps While Working a Full-Time Job

I have a full-time job. I also build and ship indie apps on the side.

Not because I have endless energy or some heroic morning routine. Most evenings my brain is fried. And yet — I've shipped three apps this year with more on the way.

Here's how I actually do it, without the productivity guru fluff.


The reality first

Let me be honest about what "shipping while working full-time" actually looks like.

It's not glamorous. Some evenings I open my laptop and manage to fix one bug before calling it a night. Some weeks I barely touch my side projects at all.

I'm not optimising for speed. I'm optimising for not stopping.


I build small things on purpose

My apps are not complex platforms. They are focused, single-purpose tools:

  • A recipe generator that works from your pantry
  • An expense tracker
  • A mood tracker
  • A to-do list that only lets you focus on one thing at a time

Each one has a core feature and not much else. That's not a limitation — it's the whole strategy. A focused app is something one person can design, build, test, and ship. A platform is a team problem.

When scope is small, the distance between "idea" and "live on the App Store" stays short enough to survive a fried brain.


I committed to one stack early

Flutter, Supabase, RevenueCat. I chose these deliberately — not because I already knew them, but because I wanted to learn them properly and keep using them across every app I build.

The bet is on compounding. Every app I ship with this stack means the next one starts with more familiarity. Instead of re-learning tooling from scratch each time, I'm slowly building muscle memory — and spending more time on the actual product.

Pick a stack with intention. Stick with it long enough to get boring with it. The returns show up later.


I separate high-energy and low-energy tasks

Building a new feature requires a switched-on brain. Writing App Store copy, researching keywords, updating a README, fixing a minor UI issue — these don't.

I've learned to match the task to my energy level. Evenings after a heavy day are not the time to architect a new system. They are fine for polishing a screen, writing a social post, or planning tomorrow's actual work.

Brainstorming, writing, admin — these are fried-brain friendly. Save the hard coding sessions for when you're actually sharp.


I don't wait for motivation

Motivation is unreliable. Routine is not.

I don't wait to feel inspired before opening the project. I just open it. Sometimes I close it 20 minutes later having done almost nothing useful. That's fine. The habit of showing up matters more than any single session.

The apps that never get shipped are the ones that only get worked on when the developer feels like it.


I ship before it's perfect

SimplePlate, my AI recipe app, went through 10 App Store review rounds before it was approved. It launched with bugs I knew about. It launched with features I wished were better.

It launched.

A live app with imperfections beats a perfect app that exists only on your laptop. Real users find real problems. Real downloads tell you whether the idea has legs. Waiting for perfect is just delayed quitting.


The honest reason it works

Every app is a small step toward something bigger. The indie portfolio is a long game — slow, sometimes frustrating, occasionally exciting when a stranger downloads something you made on a tired Tuesday evening.

That context keeps me going on the nights when I'd rather just watch TV.

You don't need a perfect schedule or unlimited energy. You need a reason, a small scope, and the discipline to keep showing up even when the sessions are short and messy.

That's it. That's the whole system.


I'm building 10 Flutter apps in 2026 and documenting the journey. Currently 3/10 live. Follow along on X (@renee_chung).

Top comments (0)