Open source · MIT licensed

Nautical charts, spoken aloud.

AudioChart is a voice-interface PWA that reads nautical chart data — bearings, hazards, buoys — aloud, and keeps working fully offline once charts are downloaded. The code is public; here's how it's put together.

578Commits
MITLicense
PWAOffline-first
2Contributors
Architecture

Chart data in, spoken bearings out.

The repo is organized as a pipeline: raw chart data is prepared once, served to clients, and consumed by an installable offline web app.

01

preprocess/

Prepares raw nautical chart data — buoys, hazards, depths, coastline — into the format the app consumes.

→
02

server/

Backend service that fronts the prepared chart data for the client.

→
03

www/

The installable PWA — map, voice output, offline chart caching, and the on-screen controls.

→
04

.github/workflows/

CI that builds and deploys the app to GitHub Pages on every push to main.

Documentation

Start here before diving into code.

The repo keeps its own history and design decisions in plain markdown.

Get started

Clone it and read the spec.

The fastest way in is the repo itself — SPEC.md covers the architecture in more depth than any landing page will.

# clone the repo
$ git clone https://github.com/egilchri/AudioChart.git
$ cd AudioChart

# start with the spec and folder layout
$ open SPEC.md
How it's built

Developed in the open, with Claude Code.

AudioChart's commit history is a mix of human and AI-authored changes — a live look at what iterating on a real app with Claude Code looks like over hundreds of commits.

Every feature, fix, and chart region added to AudioChart is tracked in the open — from the original offline-PWA groundwork to the latest chart data fixes. Browse the commit log to see the app's actual development process, not just the finished product.

cb95310Replace interactive tour with auto-playing "Watch" movies per sample route (v649)egilchri + claude
6c151a8Fix zoom/pan controls rendering on top of each other (v674)egilchri + claude
7b3e05dAdd a parameterized new-region pipeline (v391)egilchri + claude
2c88f11Add adventure_tests.gpx — all 7 Adventure Test routesegilchri + claude