Original Music Sharing Community
A community where users upload and listen to their own songs, which I ran myself for 11 years while migrating its stack
A community where users share songs they made themselves. I built the server, database, API and web on my own, and kept improving it over 11 years of running it.
What I did
- Migrated the frontend from the original PHP, CodeIgniter, MySQL and jQuery stack through React to Next.js (SSR), Redux, TypeScript and Prisma, and the backend to Node.js, GraphQL, MongoDB and pm2
- Automated deployment with a pm2 ecosystem and GitHub Actions
- Handled the upload queue with a Redis-based message queue
- Scaled to 1,000 concurrent users: minimized DB connections with php-apc caching, split reads and writes with MySQL master-slave replication, distributed traffic with DNS round-robin, and simplified new server setup with Docker
- Periodic ping tests that send a Telegram alert when a server goes down