One shared vessel record across a Flutter app, NestJS API and web
Crew, captains, owners and marina businesses each need their own view of the same yacht. Forjwell is designing and building all three surfaces. Still in build.

01The challenge
Running a yacht means paperwork spread across three inboxes and a folder on someone's laptop. Crew, captains, owners and marina businesses each need a different view of the same vessel, and none of them had one. Forjwell was hired to design and build all three surfaces.
02Our approach
Model the roles first
Four role-based experiences (crew, captain, owner and marine service provider) were mapped before any screen was drawn.
The mobile app
Flutter and GetX, covering profiles, certifications, a job board and the hiring pipeline that runs through it.
API and real time
NestJS on Postgres and Prisma, with Redis-backed sessions and a Socket.io gateway for chat and notifications.
The web surfaces
A Next.js marketing site, business portal and admin console that share the app's design language.
03Inside the work




04Four roles, one vessel record
- CrewProfile, certifications, job board
- CaptainVessel setup, hiring, maintenance
- OwnerRead-only executive oversight
- Marine BusinessService catalogue and requests
- MessagingThreads, groups and direct
- NotificationsJobs, tasks and messages
05The outcome
The web platform and API are built and the marina business portal is running. The crew, captain and owner app is in its beta channel ahead of a public release. Ship's Ahoy is still in build, and this case study says so.

