shape a mobile experience for digital mailboxes from scratch, on a small team, aiming for consumer-grade polish.
- founding mobile engineer
- oct 2024 to present
- flutter · dart
founding mobile at digital domi
i joined digital domi in late 2024 as the first mobile hire. there was no app yet: a small team, a web product, and a blunt question about what a mobile mailbox should feel like.
we picked flutter. one codebase across ios, android, and web meant we could move fast without splitting attention three ways.
keeping state where it belongs
i went with an mvc-style layout backed by providers and value notifiers. most state stays ephemeral: the screen owns it, the screen disposes it. nothing global unless it has to be.
this kept the surface area small. fewer rebuilds, fewer cross-screen bugs, and a much easier time onboarding the next engineer.
ephemeral by default. global state was a deliberate exception, never the starting point.
a mailbox you actually want to open
the core experience is the mailbox: physical mail rendered digitally, media you can share, ad campaigns you can pull out and act on. i built the upload flow, the viewer, the share sheet, and the edge cases nobody asks about until something breaks.
in parallel i shipped the flutter web build. same codebase, deployed to s3 via github actions on every merge to main.
one design language across surfaces
as the surface grew, the components got pulled into a unified design system shared between mobile and web. button, sheet, list row, empty state: same primitives, same tokens, both targets.
the result: a release on one platform doesn't drift visually from the other, and a single change propagates everywhere it should.
- ios + android + web
- github actions → s3
- flutter · dart