lumatara
← All articles

Lumatara is now installable — why I built a PWA instead of a mobile app

I didn't plan to support mobile. Then I started using the app every day and reached for my phone. Here's why a Progressive Web App might mean I never need to build a native app.

There’s a version of this post where I smugly announce a native iOS app, a polished App Store listing, and a developer account that cost me $99/year just for the privilege. That’s not this post.

This post is about why I shipped a Progressive Web App instead — and why I think I’ll never need the native route.


I didn’t want to do mobile at all

Lumatara started as a single always-open browser tab. That was the entire design brief I gave myself: one tab to replace eight. A command center for my financial life, my calendar, my feeds, my tasks — sitting in a pinned Chrome window on my laptop.

Mobile wasn’t part of the plan. I’m a desktop-first person. I do real work on a laptop. I wasn’t building this for anyone else, so I didn’t need to optimise for use cases that weren’t mine.

That lasted about two weeks of actually using the app.


Then reality hit

Here’s what happened: I opened Lumatara one morning to check my portfolio before a meeting. The markets had moved overnight — US positions especially. I wanted that same glance on my phone, the way you’d check a weather widget before stepping outside. Quick. Ambient. No friction.

I reached for my phone and… nothing. A web app URL. A browser chrome. Not the same.

That’s when I admitted it to myself: I actually want this on my phone too. Not in a “let me build a startup” way. In a “this is my daily tool and I use my phone” way. The personal-use test I’d set for every feature — would I miss it if it disappeared? — applied to the mobile experience too.


Why not just build a native app?

I considered it. For about forty-eight hours.

Then I thought about what that actually means:

  • A separate codebase (React Native or Flutter) that diverges from day one
  • A review process I don’t control, with rejection risks for financial data features
  • App Store guidelines that could force me to add in-app purchases for my own subscription
  • A build pipeline I have to maintain in parallel with the web app
  • Two sets of bugs. Two sets of updates.

I build Lumatara alone. The whole value proposition is that I move fast and ship things that are exactly right for how I work — not compromised by committee or platform rules. A native app would add a tax on every single feature I ship.

The web already has the APIs I need: offline caching, home screen installation, push notifications (where they matter), background sync. These aren’t approximations of native features anymore. They’re genuinely good.


What “PWA” actually means for Lumatara

I spent a few days optimising properly rather than bolting things on:

Install prompt — Lumatara now prompts you to add it to your home screen on first visit. On Android, it installs like a real app. On iOS, it’s an “Add to Home Screen” flow that’s not as slick, but it works. Once installed, there’s no browser chrome — full screen, icon on your home screen, it feels native.

Offline shell — The service worker caches the app shell, so Lumatara opens instantly even on a slow connection. Data still requires network, but you’re not staring at a blank screen.

Mobile layout — The dashboard reflows properly at phone widths. Nothing is pinched or overflowing. Portfolio cards, net worth numbers, the calendar strip — all of it works at 390px.

Viewport and touch targets — Buttons are properly sized. Scroll regions work the way you expect on a touchscreen. No accidental zoom on input focus.


The outcome I didn’t expect

After installing Lumatara as a PWA on my phone, I realised something: I don’t miss a native app at all.

My morning routine is now: pick up phone, open Lumatara from the home screen, check overnight portfolio movement, glance at the day’s calendar, mark one task done. That’s it. Thirty seconds. Then I put the phone down and open the laptop.

The app loads fast. It looks right. It works. Nobody reviewed it. I shipped it in a few days of focused work rather than months of platform wrangling.


A note on “progressive”

The word “progressive” in PWA is doing real work. It means the app is good on every surface — not degraded on mobile, not a mobile-only experience that ignores desktop. Lumatara was already good on desktop. Making it progressively better on mobile didn’t require burning the desktop experience down.

That’s the model I’ll keep: desktop-first, but mobile-capable. The single codebase gets better for every device I care about. No compromise, no fork.


Will I ever build a native app?

Honestly? I doubt it.

The gap between what a PWA can do and what a native app can do has narrowed to the point where the things in the gap are things I don’t personally need. Background location? No. Bluetooth hardware? No. Deep OS integration? Not for a finance and productivity dashboard.

The things I do need — fast load, offline shell, home screen presence, good mobile layout — all exist in the browser today.

If the day comes where I hit a wall that only a native app can solve, I’ll reconsider. But I’ll be building that native app to solve a specific problem, not as a default assumption that mobile means App Store.

For now: install Lumatara from your browser. Tap “Add to Home Screen.” Tell me if it breaks.

That’s the whole announcement.

Try it for free

Everything described here is available right now in Lumatara.

Open Lumatara →