Deploy transit-sonified

Transit schedules played as music on a map, in the browser with DuckDB-WASM

Deploy transit-sonified

Just deployed

Deploy and Host Transit Sonified on Railway

Transit Sonified plays a day of transit schedules as music on a map. Every departure in the New York Subway, Madrid Metro, Tokyo Metro and Hong Kong MTR is a note, and its station lights up on the map as it plays. The GTFS DuckDB extension turns the schedules into notes inside DuckDB-WASM, and Strudel's audio engine voices them. Each city has its own scale and instrument, written as a Strudel pattern you can edit live from the ♪ button.

Live demo: https://transit-sonified-production.up.railway.app

About Hosting Transit Sonified

It's a static Vite + React site with no backend. Railpack builds it (railpack.json), and the build downloads the GTFS DuckDB extension's browser builds from its v1.0.1 release and checks their SHA-256 sums. Caddy then serves dist/ (Caddyfile) with the WASM content type, the precompressed schedule database and the city URLs (/nyc, /madrid, /tokyo, /hong-kong). The schedules ship as one prebuilt DuckDB file, and every query runs in the visitor's browser. A public domain is generated on deploy, and Railway checks / before sending it traffic.

Why Deploy Transit Sonified on Railway

Railway builds the site straight from the GitHub repository and serves it over HTTPS on its own domain, with no Dockerfile, server code or variables to set. Deploy it and open the link.

Common Use Cases

  • Hear how a city's transit network moves through a day, with rush hours building as departures pile up.
  • See how the GTFS DuckDB extension's gtfs_sonify_stops and gtfs_sonify_events turn a GTFS schedule into notes, with every query in one file (src/engine/queries.ts).
  • Use it as a reference for running a DuckDB extension in the browser with DuckDB-WASM, deck.gl and MapLibre.

Dependencies for Transit Sonified

  • GTFS DuckDB v1.0.1 browser builds (wasm_eh, wasm_mvp), downloaded from its GitHub release at build time.
  • DuckDB-WASM, deck.gl, MapLibre with the CARTO Dark Matter basemap, and Strudel. The instruments load in the browser from Strudel's soundfont host.
  • The schedules are built from the MTA subway, CRTM Metro de Madrid, mkuran.pl Tokyo rail and Just Use Wheels Hong Kong GTFS feeds, listed in the repository README.

Deployment Dependencies

None. There are no variables to set. Optional build variables:

VariableWhat it does
GTFS_EXTENSION_VERSIONBuild with another GTFS DuckDB release, e.g. v1.0.0
GTFS_EXTENSION_SOURCEUse a GTFS DuckDB extension repository .tar.gz from a path or URL instead of the release

Transit Sonified is licensed AGPL-3.0-or-later. Source: https://github.com/gabrielAHN/transit-sonified


Template Content

More templates in this category

View Template
Rocky Linux
Hosted Rocky Linux 9 workspace with SSH and persistent storage. 🚀

codestorm
47
View Template
Foundry Virtual Tabletop
A Self-Hosted & Modern Roleplaying Platform

Lucas
71
View Template
Letta Code Remote
Run a Letta Code agent 24/7. No inbound ports, just deploy.

Letta
51