JejakBahari
Open RoRo Vessel Tracking for Indonesia
Overview
JejakBahari is a free, open-source web app for tracking Indonesian RoRo vessels — live position, status, and movement history built on AIS data. The platform combines a live map of whitelisted vessels with master data for operators, vessels, ports, and routes, plus geofence-based arrival and departure detection. It is designed to stay lightweight, cheap to run, and easy for a community to maintain.
Problem
Indonesian RoRo and maritime visibility depends on scattered public data sources for vessels, ports, and routes — AIS data can be delayed, missing, or wrong, and no free public tracker focuses on RoRo.
Solution
An open platform that joins live AIS positions with vessel, port, and route master data — a live map of whitelisted RoRo vessels with data-freshness indicators, geofence-based arrival/departure detection, and an admin panel for verification.
Responsibilities
- Authored the documentation set — PRD, MVP scope, tech stack, architecture, sprint plan
- Built the Laravel REST API — master data, position ingestion, whitelist, audit log
- Built the Vue 3 frontend — MapLibre live map, search, vessel detail
- Wrote the Node.js AIS worker — WebSocket client with Zod-validated payloads
- Set up the PostGIS schema, geofence port events, and CI
Key Features
- Live map of whitelisted RoRo vessels
- Vessel and port search with data-freshness indicators
- Limited position history and movement trail
- Geofence-based arrival/departure detection
- Admin panel for master data and verification
- Explicit disclaimer — not a navigation or safety tool
Technology
- Vue 3 + Vite + TypeScript
- Tailwind CSS + Pinia
- MapLibre GL JS
- Laravel REST API + Reverb
- Node.js AIS worker + Zod
- PostgreSQL + PostGIS
- Docker
- Cloudflare Pages + VPS
Technical Decisions
- Whitelist over full feed: Showing only verified RoRo vessels keeps the map honest and the scope maintainable.
- Freshness as a feature: AIS data can be late or wrong — the UI surfaces data age instead of pretending precision.
- Cheap and open: A lightweight Laravel + Vue + PostGIS stack on a single VPS keeps the project community-maintainable.
Impact
- Designed as a reusable open maritime-data foundation for Indonesian RoRo visibility