Skip to content
MOITOITECH
EET--:--:--
SUN--:--

Selected systemsCase study

Mervare: from a phone call on VHF to an operating system for small harbours.

How MoiToi took a marina product from an empty repository to a live pilot, a twelve-country harbour directory and an AI-assisted delivery pipeline — and what was deliberately left unclaimed.

Live pilot · Hara harbour, Gulf of Finland

The Mervare harbour map on mervare.io: harbours across twelve countries

Live

Role

Andres Kepler

Andres Kepler

Product engineer and infrastructure specialist

Andres founded Mervare and owns it end to end: the customer research, the product and pricing decisions, the data model, the hardware bridge, the delivery pipeline and the operation of the pilot. MoiToi.TECH is the practice that builds it.


At a glance

What can be checked.

5 days
to a first version with auth, payments, booking state, MQTT and the hardware bridge — 206 commits
Source: Mervare codebase (private)
1,697
commits between 1 May and 2 October 2026
Source: Mervare codebase (private)
3,814
harbours on one map across 12 countries, four of them with a national portal
Check: mervare.io/map
8
languages across the portals and the product
Check: mervare.io
237
public Estonian harbours, read from the national register rather than typed in
Check: mervare.ee
≈400
automated test files across the web app, the agents and the builder
Source: Mervare codebase (private)

Problem

Booking a berth still meant calling on VHF.

Small Baltic harbours run on a paper book, a phone and a harbourmaster who may or may not answer. A sailor cannot see what is free; the harbour cannot see who is coming. Most existing marina software is built for large marinas with an office and a budget.
The customer is the harbour operator
Sailors are the audience, but the operator is the customer. The national directories exist to bring sailors in; the revenue model is a booking fee plus marina software.
Availability has to be true
A booking system that lets someone reserve an occupied berth is worse than a phone. So the system is designed to verify occupancy from the harbour's own instruments, not from a form someone forgot to update.

Discovery

Measured before it was believed.

Assumptions were written down, tested against data and corrected in public documents when they turned out wrong — including the ones that made the business look bigger.
Public data turned out to under-count the market
Comparing public AIS vessel tracking with one harbour's own records showed AIS misses most leisure arrivals, because AIS on small boats is voluntary. The demand story told to harbours changed as a result.
The market model was revised down
When home-berthed boats were found counted as visiting guests, the sizing model was corrected downward and the conclusion rewritten: the booking fee alone is a small business, so marina software has to carry the model.
Surveys as reviewed codelive
Operator and sailor surveys are defined as versioned, reviewed files and published through an audited control plane, so a question cannot change without a record of who changed it.
Market tests with the hypothesis written firstlive
The Swedish portal launched as an explicit market test, with what would count as success written down before any results existed.

Decisions

Small enough for a harbour with no office.

The product decisions follow the buyer: a two-person harbour team, a short season, no IT department.
Money goes to the harbour, not through MoiToilive
Stripe Connect pays the harbour directly. Mervare takes a stated platform fee per booking.
Start with one berthbuilt, not live
No ten-berth minimum and no hardware purchase to begin: a harbour can activate a single berth and one QR sticker. Per-berth billing is designed, not yet charged.
Capabilities are labelled, never impliedlive
Every harbour shows what a visitor can actually do there — read about it, request a berth, book, or book and pay. A claims audit removed marketing lines the code did not support.
Harbours claim their own listing
One claim flow for every data source, verified by the harbour's own e-mail domain with a manual fallback and an append-only audit trail.

System

Software, data and hardware as one product.

A web product, a harbour directory and a bridge to marine instruments, designed as one system rather than an integration.
Productlive
Next.js on Vercel, Supabase Postgres with more than a hundred versioned migrations, role-based access per harbour, a full booking state machine, Stripe Connect and Resend.
Instrument bridge
A Go agent running on a Victron Cerbo GX (Venus OS) or a Raspberry Pi reads marine instruments — NMEA 2000, NMEA 0183, Victron MQTT — and reports over EMQX MQTT. Updates ship over the air after a one-time install.
Gate access by QR
A QR code pulses a relay on the gate only after the cloud has checked for a valid booking or role. It pulses, never latches open.
Machine interfaceslive
A public discovery MCP endpoint and an authenticated MCP server (OAuth 2.1 with PKCE), documented at mervare.io/docs/mcp. A read-only partner API is built and tested but not yet issued to anyone.

Data

Twelve countries, sourced lawfully.

The directory is built from national registers, OpenStreetMap and licensed tourism data. Where the licence was unclear, permission was asked for — and where none could be found, the country was left out.
Registers firstlive
Estonia and Latvia come from their national harbour registers, refreshed on a schedule. Nordic, Baltic and Atlantic coasts come from OpenStreetMap.
Permission, not scrapinglive
A regional coastal data set is used under written permission from the planning region that publishes it. Sources whose terms were not cleared stay as links only.
A gap is left as a gaplive
Lithuania is in the directory only through open map data: no lawful bulk source for its register was found, so none was imported. Absent means unknown, never zero.
In the sailor's languagelive
Estonian, English, Latvian, Finnish, Swedish, Portuguese, Spanish and French, with each national portal owning its own country's canonical pages.

AI-native delivery

AI executes. A person owns the decisions.

Mervare is built with an autonomous builder, and the interesting part is the gates rather than the model. Andres owns product intent and architecture; routine implementation runs through a pipeline that cannot skip its checks.
Issue to main, with gateslive
A queued GitHub issue is implemented by Claude Code, must pass CI, and is then reviewed by an independent reviewer bound to the exact commit. At most three fix rounds; anything else stops for a person.
The model holds no keyslive
The coding agent has no repository token and cannot commit, merge or deploy. A deterministic wrapper does that, only after the gates pass.
Agents with bounded jobslive
Named agents share hypotheses, evidence and handoffs through MCP. Outbound mail goes through a queue with a kill switch, idempotency keys and evidence references — no agent sends on its own.
Visible on this sitelive
The builder's current task appears on the MoiToi.TECH homepage as a public, curated activity feed. It says implemented, never published, because merging is not the same as shipping.

Not yet

What it does not claim.

A pilot is a pilot. These are stated here so nothing above is read as more than it is.
  • One live pilot harbour. Other harbours have profiles; that is not the same as customers.
  • Per-berth billing is designed and quoted, not yet charged.
  • The partner API is built and tested, not yet issued to a partner.
  • The harbour-side berth display and the ESP32 relay firmware are in development.

For your project

What this proves, and what it does not.

It shows how MoiToi works when it owns a difficult problem end to end. It does not mean another Mervare fits in two weeks.
Scale Sprint
How the work goes when one person owns a hard, ambiguous problem: research, decide, build, correct.
Startup Builder
Prototype to production: auth, payments, booking state, migrations, tests and an operated pilot.
AI Workflow Automation
Agents with bounded jobs, human approval on anything external, and a delivery pipeline with real gates.
Run & Scale
Postgres, MQTT and edge devices run in production, with scheduled data pipelines and over-the-air updates.

Next step

Have a difficult problem of your own?

Thirty minutes to describe it, and an honest view of whether MoiToi is the right fit.