For all of your transit "crayon" needs, edit GTFS feeds to your hearts content with this web editor for GTFS static feeds. Inspired by geojson.io, this is meant to be a simple static site where you can upload, edit, and download files.
  • TypeScript 92.5%
  • JavaScript 4%
  • HTML 2.6%
  • Shell 0.7%
  • CSS 0.2%
Find a file
Max Katz-Christy e85b2c3899
All checks were successful
Build and Deploy / build (push) Successful in 28s
chore(release): bump version 0.6.1 → 0.6.2
2026-03-25 17:23:27 +01:00
.forgejo/workflows refactor: finish renaming to subdomain 2026-03-19 01:10:10 +01:00
.husky refactor: remove all of the npm version stuff to stick with cz 2026-03-19 00:32:33 +01:00
public fully working breadcrumbs 2025-09-22 06:15:25 +02:00
scripts Merge branch 'main' into field-types 2025-10-06 09:36:52 +02:00
src fix: phase 5 2026-03-25 13:52:03 +01:00
tests add missing files and bugfixes 2025-10-05 11:46:37 +02:00
.cz.toml chore(release): bump version 0.6.1 → 0.6.2 2026-03-25 17:23:27 +01:00
.gitignore docs: add claude md 2026-03-17 21:59:18 +01:00
.prettierrc working again 2025-09-17 02:57:03 +02:00
agency-page-improvement-plan.md feat: add properties to the agency page 2025-10-05 19:22:59 +02:00
audit-ci.json Add development tools and error visibility system 2025-09-19 14:21:16 +02:00
CHANGELOG.md chore(release): bump version 0.6.1 → 0.6.2 2026-03-25 17:23:27 +01:00
CLAUDE.md Merge branch 'main' of ssh://git.kcfam.us:2222/gtfs.zone/coloring-book 2026-03-23 14:31:09 +01:00
commitlint.config.js feat(development): use semantic-release and related tools 2025-10-05 12:20:42 +02:00
CONTRIBUTING.md refactor: finish renaming to subdomain 2026-03-19 01:10:10 +01:00
deck-gl-integration-plan.md add and remove deck.gl and many other changes 2025-09-30 01:11:55 +02:00
edit-stops-plan.md add edit 2025-09-29 08:06:40 +02:00
eslint.config.js implement indexeddb backend and fix type errors 2025-09-23 14:48:14 +02:00
future-issues.md fix: fix compress stack overflow, revert refresh, snapshot perf, and stale docs 2026-03-23 14:20:14 +01:00
GTFS_FIELD_TYPES_IMPROVEMENT_PLAN.md feat: implement handling of different gtfs field types 2025-10-06 08:55:32 +02:00
INLINE_ENTITY_CREATION_PLAN.md feat: ability to add new services 2025-10-06 09:03:14 +02:00
LICENSE mostly working 2025-09-17 03:41:33 +02:00
lighthouserc.js Add development tools and error visibility system 2025-09-19 14:21:16 +02:00
map-buttons-plan.md add edit 2025-09-29 08:06:40 +02:00
maplibre-reversion-plan.md add and remove deck.gl and many other changes 2025-09-30 01:11:55 +02:00
migrate-to-snake-case.sh almost working editor 2025-09-27 00:29:46 +02:00
NEW_FEED_PLAN.md fix: phase 5 2026-03-25 13:52:03 +01:00
package-lock.json Merge branch 'main' of ssh://git.kcfam.us:2222/gtfs.zone/coloring-book 2026-03-23 14:31:09 +01:00
package.json Merge branch 'main' of ssh://git.kcfam.us:2222/gtfs.zone/coloring-book 2026-03-23 14:31:09 +01:00
playwright.config.js initial commit 2025-09-16 02:52:37 +02:00
postcss.config.js add object view 2025-09-18 01:31:12 +02:00
README.md refactor: remove all of the npm version stuff to stick with cz 2026-03-19 00:32:33 +01:00
rollup.config.js daisyui nav bar 2025-09-22 05:53:34 +02:00
SERVICE_ISOLATION_PLAN.md feat: ability to add new services 2025-10-06 09:03:14 +02:00
tailwind.config.js add schedules and daisyui 2025-09-21 09:48:52 +02:00
test-metadata.js add gtfs reference with zod 2025-09-19 12:48:39 +02:00
timetable-loaded.png add missing files and bugfixes 2025-10-05 11:46:37 +02:00
TODO.md fix: compromise with tooltips and scrolling 2025-10-05 23:09:29 +02:00
tsconfig.json Add development tools and error visibility system 2025-09-19 14:21:16 +02:00
vite.config.js build: add git-describe 2025-10-05 13:06:33 +02:00

