RLeaguez - Not your leaguez; not my leaguez; R Leaguez!
A sports leagues & scheduling app built with modern web technologies.
- Tech Stack
- Monorepo Structure
- Installation & Setup
- Using TurboRepo
- Deployment
- Version History
- Screenshots & Demo
- Contributing
| Technology | Purpose |
|---|---|
| Frontend | Next.js 16 (React 19) with Turbopack (stable) |
| Backend | NestJS 10 (GraphQL API) |
| Database | PostgreSQL + Prisma 6 |
| Styling | Tailwind CSS v4 |
| State Mgmt | Zustand |
| Auth | NextAuth.js v5 + JWT |
| Rate Limiting | @nestjs/throttler (100 req/min default, 8 req/min auth) |
| Forms | React Hook Form + Zod |
| UI Library | Radix UI |
| Payments | Stripe |
| Logging | Pino (structured JSON logging) |
| Hosting | Fly.io (App) + Neon (DB) |
| Type Checking | TypeScript (heavily utilized, defined all types and interfaces) |
| Linting | ESLint (code analysis) |
| Formatting | Prettier (opinionated code formatting) |
| Testing | Jest |
| Date Handling | Day.js (lightweight and open source) |
| Nodemailer | |
| Icons | lucide-react, react-icons |
| Table Component | Tanstack Table |
apps/
βββ backend/ # Nest.js API (GraphQL)
βββ database/ # Prisma database setup
βββ frontend/ # Next.js app (web + mobile UI)
βββ mobile/ # Capacitor iOS/Android wrapper
packages/
βββ eslint-config/ # Shared ESLint rules
βββ shared/ # Shared types & utilities
βββ utils/ # Common helper functions
docs/
βββ LOGGING.md # Logging documentation
βββ MOBILE.md # Mobile architecture and setup
We use TurboRepo for task management and caching in the monorepo.
git clone https://github.com/your-username/rleaguez.git
cd rleaguezyarn installyarn prisma:generateyarn devWe leverage TurboRepo for efficient monorepo management. Some key commands:
- Run everything in parallel:
yarn turbo run dev
- Build all apps:
yarn turbo run build --filter=apps/* - Lint all packages:
yarn turbo run lint
fly deploy --config apps/backend/fly.toml --dockerfile apps/backend/Dockerfile --build-secret DATABASE_URL=your-secret-urlnpx prisma migrate deploynpx prisma db seed| Date | Version | Changes |
|---|---|---|
| 03-04-2025 | v1.3.30 | resolved social images |
| 03-02-2025 | v1.3.30 | Migrated to monorepo, upgraded Tailwind v4 |
| 02-20-2025 | v1.3.29 | Improved mobile UI, updated role management |
| 02-09-2025 | v1.3.28 | Authentication fixes, Facebook login updates |
| 02-04-2025 | v1.3.27 | UI/UX improvements, consistent components |
Full changelog available in CHANGELOG.md
Check out a live demo: rleaguez.com
For detailed technical documentation, see the docs/ directory:
- Rate Limiting Guide - API rate limiting configuration
- Logging Guide - Pino logging setup and usage
- Claude Context - Codebase context for AI assistants
- Fork the repo
- Create a new branch (
git checkout -b feature-branch) - Make your changes and commit (
git commit -m 'Add new feature') - Push (
git push origin feature-branch) - Open a Pull Request
π‘ Built with β€οΈ by Chris Catto and the community.
- wow! I appreciate you taking the time to read this readme; HA!