Technical Details

Architecture, infrastructure, and technology stack powering DFW Drag Events.

Technology Stack

This site is built with simplicity, speed, and maintainability in mind.

Site Runtime

  • Static JSON Data — Website-ready event data is served from committed JSON files generated by a sync step
  • Schema-Validated Dataset Sync — Upstream event data is validated against the published JSON Schema before being written into the site
  • Manual Track Filter Definitions — Track filters are controlled separately through a maintained canonical-and-alias JSON file
  • Fast Static Delivery — Pages and assets are served without a dynamic application server
  • Open Source Repository — Source, documentation, and deployment tooling are maintained in GitHub

Frontend

  • Vanilla JavaScript — No frameworks, just fast native code
  • Bootstrap 5 — Responsive design and UI components
  • Static HTML — Pre-rendered pages for maximum performance
  • Vitest — Frontend testing for application behavior and coverage

Development Tools

  • Python 3 — AWS deployment and infrastructure scripts
  • Node.js — Local development server and dataset sync tooling
  • Make — Lightweight validation, test, coverage, and deploy entry points
  • AWS CLI — CloudFront, Route 53, S3, and ACM operations
  • Git — Version control and collaboration

The retired local Go/SQLite/CSV data workflow has been archived from the active architecture and documentation.

Data Pipeline

The production dataset is no longer edited manually in multiple files. The site syncs upstream event data from bigsapper/drag-events-aggregator, validates it against the published schema, and writes a website-specific events.json file with embedded track metadata.

  • Synced Files: events.json and events.schema.json
  • Manual File: tracks-filter.json for canonical track filter labels and aliases
  • Archived Snapshot: Previous local dataset preserved under _archive/site-data/2026-04-01-pre-aggregator/

Infrastructure & Hosting

We take site availability seriously. The site is deployed as static content on AWS with CloudFront caching and regional failover support.

AWS Services

  • S3 (Primary): Static website hosting in US East (N. Virginia)
  • S3 (Failover): Backup bucket in US West (Oregon) for redundancy
  • CloudFront: Global CDN with 450+ edge locations worldwide
  • Route 53: DNS and domain management
  • Certificate Manager: Free SSL/TLS certificates with auto-renewal

Reliability Features

  • Multi-Region Redundancy: Automatic failover between US East and US West regions
  • 99.9% Uptime SLA: If one AWS region goes down, the site automatically switches to the backup region in seconds
  • HTTPS Everywhere: Secure connections with auto-renewing SSL certificates
  • Edge Caching: Content served from the nearest CloudFront edge location for sub-100ms load times
  • Deployment Automation: Python scripts and Make targets keep the release workflow repeatable

Built with enterprise-grade AWS infrastructure to ensure you can always access event information when you need it.

Open Source

This project is open source and licensed under the MIT License.

That means:

  • ✅ The code is freely available for anyone to view, use, and modify
  • ✅ Contributions from the community are welcome
  • ✅ You can fork the project and adapt it for your own region or use case
  • ✅ All code and infrastructure documentation is public on GitHub

Performance Metrics

  • Load Time: <100ms (CloudFront edge cache)
  • 📊 Frontend Test Coverage: 93.69% statements, 82.51% branches, 96.07% functions, 95.07% lines
  • 🧩 app.js Coverage: 93.59% statements, 81.25% branches, 95.12% functions, 94.46% lines
  • 🌍 Global CDN: 450+ edge locations
  • 🔒 Security: HTTPS only, CSP headers, HSTS enabled
  • Accessibility: Semantic HTML, ARIA labels, keyboard navigation

Want to Contribute?

We welcome contributions! Here's how you can help:

  • 🐛 Report bugs or issues on GitHub
  • 💡 Suggest new features or improvements
  • 📝 Improve documentation
  • 🔧 Submit pull requests with fixes or enhancements
  • 🏁 Submit fixes, content updates, or tooling improvements

Check out the GitHub repository for contribution guidelines and setup instructions.