← All Projects
Custom Platforms2024

RMS — Maritime Intelligence Platform

Client: Resolute Maritime

Built RMS, a custom maritime CRM and intelligence platform for Resolute Maritime — replacing a single-user Excel workbook with a relational data model spanning vessels, companies, shipyards, and inquiries, enriched with live Marine Traffic positions, fleet registry verification, and Microsoft 365 integration. Multi-year platform build, ongoing.

Resolute Maritime website screenshot
Key ResultFrom a 20-minute Excel open and almost two workdays per weekly report → instant data rendering and automated reporting

Challenges

  • The workbook took ~20 minutes to open, and producing a single weekly report consumed almost two full workdays of manual pivots
  • Entire commercial operation was running out of a single Excel workbook only one user could open at a time
  • Marine Traffic positions, fleet registry verification, and company news all checked manually, tab by tab — no way to forecast dry-dock demand by quarter, vessel type, or yard
  • Off-the-shelf CRMs (Salesforce, HubSpot) don't model vessels, classification-society renewal cycles, or yard trading areas
  • Reading inbound emails and turning each one into an inquiry row by hand was the team's biggest time sink
  • Compliance gaps — overdue surveys, expired dry-dock extensions — were caught only by ad-hoc spreadsheet checks

Solutions

  • Unified relational data model spanning vessels, companies, contacts, shipyards, ports, inquiries, repair prospects, campaigns, and templates — one schema replacing every sheet in the original Excel
  • Maritime intelligence layer with Marine Traffic vessel positions and 12-month voyage history, public fleet registry verification, auto-calculated next-renewal dates, and hourly Google News feed per company
  • Repair Prospects engine surfacing vessels likely to need dry-dock services in the next 24 months, with scoring logic configurable per shipyard and trading area
  • Microsoft ecosystem integration — OneDrive document management with smart Inquiries/{Company}/{Vessel} folders, Outlook add-in for one-click inquiry creation, Azure AD / MSAL SSO with MFA
  • Operations control centre for monitoring background services and triggering manual sync jobs (dry-dock dates, classification-society cleanup, Marine Traffic validation, fleet check, news refresh)
  • Campaign and template system with rich-text composition, variable insertion, HTML support, and version control

Results

  • From a 20-minute Excel open and almost two workdays per weekly report → instant data rendering and automated reporting
  • 6,381 vessels and 699 companies tracked across 18 integrated modules
  • Continuous compliance monitoring replaces ad-hoc spreadsheet checks; commercial conversations are now data-driven
  • Modular architecture has absorbed eighteen modules without rewriting old ones — every addition compounds on the original foundation
RMS is the kind of system you can't buy — only build. When an operating team has outgrown its spreadsheet, the answer is rarely another generic SaaS subscription. It's a platform that codifies the team's hard-won operational logic into software, and then keeps adding intelligence on top of that foundation.
WeAreFabbrik

The Client

Resolute connects shipowners with shipyards globally for dry-docking, surveys, and repair work. Their commercial advantage depends on an unglamorous capability: knowing which vessel needs which yard, when, and being able to quote it credibly.

Most of the data that powers those decisions sits in proprietary maritime sources that don't talk to each other — Marine Traffic vessel positions, public fleet registry records, classification-society renewal cycles, dry-dock schedules across yards in four continents. Stitching that picture together used to be a manual job.

The Challenge

Resolute had been running its entire commercial operation out of a single Excel file. Multiple sheets — vessels, companies, contacts, shipyards, ports, inquiries, prospects, campaigns, templates — all interlocking through manual lookups. By the time we were called in, the workbook took roughly twenty minutes just to open, and producing a single weekly report consumed almost two full workdays of someone's time stitching pivots together by hand. The cost of that approach compounded with every new vessel they tracked.

