MMHL.dev

App · Productivity

Lume

Personal assistant with gamified habits, a focus timer, expense tracking and a library — local state that syncs to Firestore when a session exists.

Year
2026
Role
Solo project — product, front-end and back-end
Status
Live
Visit the project
lume-mattdev.vercel.app
Lume dashboard showing habit progress, level, check-in streak and a heat map of the year

The context

Four things that normally live in four different apps: habits, focus, money and reading. Switching apps all day is enough friction to abandon all four. Lume puts them behind one interface, with a dashboard that answers the question that matters in the morning: what do I do now.

Modules
4
Works offline
100%

01

Local first, cloud second

Global state is a useReducer persisted to localStorage, and syncing to Firestore is optional — it kicks in when there is a session. In practice: the app opens and works with no network, without waiting on authentication, with no loading screen. Sign in and your data follows you to another device; do not, and you keep using it.

The reverse order (cloud first, cache second) is more common and would have been easier to write, but it turns every app launch into a bet on the connection. For a habit app that has to open in two seconds in the morning, that kills the very habit it exists to build.

02

Gamification that does not become a chore

Habits earn levels and coins, spent in an in-app store. It is a well-worn mechanic, and its risk is well known: it becomes one more obligation. The choice was to keep the interaction cost at a single tap — the daily check-in is a button on the dashboard, not a form.

The year heat map and the current streak exist for the same reason: they show progress without asking for anything. The user fills in nothing to see them.

03

A theme that follows the system

CSS theme tokens for light and dark, with system-ui — SF Pro on Apple devices, the native font everywhere else. It is a personal app opened several times a day: feeling native matters more than having a visual identity of its own.

Screens

Dashboard — today's check-in, streak and heat map of the year
Dashboard — today's check-in, streak and heat map of the year
Habits — routines with level progression
Habits — routines with level progression
Room — focus timer
Room — focus timer
Finances — fixed and variable expenses, cards and goals
Finances — fixed and variable expenses, cards and goals

Contact

Got a similar project?

Need a system built from scratch, an API for an app that already exists, or someone to own the product end to end? Get in touch — I reply fast.

Let's work together

Other projects