Skip to main content

Introduction

Bitrate is a full-featured music streaming platform built from scratch using modern technologies. This project demonstrates best practices in monorepo architecture, microservices, and cross-platform development.

🎯 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 20.0 or above
  • pnpm 10.28.1 or above
  • 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

# Set up environment variables
cp .env.example .env

# 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/mobile start # Mobile app
pnpm --filter @bitrate/desktop tauri dev # Desktop app

📖 Documentation Structure

Getting Started

Applications

Advanced

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
  • React 19 - UI library
  • Tailwind CSS v4 - Utility-first CSS (Rust-based)
  • 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 - Containerization
  • GitHub Actions - CI/CD pipelines

🎨 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 UNLICENSED license - see the LICENSE file for details.


Ready to dive in? Check out the Development Setup guide to get started!