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

Live
- mervare.io
International directory and operator entrance
- mervare.ee
Estonian portal
- hara.mervare.app
The live pilot harbour
- MCP / API
Machine interfaces, documented
Role

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
- ≈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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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