Real-time PWA for Walt Disney World and Universal Orlando parks. Live wait times, schedules, GPS-based recommendations, and smart day planning — all offline-capable, no account required.
- Live wait times — real-time queue data for 7 parks (MK, EPCOT, HS, AK, USF, IOA, Epic Universe)
- Smart "What's next?" — context-aware scoring engine factoring wait time, proximity, crowd level, showtimes, and Lightning Lane windows
- Day templates — 9 pre-built itineraries with plan-aware recommendations
- GPS auto-detection — identifies your current park and land automatically
- Offline support — service worker caching for seamless use in the parks
- Installable PWA — add to home screen for a native app experience
- WCAG 2.1 AA — accessible color contrast, keyboard navigation, screen reader support
- Dark / light / auto theme
| Layer | Technology |
|---|---|
| UI | Preact + Preact Signals |
| Build | Vite |
| PWA | vite-plugin-pwa + Workbox |
| Language | TypeScript (strict mode) |
| Data | ThemeParks.wiki API |
| Hosting | GitHub Pages |
- Node.js >= 20 (see
.nvmrc)
git clone https://github.com/Figaro-Trading/Orlando.git
cd Orlando
npm install
npm run devOpen http://localhost:5173/Orlando/ in your browser.
| Script | Description |
|---|---|
npm run dev |
Start dev server with HMR |
npm run build |
Type-check + production build |
npm run preview |
Preview production build locally |
src/
components/ UI components (dashboard, park, planning, settings, nextmove)
data/ Static config, park definitions, day templates, alerts
engine/ Scoring, filtering, feasibility, and recommendation logic
services/ API client, geolocation, refresh orchestration
state/ Reactive signals and persistence layer
types/ TypeScript type definitions
styles/ Global CSS
utils/ Date, geo, formatting, and matching helpers
Automatic via GitHub Actions on push to main. The workflow runs npm ci && npm run build and deploys dist/ to GitHub Pages.
Live park data provided by ThemeParks.wiki — a free, community-maintained API. If you build on their data, consider sponsoring the project.