The fix wasn't another off-the-shelf CRM. Salesforce and HubSpot don't model vessels. They don't integrate with Marine Traffic or public fleet registries. They don't understand that a "lead" in ship repair is a 250-metre bulk carrier needing to be in a Mediterranean dry dock within twenty-four months, with a build year that triggers a five-year survey rule, currently steaming toward Singapore.

Resolute needed a platform that spoke maritime natively.

BeforeStylised illustration of a multi-tab Excel workbook with eight visible sheet tabs and a densely populated grid below
20-minute open. ~2 workdays per weekly report.
AfterStylised illustration of the RMS dashboard with six modular widget tiles covering vessels, prospects, status, leads, pipeline, and schedule
Instant load. Reporting on tap.

The Approach

We treated RMS not as a one-off CRM build but as a long-term intelligence platform.

Mirror the team's mental model first, optimise second. The Excel sheets reflected a real operational logic. We rebuilt that logic in a relational schema before adding new capability — so the team's existing playbooks transferred with zero retraining.

Bring the data to the user, not the user to the data. Marine Traffic, public fleet registries, Google News, OneDrive, and Outlook all became part of RMS rather than separate browser tabs. Inquiries can be created from an email in a click. Vessel positions update on a cron. Compliance status is computed continuously instead of checked manually.

Build for extension. Resolute didn't ask for eighteen modules on day one — they asked for a platform that replaced their Excel. Every architectural decision in the first build assumed RMS would keep growing: a relational schema flexible enough to absorb new entities, materialised views and Redis caching ready for heavier read patterns, Socket.IO for real-time sync, and a modular controller architecture so new modules could be added without rewriting old ones. The cost of that decision was paid upfront. The reward has compounded across every module added since.

Architecture diagram showing data sources (Marine Traffic, fleet registry, Google News, OneDrive, Outlook) flowing into the RMS core (Express, cron workers, PostgreSQL with materialised views, Redis cache, Socket.IO realtime layer) and out to interfaces (React app, Outlook add-in, Reports)
Data sources → core → interfaces. The architecture was sized for module 18 on day one of module 1.

What We Built

Core CRM modules unify vessels, companies, contacts, shipyards, ports, inquiries, repair prospects, campaigns, and templates into a single relational data model — replacing every sheet in the original Excel and adding capabilities Excel could never have.

A maritime intelligence layer brings Marine Traffic vessel positions and 12-month voyage history, public fleet registry verification with status tracking, auto-calculated next-renewal-date logic that applies the maritime five-year rule when data is missing, and an hourly Google News feed per company.

The Repair Prospects engine is a strategic marketing tool that surfaces vessels likely to need dry-dock services in the next 24 months. It filters by yard, dock size, and geographic trading area, and distinguishes current leads (vessels currently in a yard's trading area) from historical leads, with scoring logic configurable per shipyard.

Microsoft ecosystem integration covers OneDrive document management with a smart Inquiries/{Company}/{Vessel} folder structure, an Outlook add-in for creating inquiries directly from emails, and Azure AD / MSAL for enterprise SSO and multi-factor authentication.

An operations control centre gives real-time visibility into background services and lets the team trigger manual operations — dry-dock-date sync, classification-society cleanup, Marine Traffic validation, fleet check, news refresh. Yard-specific lead-scoring tiers are customised for ASRY (Bahrain), Lisnave (Portugal), Dakarnave (Senegal), and the major Turkish yards. Reporting is interactive (Chart.js, ECharts), exportable to Word, Excel, PDF, and email.

Stylised world map showing vessel positions as small dots, with a handful of positions highlighted in purple to indicate active leads in a shipyard's trading area
Vessel positions update on a cron. Active leads in a yard's trading area surface automatically.

What's Next

For Resolute, the foundation is now in place — and the eighteen modules built on top of it are the evidence.

Technologies Used

ReactNode.jsExpressMassive.jsPostgreSQLRedisSocket.IOChart.jsEChartsMicrosoft GraphAzure AD / MSALMarine Traffic API

Have a Similar Project?

Let's discuss how we can build something great together.