index

Hello, I'm shipping BAAS without my favourite feature

·3min

Heya, it’s me again.

If you’re new here: BAAS is a bus app I’ve been building for Singapore commuters who take the same buses every week. Instead of opening on a map, it opens on your saved trips, shows live timings, and reminds you when to leave. It also shows what a ride-hailing trip would really cost compared with the bus, for those mornings when you’re running late.

About 10 beta testers have it now, and 30 more people are on the waitlist. The next step is the App Store and Google Play. And that’s where my perfectionism caught up with me.

I wanted the first release to have everything

My favourite feature was alight alerts. Your phone buzzes one stop before yours, even with the screen locked, so you can stop watching the window. They worked in testing, and I was proud of them.

But alight alerts were the only feature that needed background location. Preparing for the stores, I found out what that meant: extra permission prompts, written declarations explaining why the app needs it, and demo videos showing it in use. Each one was another reason for review to reject the whole app, not just that feature.

My instinct was to keep going. Polish the declarations, record the videos, get it all perfect, then launch. But that could have meant weeks of back and forth with review, while the rest of the app sat there finished.

So I cut it

Alight alerts are off the first public release. They live on a separate branch, waiting for version two. The beta now ships with no background location at all.

It stung. But holding every other feature back for one of them wasn’t fair to the people waiting for the app.

Testing a Singapore app from Melbourne

There’s another catch: I’ve moved to Melbourne, and BAAS only works with Singapore buses. I can’t stand at a bus stop and check whether a timing is right or a reminder fires on time. I rely on my beta testers in Singapore to tell me what happens on real commutes.

That makes it even harder to call anything “perfect”. I’m building for a morning routine I can’t currently live.

Perfect keeps moving

Even without alight alerts, there’s still plenty that needs care. Savings Guard, an opt-in pause on ride-hailing apps during your commute, needs Screen Time on iOS and Accessibility access on Android. A bus app asking for those can look suspicious, so the wording has to explain exactly why.

And testing showed that on some Android phones, departure reminders silently didn’t fire unless an “Alarms & reminders” setting was switched on. No error, no crash, just nothing. The app now checks for it and asks.

Every time I fix one thing, I find another. That’s the part perfectionism doesn’t tell you: there’s no finish line. There’s only the version that helps people now, and the one after it.

What I’d tell myself at the start

Read the store rules before building a feature, not after. Store review is a design constraint, just like screen size. And decide early what the first version has to do, so letting go of the rest feels like a plan, not a loss.

The public release is next. If you ride the bus in Singapore, join the waitlist at baas.mlkkrt.com.

Talk to you soon~