An interactive web application that provides a comprehensive map of Rivian Spaces, Demo Centers, Service Centers, and Outposts across North America. RivianSpotter helps users discover Rivian locations with detailed information including addresses, contact details, services, and real-time map visualization.
Live Site: rivianspotter.com
- Interactive Map Interface: Powered by Mapbox GL JS with clustered markers and smooth navigation
- Location Search & Filtering: Real-time search with debounced input for optimal performance
- Location Types:
- Rivian Spaces (retail showrooms)
- Demo Centers (test drive & delivery locations)
- Service Centers (vehicle maintenance & repairs)
- Outposts (adventure/outdoor partner locations)
- Advanced Filters:
- Filter by state/province
- Filter by services offered
- Filter by opening date
- Distance-based filtering (Near Me)
- Open Now / Coming Soon quick filters
- Detailed Location Information:
- Full address and contact details
- Operating hours
- Available services
- Opening dates
- Direct links to official Rivian.com pages
- User Features:
- Save favorite locations (stored locally)
- Recent locations history
- Export locations to CSV/JSON
- Share locations via link or social media
- Dark Mode: Automatic light/dark theme based on system preference
- PWA Support: Install as an app on mobile devices
- Mobile-Responsive Design: Optimized for all device sizes with touch-friendly interactions
- HTML5/CSS3: Modern semantic markup with CSS variables for theming
- Vanilla JavaScript (ES6+): No frameworks required - lightweight and fast
- Mapbox GL JS v2.15.0: Interactive map visualization with clustering
- GitHub Pages: Static site hosting
- GitHub API: Admin panel uses GitHub API for data management
- Service Worker: Offline support and caching
RivianSpotter/
├── index.html # Main map application
├── admin.html # Admin panel for managing locations
├── about.html # About page
├── contact.html # Contact page
├── stats.html # Statistics page
├── manifest.json # PWA manifest
├── service-worker.js # Service worker for offline support
├── CLAUDE.md # Project documentation for AI assistants
├── README.md # This file
│
├── js/
│ ├── app.js # Main application logic
│ ├── config.js # Application configuration
│ ├── locations.js # Location data (121+ locations)
│ ├── components.js # Reusable header/footer components
│ ├── features.js # User features (favorites, sharing, export)
│ └── admin.js # Admin panel functionality
│
├── css/
│ └── style.css # Main stylesheet with dark mode support
│
├── images/
│ └── *.png # Logo and image assets
│
└── .github/
└── workflows/
└── test.yml # GitHub Actions CI/CD
- A modern web browser
- A local web server (optional, for testing)
- Mapbox account with API token (free tier available)
-
Clone the repository
git clone https://github.com/zakwinnick/RivianSpotter.git cd RivianSpotter -
Open in browser
- Simply open
index.htmlin your browser, or - Use a local server:
python -m http.server 8000ornpx serve
- Simply open
-
Access the application
- Main Application:
http://localhost:8000/ - Stats Page:
http://localhost:8000/stats.html - About Page:
http://localhost:8000/about.html
- Main Application:
- Sign up for a free account at mapbox.com
- Navigate to your Account Dashboard
- Create a new access token or use your default public token
- Update
js/config.jswith your token
RivianSpotter is deployed automatically to GitHub Pages when changes are pushed to the main branch.
- Push changes to the
mainbranch - GitHub Pages will automatically build and deploy
- Changes are live within minutes at rivianspotter.com
The admin panel uses the GitHub API to manage location data directly in the repository.
- Navigate to
/admin.html - Enter your GitHub Personal Access Token
- Manage locations through the interface
- Add, edit, and delete locations
- Bulk import/export
- Real-time preview
- Automatic commit to repository
Each location includes:
{
"id": 1,
"name": "Rivian Space - Venice",
"lat": 33.9935,
"lng": -118.4714,
"type": "Space",
"address": "245 Abbot Kinney Blvd",
"city": "Venice",
"state": "CA",
"phone": "(555) 123-4567",
"hours": "Mon-Sat: 10am-7pm, Sun: 11am-6pm",
"services": ["Sales", "Test Drives", "Merchandise"],
"openingDate": "2022-03-15",
"rivianUrl": "https://rivian.com/spaces/venice",
"isOpen": true
}We welcome contributions! Here's how you can help:
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature - Make your changes
- Test thoroughly
- Submit a Pull Request
- New location updates
- UI/UX improvements
- Accessibility enhancements
- Performance optimizations
- Bug fixes
- Documentation improvements
This project is licensed under the MIT License.
MIT License
Copyright (c) 2025 RivianSpotter
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
- Website: rivianspotter.com
- Issues: GitHub Issues
- Contact: Use the contact form on the website
RivianSpotter is an independent, community-driven project and is not officially affiliated with, endorsed by, or connected to Rivian Automotive, LLC. All Rivian trademarks, logos, and brand names are the property of their respective owners. Location information is gathered from public sources and may not always be current.
Built with passion for the Rivian community