maritime SaaS development
Vesselspro
Internet Engineering built Vesselspro as a maritime SaaS platform on Next.js with fleet tracking, cargo and crew workflows, AIS ingestion via a Bun/Elysia service, Drizzle on Neon, Better Auth, and companion iOS and Android apps.
Vesselspro helps operators manage vessels, cargo, crew, and maintenance in one product. The org ships a production web app, a dedicated AIS API, and mobile clients from the vesselspro GitHub organization.
Status: Private / not publicly available

What was the challenge?
Maritime operators need reliable vessel visibility and operational data in one place, not spreadsheets and disconnected tools. The product had to handle real-time tracking context, authenticated multi-tenant access, notifications, and room for AI-assisted workflows.
How did Internet Engineering approach it?
We structured the main product as a Next.js App Router application with Drizzle ORM, Better Auth, internationalized UI, and integrations for billing (Polar) and in-app notifications (Knock). AIS and telemetry flows run through a separate Bun + Elysia service. Mobile reach comes from dedicated iOS (Swift) and Android repositories alongside the web app.
What did we ship?
- Production web app (vesselspro/app) deployed at vessels.pro
- AIS / data service (vesselspro/ais) with Bun and Elysia
- iOS and Android app repositories (vessels_ios, vessels_android)
- Database migrations, auth flows, and i18n-ready message catalogs
What were the outcomes?
- Unified fleet, cargo, crew, and maintenance workflows in a single SaaS surface
- Separated AIS ingestion from the main app for clearer scaling and ownership
- Stack chosen for type safety end-to-end: TypeScript, Drizzle, modern React
- Platform later moved to private operation; codebase remains our reference for maritime builds
What stack was used?
- Next.js (App Router, Turbopack)
- TypeScript
- Drizzle ORM
- Neon Postgres
- Better Auth
- Vercel AI SDK (@ai-sdk/google)
- Knock
- Polar
- Bun
- Elysia
- Swift (iOS)
- Java (Android)