Rec is a comprehensive sports community platform that connects athletes with local venues, pickup games, and fellow players. Search your local community for pick-up games, leagues, or solo play opportunities.
π Visit Rec Sports β
Rec solves the age-old problem of finding quality sports venues and connecting with other athletes. Whether you're looking for a tennis court, basketball pickup game, or soccer field, Rec provides real-time information about sports facilities near you.
- π Location Discovery - Find sports venues by location, facility type, or sport
 - π₯ Community Connection - Meet people to play with in your area
 - π± Real-time Updates - Get live information about venue availability and conditions
 - π¨ Community Alerts - Report and receive alerts about facility issues or closures
 - β Venue Ratings - Read and contribute reviews of local sports facilities
 - π Multi-Sport Support - Tennis, Basketball, Soccer, Pickleball, Volleyball, and more
 
This is a modern Bun-based monorepo featuring:
- React Native with Expo
 - File-based routing with Expo Router
 - Apollo Client for GraphQL data management
 - React Native Unistyles for adaptive theming
 - MMKV for efficient local storage
 
- React Router for full-stack web framework
 - Tailwind CSS with custom components
 - Server-side rendering with static optimization
 - Dynamic routing for sports and locations
 
- NestJS framework with Apollo Server
 - PostgreSQL with PostGIS for geographic data
 - Supabase for authentication and real-time features
 - Kysely for type-safe database queries
 
- PostgreSQL with PostGIS extensions
 - Supabase for local development
 - Row-level security policies
 - Automated migrations and seeding
 
packages/types/- Shared TypeScript types and GraphQL codegen
- Bun - Fast JavaScript runtime and package manager
 - Supabase CLI - For local database management
 
# Clone the repository
git clone https://github.com/your-org/rec-sports.git
cd rec-sports
# Install dependencies for all packages
bun install
# Set up local database
cd packages/database
supabase start
bun dev:init
# Start the API server
cd ../api
bun start:dev
# Start the mobile app (in another terminal)
cd ../apps/mobile
bun start
# Start the web app (in another terminal)
cd ../apps/web
bun dev# Mobile App
bun start          # Start Expo dev server
bun android        # Run on Android emulator
bun ios           # Run on iOS simulator
# Web App
bun dev           # Start development server
bun build         # Build for production
# API
bun start:dev     # Start with hot reload
bun typegen:gql   # Generate GraphQL types
bun test          # Run tests
# Database
bun dev:init      # Reset with migrations and seeds
supabase db reset # Reset database- Runtime: Bun - Fast JavaScript runtime
 - Mobile: React Native + Expo
 - Web: React Router + Tailwind CSS
 - API: NestJS + GraphQL
 - Database: PostgreSQL + PostGIS + Supabase
 
rec-sports/
βββ apps/
β   βββ mobile/        # React Native mobile app (Expo SDK 53)
β   βββ web/           # React Router marketing website
βββ packages/
β   βββ api/           # NestJS GraphQL API backend
β   βββ database/      # PostgreSQL database config & migrations
β   βββ types/         # Shared TypeScript types
β
- π Rec Sports Website - Experience the platform
 - π± Mobile App - Coming soon to iOS and Android app stores
 - π¦ Twitter/X - Follow for updates
 - π Facebook - Join the community
 - πΈ Instagram - See sports in action
 
We welcome contributions! Please see our contributing guidelines for details on how to:
- Report bugs and request features
 - Submit code improvements
 - Add new sports venue data
 - Improve documentation
 
This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0) - see the LICENSE file for details.
Key points about AGPL-3.0:
- β Free to use, modify, and distribute
 - β Open source contributions welcome
 β οΈ Network use requires source disclosure - If you run a modified version of this software on a server that users interact with over a network, you must provide the source code to those users- π Copyleft license - Derivative works must also be licensed under AGPL-3.0