A modern, lossless music streaming application built with Next.js 16, featuring a sleek dark theme inspired by SerikaStreaming.
- Lossless Audio Streaming: High-quality music playback with support for multiple formats
- Modern UI/UX: Dark theme with purple/violet accents, glass effects, and smooth animations
- Synced Lyrics: Real-time lyrics display powered by LRCLib
- User Authentication: Secure authentication with NextAuth.js
- Mobile Support: Native Android app via Capacitor
- Responsive Design: Beautiful experience across all devices
- Fast Performance: Optimized with Next.js 16, Turbopack, and TanStack Query
- Next.js 16 - React framework with App Router
- React 19 - UI library
- TypeScript - Type safety
- Tailwind CSS v4 - Utility-first styling
- Prisma - ORM for database management
- PostgreSQL - Primary database
- Redis - Caching and session storage
- NextAuth.js - Authentication
- Backblaze B2 - S3-compatible object storage
- AWS SDK - S3 client for storage operations
- shadcn/ui - Beautiful, accessible components (New York style)
- Radix UI - Unstyled, accessible component primitives
- Lucide React - Icon library
- Sonner - Toast notifications
- TanStack Query - Data fetching and caching
- Zustand - State management
- React Hook Form - Form management
- Zod - Schema validation
- Capacitor 8 - Native mobile app runtime
- Biome - Linting and formatting
- Turbopack - Fast bundler for development
- Node.js 20+
- PostgreSQL database
- Redis server
- Backblaze B2 account (or S3-compatible storage)
git clone <repository-url>
cd Musicynpm installCreate a .env file in the root directory:
# Database
DATABASE_URL="postgresql://user:password@host:port/database"
# Redis
REDIS_URL="redis://host:port"
# NextAuth
NEXTAUTH_SECRET="your-secret-key"
NEXTAUTH_URL="http://localhost:3000"
# Backblaze B2 / S3
S3_ENDPOINT="s3.eu-central-003.backblazeb2.com"
S3_BUCKET="your-bucket-name"
S3_ACCESS_KEY_ID="your-access-key-id"
S3_SECRET_ACCESS_KEY="your-secret-access-key"
S3_REGION="your-region"# Push schema to database
npm run db:push
# Or run migrations
npm run db:migrate
# Seed database (optional)
npm run db:seednpm run devOpen http://localhost:3000 in your browser.
Musicy supports native Android apps via Capacitor.
# Sync Capacitor with Android
npm run native:sync
# Open Android Studio
npm run native:open
# Or run directly on connected device
npm run native:run# Push schema changes
npm run db:push
# Create and run migrations
npm run db:migrate
# Reset database (β οΈ deletes all data)
npm run db:reset
# Seed database with initial data
npm run db:seed# Lint code
npm run lint
# Format code
npm run format# Build the application
npm run build
# Start production server
npm startMusicy/
βββ app/ # Next.js App Router pages
βββ components/ # Reusable UI components
βββ lib/ # Utility functions and configurations
βββ prisma/ # Database schema and migrations
βββ public/ # Static assets
βββ styles/ # Global styles
- Primary Color: Purple/Violet (HSL: 263 70% 50%)
- Background: Deep black
- Effects: Glass morphism with 0.2rem border radius
- Components: shadcn/ui New York style
- Font: Geist (optimized by Next.js)
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is private and proprietary.
- Next.js - The React framework
- shadcn/ui - Beautiful UI components
- LRCLib - Free synced lyrics API
- Backblaze B2 - Cloud storage