Real-time transit PWA for Cluj-Napoca and other GTFS feeds, powered by the separate gtfs data pipeline.
| Path | What |
|---|---|
| src/ | App source — Svelte 5 + SvelteKit + Tailwind v4 + SQLite-WASM |
| functions/ | Cloudflare Pages Functions (‘/api/rt/*’ GTFS-RT proxy) |
| static/ | Static assets + Pages routing files (_headers, _redirects) |
| docs/ | Architecture, concepts, standards, specs, plan, investigation |
| scripts/ | Local maintenance scripts |
| .github/ | CI workflows — see docs/specs/ci-and-versioning.md |
npm install
npm run dev # dev server on http://localhost:5173
npm test # unit tests
npm run check # svelte-kit sync + svelte-check
npm run build # production build to ./buildNode 24+.
Start at docs/README.md. Code is the source of truth for behavior; docs cover what isn't obvious from reading src/.
Read AGENTS.md first. It owns the "how to work in this repo" rules; everything else cascades from there.
Cloudflare Pages auto-deploys main to https://n3ary.com. See
docs/specs/ci-and-versioning.md for
the PR validation, auto-bump, and release flow.
PolyForm Noncommercial License 1.0.0 — free for individuals, hobbyists, education, research, and charitable organizations. Any commercial use (paid products, paid services, or hosted services for revenue) needs a separate license from the author. See the LICENSE file for the full terms.