No description
  • TypeScript 94.7%
  • HTML 2%
  • Shell 1.3%
  • Dockerfile 1.1%
  • CSS 0.8%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Max Katz-Christy 553067a646
All checks were successful
Build and Deploy / build (push) Successful in 34s
Vulnerability scan / vuln-scan (push) Successful in 8s
chore(release): bump version 0.5.0 -> 0.5.1
2026-10-01 00:42:07 +02:00
.forgejo/workflows ci: check out from the public Forgejo URL in the vuln scan 2026-09-30 20:01:11 +02:00
.githooks feat: list and world map of the published GTFS catalogue 2026-09-22 23:54:42 +02:00
.github/workflows ci: add osv-scanner vulnerability gate on GitHub and Forgejo Actions 2026-09-30 19:49:36 +02:00
public feat(pages): serve crawlable feed pages via nginx SSI 2026-09-26 12:04:16 +02:00
scripts ci: add osv-scanner vulnerability gate on GitHub and Forgejo Actions 2026-09-30 19:49:36 +02:00
src fix: load the maplibre worker from a Vite-built URL 2026-10-01 00:14:49 +02:00
.cz.toml chore(release): bump version 0.5.0 -> 0.5.1 2026-10-01 00:42:07 +02:00
.dockerignore feat: list and world map of the published GTFS catalogue 2026-09-22 23:54:42 +02:00
.gitignore feat: list and world map of the published GTFS catalogue 2026-09-22 23:54:42 +02:00
CHANGELOG.md chore(release): bump version 0.5.0 -> 0.5.1 2026-10-01 00:42:07 +02:00
CLAUDE.md feat(feeds): partial state, role chips, shared search and place search 2026-09-30 02:53:11 +02:00
Dockerfile feat(pages): serve crawlable feed pages via nginx SSI 2026-09-26 12:04:16 +02:00
LICENSE.txt feat: list and world map of the published GTFS catalogue 2026-09-22 23:54:42 +02:00
nginx.conf feat(pages): serve crawlable feed pages via nginx SSI 2026-09-26 12:04:16 +02:00
package.json chore(release): bump version 0.5.0 -> 0.5.1 2026-10-01 00:42:07 +02:00
pnpm-lock.yaml build(deps): bump interlocking to v4.0.0 from GitHub and maplibre-gl to ^6 2026-09-30 19:27:29 +02:00
pnpm-workspace.yaml feat: list and world map of the published GTFS catalogue 2026-09-22 23:54:42 +02:00
postcss.config.js feat: list and world map of the published GTFS catalogue 2026-09-22 23:54:42 +02:00
README.md docs: link geometry-car on GitHub in README 2026-09-30 21:37:11 +02:00
tsconfig.json build(deps): bump interlocking to v4.0.0 from GitHub and maplibre-gl to ^6 2026-09-30 19:27:29 +02:00
vite.config.ts feat: list and world map of the published GTFS catalogue 2026-09-22 23:54:42 +02:00

globe-of-contents

A list and a world map of every public GTFS and GTFS Realtime feed, and whether each one still answers. Deployed at list.gtfs.zone.

A static Vite/TypeScript/daisyUI app with no backend of its own. Everything it shows comes from the artifacts geometry-car publishes daily to data.gtfs.zone: manifest.json first, then feeds.json, sources.json, status.json and summary.json at the hashes the manifest names.

pnpm install
pnpm dev          # vite on :8080, reading https://data.gtfs.zone
pnpm typecheck
pnpm build

git config core.hooksPath .githooks   # once per clone; typecheck on commit

VITE_DATA_BASE=<url> pnpm dev points the dev server at another copy of the artifacts. Production always reads https://data.gtfs.zone.

What it shows

  • The map: one point per logical feed (a transit system, bundling its schedule and realtime across every catalog that lists it), clustered, each cluster ringed by its up/down/inaccessible share. Many feeds have no coordinates (DMFR carries none; only the Mobility Database does), and the list says how many it is not drawing.
  • Search: the box on the map narrows the list and the map as you type and offers the best matches in a dropdown. The state counts at the top of the list and a "realtime only" switch under them filter it. All of it is mirrored into the URL hash, so a filtered view is a link.
  • The sidebar, hash-routed with breadcrumbs:
    • Home: the filtered feeds. At most 200 are painted; the count says how many more match.
    • Feed: each role's state and URLs, the schedule's size and Last-Modified, the catalog entries it was built from, and links into the editor and the visualizer.
    • Source: one catalog entry, its URLs and its last check.
  • Phone: the sidebar becomes a bottom drawer, opened from the dock's Browse button.

Releasing

cz bump        # on main; tags vX.Y.Z
git push origin main --tags
git push github main --tags

CI builds on the tag, pushes the image by digest and records that digest in deploy-gtfs-rt/sites/kustomization.yaml; ArgoCD rolls it out.

License

AGPL-3.0, see LICENSE.txt.