Your Year on Two Wheels. An interactive, cinematic annual recap for motorcycle riders.
RideWrapped 2025 is a web application that generates a personalized "Spotify Wrapped" style summary for motorcyclists. Users input their riding stats, favorite locations, and memories, and the app generates a beautiful, animated slideshow celebrating their journey.
- Interactive Questionnaire: A smooth, single-page form to collect riding stats.
- Dynamic Map Generation: Visualizes the rider's journey using Leaflet.js and OpenStreetMap data.
- Cinematic Slideshow: 12+ animated slides powered by GSAP, showcasing stats like total distance, top locations, and riding personality.
- Personality Engine: Automatically determines if you're a "Speedster", "Explorer", "Zen Rider", and more based on your inputs.
- Social Sharing: Download individual slides or the entire summary as high-quality images for Instagram Stories.
- Cloud Persistence: Saves user recaps to a Supabase database for posterity.
- Frontend: HTML5, CSS3 (Custom Properties & Animations), Vanilla JavaScript (ES6+)
- Animations: GSAP (GreenSock Animation Platform)
- Maps: Leaflet.js & Nominatim API (Geocoding)
- Image Generation: html2canvas
- Backend: Supabase (PostgreSQL Database)
- Deployment: GitHub Pages (via GitHub Actions)
- A modern web browser
- A Supabase account (free tier works great)
-
Clone the repository
git clone https://github.com/Synapse-Space/Riders-Recap.git cd Riders-Recap -
Configure Environment Variables Create a
config.jsfile in the root directory to store your local Supabase credentials.Note:
config.jsis git-ignored to keep your secrets safe.// config.js window.CONFIG = { SUPABASE_URL: 'YOUR_SUPABASE_URL', SUPABASE_ANON_KEY: 'YOUR_SUPABASE_ANON_KEY' };
-
Run the App Simply open
index.htmlin your browser.Tip: Use a local server like Live Server (VS Code) or
python -m http.serverfor the best experience.
To enable data saving, you need to set up a table in your Supabase project.
-
Go to the SQL Editor in your Supabase Dashboard.
-
Run the following SQL query (also found in
supabase_schema.sql):create table public.ride_recaps ( id bigint generated by default as identity primary key, created_at timestamp with time zone default timezone('utc'::text, now()) not null, name text, total_distance numeric, locations text[], favorite_time text, favorite_terrain text, longest_ride numeric, favorite_day text, preferred_weather text, ride_length text, memorable_moment text, motorcycle_name text, personality text ); alter table public.ride_recaps enable row level security; create policy "Enable insert for everyone" on "public"."ride_recaps" for INSERT to public with check (true);
This project is configured to deploy automatically to GitHub Pages using GitHub Actions.
- Push your code to the
mainbranch. - Go to your GitHub Repository Settings > Secrets and variables > Actions.
- Add the following Repository Secrets:
SUPABASE_URLSUPABASE_ANON_KEY
- The action will automatically build and deploy your site, injecting the secrets securely.
- Themes: Edit
styles.cssvariables (--cosmic-dark,--teal-electric, etc.) to change the color scheme. - Personalities: Modify the
personalitiesobject inapp.jsto add or change rider archetypes.
This project is open source and available under the MIT License.
Made with 🖤 and 🏍️ by Synapse Space