AI-powered music generation platform
Generate original songs from text descriptions, custom lyrics, or style prompts.
www.melodyc.com
Melodyc is an open-source SaaS platform that lets users generate original music through artificial intelligence. Describe a mood, paste your lyrics, or define a style β Melodyc takes care of the rest, producing a complete track with audio and AI-generated cover art.
Built with a modern full-stack architecture, Melodyc is designed to be a real-world reference for anyone who wants to learn how to build a production-ready SaaS: authentication, background job queues, and serverless GPU inference β all working together.
The hosted platform is completely free: every new account gets 100 credits, and a gamification system (missions, challenges, streaks, and badges) that rewards community activity with new credits is coming soon.
All platforms used offer a free tier β you won't need to spend anything to start developing.
- π΅ AI music generation with ACE-Step v1 3.5B
- π§ Automatic lyrics and prompt generation with Qwen2-7B-Instruct
- πΌοΈ AI cover art generation with FLUX.1-schnell
- π€ Three generation modes: free description, custom lyrics, described lyrics
- πΈ Instrumental track option (no vocals)
- β‘ Serverless GPU processing with Modal (GPU L40S)
- π Background job queue system with Inngest
- π³ Free credit-based usage system (100 credits on sign-up)
- π Gamification to earn credits (coming soon)
- π€ User authentication with BetterAuth, email verification, and password reset
- π§ Transactional and notification emails with Resend
- π§ Community feed to discover, listen to, and like generated tracks
- ποΈ Personal library (My Music) to manage, publish, and download your music in WAV, MP3, and FLAC
- π§βπ€ Public creator profiles with username, profile picture, mascot, followers, and following
- π In-app notifications for likes, followers, listen milestones, and generation results
- π Creator analytics dashboard with 7, 28, and 90 day ranges, period comparisons, interactive charts, and top songs
- βοΈ GDPR-oriented legal pages in English and Italian, consent records, and a granular cookie banner
- π Cookieless Vercel Web Analytics and Speed Insights, loaded only with consent
- π‘οΈ Security headers and server-side input validation
- π± Modern UI with Next.js, Tailwind CSS and ShadCN
| Area | Technologies |
|---|---|
| Frontend | Next.js 15, React 19, TypeScript, Tailwind CSS 4, ShadCN |
| Authentication | BetterAuth |
| Resend | |
| Analytics | Vercel Web Analytics, Vercel Speed Insights (consent-based) |
| Database | PostgreSQL (Neon) + Prisma ORM |
| Queue / Workflow | Inngest |
| Storage | AWS S3 |
| AI Backend | Python 3.12, Modal (GPU L40S) |
| Music Model | ACE-Step v1 3.5B |
| Text Model | Qwen2-7B-Instruct |
| Image Model | FLUX.1-schnell |
- Node.js 18+
- Python 3.12
- A Modal account
- A Neon account (PostgreSQL)
- An AWS account (S3)
- An Inngest account
- A Resend account
git clone --recurse-submodules https://github.com/andrebuilds/melodyc.git
cd melodycFor the complete step-by-step guide, see backend/getting-started.md.
# Create and activate virtual environment
python -m venv venv
venv\Scripts\activate # Windows
source venv/bin/activate # macOS / Linux
# Install dependencies
cd backend
pip install -r requirements.txt
# Configure Modal
modal setup
# Run locally
modal run main.py
# Deploy
modal deploy main.pyTwo separate IAM users are required β one for the backend (upload + read) and one for the frontend (read-only + presigned URLs).
Backend IAM policy:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowUploadAndRead",
"Effect": "Allow",
"Action": ["s3:PutObject", "s3:GetObject"],
"Resource": "arn:aws:s3:::melodyc-bucket/*"
},
{
"Sid": "AllowList",
"Effect": "Allow",
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::melodyc-bucket"
}
]
}Frontend IAM policy:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowRead",
"Effect": "Allow",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::melodyc-bucket/*"
},
{
"Sid": "AllowList",
"Effect": "Allow",
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::melodyc-bucket"
}
]
}For the full IAM setup walkthrough, see backend/getting-started.md.
For the complete step-by-step guide, see frontend/getting-started.md.
# Install dependencies
cd frontend
npm install
# Configure environment variables
cp .env.example .env
# Fill in your values (database, AWS, Modal, BetterAuth, Resend)
# Apply database migrations
npx prisma migrate dev
# Start the frontend
npm run dev
# Start the Inngest queue (separate terminal)
npx inngest-cli@latest dev| Section | File |
|---|---|
| Backend guide (Modal, AWS, Python) | backend/getting-started.md |
| Frontend guide (Auth, DB, Inngest, Deploy) | frontend/getting-started.md |
Contributions are welcome. Read CONTRIBUTING.md for the development workflow, contribution requirements, and pull request guidelines.
Melodyc is free to use and every generation runs on real GPUs. If you enjoy the project and want to help keep it free, consider supporting it through GitHub Sponsors: donations go towards GPU, storage, and hosting costs.
Not able to donate? Starring the repository, sharing your songs, and contributing code all help just as much.
This project is licensed under the MIT License β see the LICENSE file for details.
Created and maintained by:
- Andrea D'Ambrosio β github.com/andrebuilds
- Thomas Fortuna β github.com/fortunathomas