Epsilon.fm
A modern open-source music distribution management system.
Install / Use
/learn @epsilon-records/Epsilon.fmREADME
[![PRs-Welcome][contribute-image]][contribute-url]
🔍 Project Overview
This SvelteKit and FastAPI powered open-source music distribution platform aims to revolutionize how independent artists share and monetize their music. Built with modern web technologies and a focus on user experience, our platform provides a comprehensive suite of tools for artists to manage their releases, engage with fans, and track their success.
Key features include:
- Music Distribution: Seamless uploading and distribution of tracks to major streaming platforms.
- Artist Profiles: Customizable artist pages to showcase music, biography, and upcoming events.
- Release Management: Tools for creating and managing music releases, including metadata editing and scheduling.
- Analytics Dashboard: Real-time streaming and revenue data to help artists track their performance.
- Social Media Integration: Easy sharing of releases and updates across various social platforms.
- Royalty Tracking: Transparent royalty calculations and payout management.
The project leverages the power of SvelteKit for a blazing-fast frontend, FastAPI with SQLModel for efficient backend operations, and integrates with services like Clerk for authentication and UploadThing for file handling. The modular structure allows for easy expansion and customization.
Key areas of the platform include:
routes/(main): Core pages like homepage, artist dashboard, and release management.routes/(website): Artist-specific public-facing pages.lib/components: Reusable UI components for consistent design.lib/server: Server-side utilities and integrations.
This project aims to provide a robust and scalable solution for music distribution while remaining open-source and community-driven. It serves as an excellent foundation for music tech enthusiasts, independent labels, and developers looking to contribute to the music industry's digital transformation.
Our goal is to empower artists with a platform that combines ease of use with powerful features, all while fostering an open ecosystem for music distribution technology.
🌟 Key Features
This project aims to provide a robust open-source platform for music distribution, incorporating modern web technologies and user-centric design:
- 🎵 Music Distribution: Seamlessly upload and distribute tracks to major streaming platforms.
- 👤 Artist Profiles: Create customizable artist pages to showcase music, biography, and events.
- 📅 Release Management: Comprehensive tools for creating, editing, and scheduling music releases.
- 📊 Analytics Dashboard: Real-time streaming and revenue data for performance tracking.
- 🌐 Social Media Integration: Easy sharing of releases and updates across various platforms.
- 💰 Royalty Tracking: Transparent calculations and management of royalty payouts.
- ⚡ SvelteKit Powered: Utilize SvelteKit for a blazing-fast, reactive user interface.
- 🗃️ SQLModel: Efficient database operations with type-safe queries.
- 🔐 Clerk Authentication: Secure and customizable user authentication and management.
- 🗂️ UploadThing Integration: Robust file handling for music and image uploads.
- 🎨 Customizable UI Components: Reusable components for consistent design across the platform.
- 📱 Responsive Design: Mobile-friendly interface for on-the-go management.
- 🔍 SEO Optimization: Built-in features to improve discoverability of artist pages.
- 🌍 Internationalization: Support for multiple languages to reach a global audience.
- 🚀 Scalable Architecture: Designed to handle growth from indie artists to major labels.
- 🧩 Modular Structure: Easy to extend and customize for specific needs.
- 🐳 Docker Support: Simplified deployment and development environments.
- 👥 Open-Source Community: Benefit from and contribute to a growing ecosystem of music tech.
📋 Prerequisites
Before you begin, ensure you have the following prerequisites installed and configured:
- PostgreSQL: Set up a PostgreSQL database.
- Redis: Install and configure a Redis server.
- Python: Make sure to have Python 3.12 or a newer version installed on your system.
- Poetry: Install Poetry for managing Python dependencies.
- Bun: Install Bun for managing Typescript dependencies.
Note: Soon, there will be an additional option for development using Docker containers.
Developing
Once you've cloned the code and installed dependencies with bun install, you can start the development server as follows:
bun run dev
# or start the server and open the app in a new browser tab
bun run dev -- --open
Building
To create a production version of the app:
bun run build
You can preview the production build with bun run preview.
Todo
[x] Setup pre-commit hooks (Husky, Lint-staged, Devmoji)
[x] Setup local code repository (Git)
[x] Setup remote code
Related Skills
himalaya
348.2kCLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).
taskflow
348.2kname: taskflow description: Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layer
claude-opus-4-5-migration
108.9kMigrate prompts and code from Claude Sonnet 4.0, Sonnet 4.5, or Opus 4.1 to Opus 4.5
Writing Hookify Rules
108.9kThis skill should be used when the user asks to "create a hookify rule", "write a hook rule", "configure hookify", "add a hookify rule", or needs guidance on hookify rule syntax and patterns.
