Independent product · Web application
DayFlow
Shared travel planning across online and offline use
Itineraries, maps, budgets and documents in one application, with offline support and authorised access for external assistants.
System overview
Web app & offline state
React · Next.js · local operations
Application services
Permissions · entitlements · MCP
PostgreSQL
Trip data · atomic usage reservations
Context
A travel plan combines several kinds of information and needs to remain useful when connectivity changes. Adding an assistant interface introduces another requirement: external tools must operate within the same account and trip permissions as the application.
My contribution
- Built a React/Next.js and TypeScript application with shared itineraries, maps, budgets and documents.
- Implemented offline access and synchronisation, with PostgreSQL and Supabase supporting the application data.
- Added Stripe entitlements and an authenticated MCP interface, including permission checks and atomic usage reservations.
Engineering decisions
Treat offline work as a synchronisation problem
Offline access needs more than cached screens. Local state and queued operations need a path back to the server when connectivity returns. That adds reconciliation and recovery behaviour to the application.
Keep assistant access within the application’s permissions
MCP operations authenticate the caller and check access to the requested trip. Connecting an assistant does not grant it access to another account’s information. Permission failures are covered by regression tests.
Reserve usage atomically in PostgreSQL
Concurrent requests can each observe the same remaining allowance. Database reservations make the usage decision atomic, with regression coverage for competing requests and permission boundaries.
Validation
- Regression tests cover unauthorised MCP requests and trip permissions.
- Concurrency tests exercise database usage reservations.
- The development workflow combines automated checks with functional review of the application.
Outcome
Delivered a shared planning application with online and offline workflows, plus a permission-aware interface for external assistants. The engineering focus is keeping account access and usage rules consistent across those entry points.
Discuss the project
Get in touch about the work or a full-stack role.