Service
Mobile applications, including where the network is not.
Field apps used inside steel hulls and on factory floors, consumer apps with subscriptions and payments, apps whose whole value is a notification arriving at the right hour. React Native and Expo on both platforms, with the store releases handled rather than discovered at submission.
Scope
What this usually means in practice
- Offline-first field applications
- Local storage, background synchronisation and conflict resolution, so someone can work for hours with no signal and lose nothing. This is a data-model decision, not a feature to bolt on later.
- Subscriptions and payments
- Stripe or store billing, the entitlement states that follow, and the back office where somebody can see who paid for what and fix it when they did not.
- Notifications that are worth receiving
- A backend that decides when a message actually matters, and delivery reliable enough that people keep the permission enabled.
- Performance where it is visible
- Maps, lists, canvases and gesture handling — the places a mobile app feels cheap. We have gone as far as writing an app on Skia purely to find where the rendering limit is.
- Releases and the back office
- Store submissions, staged rollout, forced-update handling that does not interrupt someone mid-task, and a web portal for whoever runs the thing day to day.
Leverage
Where the agents come in
Mobile has an unusually large surface of near-identical work — screens, states, platform differences — which is where the leverage is:
- First-pass screens from the design, then reviewed and made to feel right by a person.
- The empty, loading, error and offline state of every screen, which is what actually gets skipped under deadline.
- Localisation passes and the platform-difference checklist.
- Release notes and store metadata drafted from the commit range.
◆ marks a point where a person decides. Nothing passes it on its own.
Stack
- React Native
- Expo
- TypeScript
- Firebase
- Stripe
- Laravel
- Skia
Built this before
The Nightlife Asia
2022 — present · equity partner
A nightlife discovery app, rebuilt for a subscription business.
V1 shipped on iOS and Android with its own API. V2 rebuilt the app in Expo around a deal-claiming system, added a venue-facing back office, moved the business from venue listings to paid user subscriptions, and integrated Stripe. Snow Digital holds equity in the company.
- Expo
- React Native
- Laravel
- Firebase
- Stripe
Selectra France
2024
Daily electricity tariff alerts for Tempo and EJP subscribers.
Direct API integration with the energy providers for daily tariff status, a backend that processes it, and a push notification service that warns subscribers before a peak-price day. With history so people can see the pattern.
- React Native
- Expo
- Laravel
- Firebase
NDT Reporting
2022
Ship-hull inspection moved off paper, inside steel hulls with no signal.
Marine surveyors drop thickness measurements and defect markers onto uploaded ship blueprints, work fully offline and sync later, and generate Class-format PDF or CSV reports on the spot. Plus a superintendent dashboard for fleets and historical gauging data.
- React Native
- Laravel
- Firebase
- MySQL
Dotto — our own
2025
A published app we wrote to find the limit of mobile canvas rendering.
A gesture-driven annotation tool built on Skia with hardware-accelerated rendering, released publicly. It exists because we wanted to know where mobile drawing performance actually breaks, and the answer was worth having.
- React Native
- Skia
The questions we get asked
React Native, or native?
React Native for almost everything, because one codebase on two platforms is most of the budget. Go native when the app is the hardware — sustained camera work, background location, deep platform integration. We will tell you which one you have.
We have an app a previous team left behind.
That is a rescue, and it starts with paid discovery on the code rather than a quote — see the rescue offer. Half of what we get asked about mobile is somebody else's abandoned codebase.
Who deals with the app stores?
We do, including the review rejections. It is a normal part of the work and not an extra line.
What does it have to do when the signal drops?
That question usually settles the architecture. Bring it to a call with whatever design or spec exists, and we will scope from there.