Turn any shape into a real-world GPS route! Routista is a fun, free tool for runners, cyclists, and explorers who want to create GPS art or just spice up their training.
- Shape-to-Route Magic: Upload an image (logo, symbol) or draw shapes manually on an SVG canvas. Routista finds the best matching roads.
- Ready-to-use Shapes: Start instantly with built-in examples like a star, heart, lightning bolt, and more.
- Interactive Mapping: Powered by Leaflet, select any location in the world to generate your route.
- GPX Export: Download your generated route as a GPX file compatible with Strava, Garmin, and other fitness apps.
- Strava Integration: Push routes directly to Strava with one click - no GPX download needed.
- Install as App: Progressive Web App (PWA) support - install Routista on your mobile device for an app-like experience.
- Privacy Focused: All processing happens in your browser (client-side) or securely.
- Completely Free: No paywalls or subscriptions. Supported by coffee! ☕
Routista respects your privacy:
- Images stay on your device: Shape extraction happens entirely in your browser. Your images are never uploaded to any server.
- Anonymous analytics: We use PostHog to collect anonymous usage data (page views, feature usage) to improve the app. No personal data is collected.
- No tracking on localhost: Analytics are disabled during development.
- EU-hosted: Analytics data is stored in PostHog's EU region for GDPR compliance.
🚨 START HERE before working on this codebase:
- Read
docs/technical/CONTEXT_MAP.md- Maps all concepts to their source files - Check
docs/technical/ARCHITECTURE.md- System architecture overview - Browse
docs/features/- Feature-specific documentation
These documents will save you significant time by showing exactly where to find what you need.
Note for AI Agents: Development rules are automatically loaded from the Antigravity configuration.
- Select Area: Choose where you want to run or cycle.
- Input Shape: Upload an image, edit the extracted shape manually, or draw directly on the canvas.
- Generate: The algorithm processes the shape (simplifying points for better routes) and snaps it to real-world streets.
- Export: Get your GPX file and go!
Built with modern web technologies:
- Framework: Next.js 16 (App Router)
- UI Library: React 19
- Styling: Tailwind CSS 4
- Maps: Leaflet & React-Leaflet
- Caching: Upstash Redis (optional)
- Error Tracking: Sentry (optional)
- Analytics: PostHog (anonymous usage data)
- Testing: Vitest & Puppeteer (E2E)
- Deployment: Vercel
- Internationalization: next-intl
- Node.js (v18+)
- npm
# Clone the repository
git clone https://github.com/yourusername/routista.antigravity.git
# Install dependencies
npm install# Run the development server
npm run devOpen http://localhost:3000 with your browser.
Push to any branch other than main to get a Vercel preview URL accessible from mobile:
git checkout -b feature/my-feature
git push origin feature/my-feature
# → Vercel creates: https://routista-git-feature-my-feature-*.vercel.appSee docs/technical/ARCHITECTURE.md for full deployment details.
# Run automated tests
npm test
# Run browser automation tests (see docs/technical/AUTOMATED_TESTING.md)
npm run test:e2eContributions are welcome! Feel free to open issues or submit pull requests.
If you enjoy using Routista, consider buying me a coffee!
Built with ❤️ by Jakub Anderwald