A specialized developer toolkit for OneBusAway API parity testing and GTFS-Realtime debugging
Maglev Validator is a clean, modern web application designed to streamline OneBusAway API development and testing workflows. Whether you're migrating servers, debugging discrepancies, or monitoring real-time transit feeds, this tool makes the process effortless.
| API Comparator | GTFS-Realtime Reader |
|---|---|
| Compare API responses between two OneBusAway servers side-by-side | Decode and inspect GTFS-Realtime Protocol Buffer feeds |
| Visual diff highlighting with color-coded changes | Support for Trip Updates, Vehicle Positions & Service Alerts |
| Auto-refresh for continuous monitoring | Human-readable JSON visualization |
| Configurable key ignoring for flexible comparisons | Custom header support for authenticated feeds |
- Real-time Comparison: Fetch and compare API responses from two different OneBusAway servers simultaneously
- Visual Diff Highlighting: Instantly spot differences with intuitive color-coding
- 🟡 Yellow — Different values
- 🔴 Red — Missing in Server 2
- 🟢 Green — Added in Server 2
- Auto-refresh: Configurable intervals (1-60 seconds) for continuous monitoring
- Smart Key Ignoring: Exclude dynamic fields (like timestamps) from comparisons
- All Endpoints Supported: Pre-configured support for all major OneBusAway REST API endpoints
- Path Focus: Zoom into specific JSON paths for detailed analysis
- Protocol Buffer Decoding: Automatically decode binary GTFS-RT feeds into readable JSON
- Multi-Feed Support: Fetch Trip Updates, Vehicle Positions, and Service Alerts simultaneously
- Custom Headers: Add authentication headers for protected feeds
- Auto-Refresh: Monitor feeds with configurable refresh intervals
- Collapsible Tree View: Navigate complex nested data structures with ease
- Copy to Clipboard: Quickly copy decoded JSON data for further analysis
- Dark Mode: Easy on the eyes with full dark theme support
- Persistent Settings: Your configuration is saved locally
- Responsive Design: Works seamlessly on desktop and tablet
- Modern UI: Clean, minimalist interface built with Tailwind CSS
- Node.js 18+
- pnpm (recommended) or npm
# Clone the repository
git clone https://github.com/OneBusAway/maglev-validator.git
cd maglev-validator
# Install dependencies
pnpm install# Start the development server
pnpm run dev
# Or open in browser automatically
pnpm run dev -- --openThe app will be available at http://localhost:5173
# Run the linter
pnpm run lint
# Format code (fixes formatting issues and organizes imports)
pnpm run format-
Configure Servers: Enter your two server base URLs
- Server 1:
http://localhost:4000/api/where/ - Server 2:
https://your-production-server.com/api/where/
- Server 1:
-
Select Endpoint: Choose from pre-configured OneBusAway API endpoints
- Trip Details, Stops for Route, Arrivals and Departures, and more...
-
Enter Parameters: Fill in required parameters (Trip ID, Stop ID, API Key, etc.)
-
Fetch & Compare: Click "Fetch Now" or enable "Auto-refresh" for continuous monitoring
-
Analyze Differences: Review the color-coded side-by-side comparison
-
Enter Feed URLs: Provide URLs for your GTFS-RT feeds
- Trip Updates, Vehicle Positions, Service Alerts
-
Add Headers (optional): Configure authentication headers if required
-
Fetch Feeds: Click "Fetch Now" to decode and display the feeds
-
Explore Data: Navigate the collapsible JSON tree to inspect entities
| Technology | Purpose |
|---|---|
| SvelteKit | Full-stack web framework |
| Svelte 5 Runes | Reactive state management |
| TypeScript | Type safety |
| Tailwind CSS | Utility-first styling |
| gtfs-realtime-bindings | GTFS-RT Protobuf parsing |
# Create production build
pnpm run build
# Preview production build
pnpm run previewContributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License.
Part of the OneBusAway open-source transit platform.
Made for the transit community