GTFS.zone

A web-based GTFS (General Transit Feed Specification) editor inspired by geojson.io. Upload, visualize, edit, and export GTFS transit data with no login required.

Features

  • 📁 File Upload: Drag-and-drop or button upload for GTFS ZIP files
  • 🌐 URL Loading: Load GTFS feeds directly from URLs
  • 🗺️ Interactive Map: Visualize stops and routes on an interactive map
  • ✏️ Text Editor: Edit GTFS files with syntax highlighting
  • 📦 Export: Download modified GTFS as ZIP file
  • 📱 Responsive: Works on desktop and mobile devices

Quick Start

# Install dependencies
npm install

# Start development server
npm start

# Run tests
npm test

# Build for production
npm run build

Technology Stack

  • Frontend: Vanilla JavaScript (ES6 modules)
  • Mapping: Leaflet.js
  • Editor: CodeMirror 6
  • Build: Rollup with Tailwind CSS
  • Testing: Playwright

Todo List - Future Features

Core Functionality

  • GTFS Validation: Integrate MobilityData GTFS validator
  • Advanced Error Handling: Better user feedback for parsing errors
  • Undo/Redo: Text editor history management
  • File Templates: Pre-configured GTFS file templates
  • Bulk Operations: Multi-file editing capabilities

User Experience

  • Dark Mode: Toggle between light and dark themes
  • Keyboard Shortcuts: Editor shortcuts for power users
  • Progress Indicators: Loading states for large files
  • Tour/Onboarding: First-time user guidance
  • Recent Files: Quick access to recently edited feeds

Data Visualization

  • Route Visualization: Color-coded route lines on map
  • Stop Clustering: Performance optimization for dense stop networks
  • Service Calendar: Visual representation of service patterns
  • Statistics Dashboard: Feed statistics and data quality metrics
  • 3D Visualization: Elevation and terrain integration

Advanced Editing

  • Smart Autocomplete: Context-aware field suggestions
  • Relationship Validation: Real-time foreign key validation
  • Batch Import: CSV import from external sources
  • Field Mapping: Map external data to GTFS fields
  • Version Control: Track changes and revert functionality

Performance & Scale

  • Streaming Parser: Handle very large GTFS files
  • Web Workers: Background processing for heavy operations
  • Caching Strategy: Improve load times for repeated operations
  • Memory Optimization: Better garbage collection for large datasets

Integration & Export

  • Multiple Formats: Export to JSON, GeoJSON, KML
  • API Integration: Connect to transit agency APIs
  • Real-time Data: GTFS-Realtime feed integration
  • Share Links: Generate shareable URLs for feeds
  • Embed Widget: Embeddable map widget for websites

Quality & Standards

  • GTFS Extensions: Support for GTFS-Flex, GTFS-Fares v2
  • Accessibility: Full WCAG 2.1 compliance
  • Internationalization: Multi-language support
  • Print Support: Printable route maps and schedules
  • Offline Mode: Service worker for offline editing

Developer Experience

  • Plugin System: Extensible architecture for custom features
  • API Documentation: Comprehensive developer docs
  • TypeScript: Type safety and better IDE support
  • Component Library: Reusable UI components
  • Performance Monitoring: Real-time performance metrics

Releasing

Deployments are triggered by pushing a version tag. The Forgejo CI will build and copy the output to the server.

cz bump              # bumps version, updates changelog, creates tag (run on main only)
git push --follow-tags

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests for new functionality
  5. Run npm run lint and fix any issues
  6. Submit a pull request

License

MIT License - see LICENSE file for details.