Why We Built a Baby Tracker as a PWA
No app store, no platform lock-in. Here's why BabyLog is a Progressive Web App — and what that means for parents who just want something that works.
When we set out to build BabyLog, we had a choice every app developer faces: build a native app for each platform, or try something different.
We chose to build a Progressive Web App — a PWA. It's not the obvious choice for a baby tracker, and people ask about it. Here's why we went this way and what it means for you.
What is a PWA?
A Progressive Web App is a website that can be installed on your phone's home screen and behaves like a regular app. It opens full-screen without a browser bar, has its own icon, and works even when your internet drops out.
You don't download it from the App Store or Google Play. You visit the website in your browser and tap "Add to Home Screen." That's it.
Once installed, most people can't tell the difference between a PWA and a native app. It launches from your home screen, it works offline, and it looks and feels like any other app on your phone.
Why not build native apps?
Native apps are great. They're fast, they have access to every device feature, and the app stores make distribution easy. So why didn't we go that route?
The cross-platform problem
The number one reason we built BabyLog was that existing trackers made it painful to share between an iPhone and an Android phone. And that's incredibly common — one parent on iOS, the other on Android.
Building native apps means maintaining two separate codebases (Swift for iOS, Kotlin for Android) or using a cross-platform framework like React Native or Flutter. Either way, you're dealing with platform-specific bugs, different review timelines, and the constant risk that an update works on one platform but breaks on the other.
With a PWA, there's one codebase. One URL. It works the same on every device — iPhone, Android, tablet, laptop. The same code runs everywhere.
App store friction
Every update to a native app goes through a review process. Apple's review can take days. If we find a bug at 11pm, the fix might not reach you until next week.
With a PWA, we deploy a fix and you get it the next time you open the app. No review queue, no update button, no waiting.
Cost
Apple charges $149 AUD per year for a developer account. Google charges a one-time fee. Both take a 15–30% cut of any in-app purchases. For a small, independently built app, those costs and restrictions add up.
A PWA has none of that overhead.
How BabyLog works offline
The biggest concern people have about web apps is "what happens without internet?" For a baby tracker, this matters — you might be logging a feed at grandma's house where the WiFi is unreliable, or noting a nappy change at the park.
BabyLog uses a local-first architecture. Here's what that means:
Everything saves to your device first. When you log a feed or a nap, it's saved to your phone's local storage immediately. The app doesn't wait for the internet. This is why the app feels fast — reads and writes happen locally.
Sync happens in the background. When you're connected, BabyLog pushes your local changes to the cloud and pulls down any changes from other caregivers. This happens automatically when you open the app or when your connection comes back.
If two people log at the same time, BabyLog keeps the most recent edit. In practice, conflicts are rare — most of the time it's one parent logging a new entry, not two people editing the same one.
The combination of local storage and background sync means the app stays responsive even on flaky connections. You log, it saves, it syncs when it can.
The tradeoffs
We'd be dishonest if we didn't mention what PWAs can't do as well as native apps.
Push notifications are limited on iOS. Apple added PWA notification support in 2023, but it's still not as reliable as native push. We're working within these constraints.
No app store discovery. People search the App Store for baby trackers. A PWA doesn't show up there. We rely on web search, word of mouth, and content like this blog.
Some device features are off-limits. PWAs can't access everything a native app can — though for a baby tracker, we don't need most of those features. We need a timer, text input, and local storage. The web platform handles all of that.
External links in standalone mode. When you tap a link inside a PWA on iOS, it opens in an in-app browser that doesn't have your logged-in sessions. This affects features like our "Share with AI" button, which opens an external AI chat. We work around this by copying data to your clipboard first.
These are real tradeoffs. We think they're worth it for the benefits — instant cross-platform support, fast updates, no app store fees, and a single codebase we can maintain as a small team.
How to install BabyLog
iPhone (Safari)
- Open babylog.com.au in Safari
- Tap the Share button (the square with the arrow)
- Scroll down and tap Add to Home Screen
- Tap Add
Android (Chrome)
- Open babylog.com.au in Chrome
- Tap the three-dot menu
- Tap Install app or Add to Home Screen
After installation, BabyLog opens full-screen with its own icon — just like any other app on your phone.
The right tool for the job
We didn't choose a PWA because it was trendy or because we couldn't build native apps. We chose it because a baby tracker needs to work on every device, for every caregiver, without friction. A mum on iPhone and a dad on Android shouldn't need different apps. A grandparent on a tablet should be able to check the baby's last feed without installing anything.
A PWA lets us build one thing that works everywhere. For a small team building an app that parents depend on at 3am, that's the right call.
Ready to start tracking?
BabyLog works on any device — iPhone, Android, tablet, or desktop. Set up takes two minutes.