A running workout finder app that helps runners connect with training partners. Built with React and Supabase.
- 🏃 Create and browse running workouts
- 📍 Location-based matching
- 👥 Request to join workouts with approval system
- 💬 Comment on workouts
- 🔐 User authentication and profiles
- 📱 Responsive design (mobile-friendly)
- Frontend: React + Vite
- Styling: Tailwind CSS
- Backend: Supabase (PostgreSQL + Auth)
- Routing: React Router
- Icons: Lucide React
- Date Utilities: date-fns
- Node.js (v16 or higher)
- npm or yarn
- A Supabase account (free tier available at supabase.com)
npm install- Create a new project at supabase.com
- Go to your project settings and copy:
- Project URL
- Anon/Public API Key
Run the SQL in database/schema.sql in your Supabase SQL Editor:
- Go to your Supabase project
- Click on "SQL Editor" in the sidebar
- Click "New Query"
- Copy and paste the contents of
database/schema.sql - Click "Run"
Create a .env file in the root directory:
cp .env.example .envEdit .env and add your Supabase credentials:
VITE_SUPABASE_URL=your_supabase_project_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
npm run devThe app will be available at http://localhost:5173
src/
├── components/ # Reusable components
│ └── Navbar.jsx # Navigation bar
├── contexts/ # React contexts
│ └── AuthContext.jsx # Authentication context
├── lib/ # Utilities and config
│ └── supabase.js # Supabase client
├── pages/ # Page components
│ ├── Landing.jsx
│ ├── SignIn.jsx
│ ├── SignUp.jsx
│ ├── Dashboard.jsx
│ ├── CreateWorkout.jsx
│ ├── BrowseWorkouts.jsx
│ ├── WorkoutDetail.jsx
│ └── Profile.jsx
├── App.jsx # Main app component with routing
└── main.jsx # Entry point
The app uses the following main tables:
profiles- User profilesworkouts- Workout postsworkout_participants- Join requests and participantsworkout_comments- Comments on workouts
See database/schema.sql for the complete schema.
- Push your code to GitHub
- Import your repository on Vercel
- Add your environment variables in Vercel settings
- Deploy!
- Push your code to GitHub
- Import your repository on Netlify
- Add your environment variables in Netlify settings
- Build command:
npm run build - Publish directory:
dist
- Google Maps integration for location search
- Mobile app (React Native)
- Push notifications
- Workout history and stats
- User ratings and reviews
- Advanced filtering (pace, distance range, etc.)
- Group chat for workouts
- Calendar integration
- Weather integration
Contributions are welcome! Please feel free to submit a Pull Request.
MIT License - feel free to use this project for your own purposes.