Introduction
Bitrate is an all-in-one platform for musicians: a listening surface, an artists portal, and the API behind both, in one Turborepo monorepo.
For what the product is for — the vision, the roadmaps, and the sequencing behind them — start with Strategy. This page covers the codebase.
🎯 Project Overview
This is a comprehensive music streaming service including:
- 🎵 Backend API - NestJS REST API with PostgreSQL
- 🌐 Web Application - Next.js with React 19
- 📱 Mobile App - React Native with Expo
- 🖥️ Desktop App - Tauri-based native application
- 📚 Documentation - You're reading it!
🚀 Quick Start
Prerequisites
- Node.js 24 or above (pinned by
engines) - pnpm 12.7.0 exactly (pinned by
packageManager) - Docker & Docker Compose (optional, for containerized development)
- PostgreSQL 15+ (or use Docker)
Installation
# Clone the repository
git clone https://github.com/Lordpluha/bitrate.git
cd bitrate
# Install dependencies
pnpm install
# No env file needed — the local stack runs on the compose defaults
# Start PostgreSQL + Redis (minimal local stack)
docker-compose -f infra/docker-compose.dev.yaml up -d
# Run database migrations
pnpm --filter @bitrate/api db:migration:start
# Seed the database
pnpm --filter @bitrate/api db:seed
Development
# Start all applications
pnpm dev
# Or start individual apps
pnpm --filter @bitrate/api start:dev # Backend API
pnpm --filter @bitrate/web-player dev # Web player
pnpm --filter @bitrate/web-artists dev # Artists portal
pnpm --filter @bitrate/mobile start # Mobile app
pnpm --filter @bitrate/desktop tauri dev # Desktop app
pnpm --filter @bitrate/docs start # This documentation site
pnpm --filter @bitrate/ui-react storybook # Component workshop
📖 Documentation Structure
Getting Started
- Introduction - Project overview (you are here)
- Architecture - System architecture and design decisions
- Development Setup - Detailed setup guide
Applications
- Backend API - NestJS API documentation
- Web Player - the listener-facing Next.js app, served at
bitrate.me - Artists Portal - where artists publish and track their music, at
artists.bitrate.me - Mobile App - React Native development
- Desktop App - Tauri desktop application
Two more surfaces are published from this repository but have no guide of their own, because the
sites are the documentation: this Docusaurus site at docs.bitrate.me, and the component workshop
at ui.bitrate.me — every @bitrate/ui-react component, its variants and
its accessibility notes.
Advanced
- CLI Tools - Custom build tools and utilities
- Deployment - Production deployment guide
- API Reference - Complete API documentation
In the repository
Documentation that lives next to the code rather than on this site:
- Contributing - git workflow, commit conventions, the checks to run before a PR
- Code style - stable entry point for the enforced conventions
- Architecture decisions - why the repository uses its core patterns
- Design system - brand, tokens, and the accessibility baseline
- Agent layer - the repository-owned AI commands and specialists
- CI/CD - the GitHub Actions workflow map
Project Planning
- Roadmap - Development roadmap and milestones
🛠️ Technology Stack
Backend
- NestJS - Modular Node.js framework
- PostgreSQL - Primary database
- Prisma - Type-safe ORM
- BullMQ - Job queue for background tasks
- WebSockets - Real-time synchronization
Frontend
- Next.js - React framework with App Router, organised by Feature-Sliced Design
- React 19 - UI library
- Tailwind CSS v4 - utilities configured in CSS
@themelayers, with notailwind.config.js - TanStack Query - server state, typed from the generated OpenAPI contracts
- Zustand - client state, with a shared persistence factory
- Base UI +
@bitrate/ui-react- the shared primitives and design system - TypeScript - Type safety across the stack
Mobile & Desktop
- React Native - Cross-platform mobile development
- Expo - Development toolchain
- Tauri - Lightweight desktop framework
DevOps
- pnpm workspaces - Monorepo package management
- Turbo - Incremental builds
- Biome - Fast linting and formatting
- Docker - containerisation; production runs images built in CI rather than on the server
- GitHub Actions - CI/CD pipelines
- Changesets - versioning; a merge to
masterreleases, and the release is what gets deployed - nginx - TLS termination and host routing for all six published domains
🎨 Key Features
- ✅ Real-time Music Streaming - Stream audio with low latency
- ✅ User Authentication - JWT-based auth with refresh tokens
- ✅ Playlists & Collections - Organize music your way
- ✅ Cross-device Sync - Seamless playback across devices
- ✅ Audio Conversion - Automatic conversion to OGG Opus
- ✅ Responsive Design - Works on all screen sizes
- ✅ Type-safe API - Shared contracts between frontend and backend
🤝 Contributing
We welcome contributions! Please see our Contributing Guide for details.
Ways to Contribute
- 🐛 Report bugs via GitHub Issues
- 💡 Suggest features or improvements
- 🔀 Submit Pull Requests
- 📖 Improve documentation
- ⭐ Star the repository
📝 License
This project is licensed under the MIT license - see the LICENSE file for details.
🔗 Links
- GitHub Repository: github.com/Lordpluha/bitrate
- Blog: Blog - Development updates and technical insights
Ready to dive in? Check out the Development Setup guide to get started!