An open-source full stack application for music streaming and sharing.
Try it Here!
Table of Contents
Scherzo is the new open-source streaming service that lets you upload your music, listen to any song uploaded, like your favorite songs. You can use it with a free plan or the premium one.
You can sign up / sign in using email and other methods (more coming soon). Some features are for premium users only (during this test period, you can use a fake 4242424242424242 card to subscribe).
-
Your Library: a list of songs uploaded by you. Add more using the + button
-
New Music: latest songs uploaded by all users
-
Player: use it to listen to songs
-
Search: search any song
-
Favorites: you can find here all song you liked using the ♡ button
This is a Next.js project bootstrapped with create-next-app.
I deployed my Next.js app using the Vercel Platform from the creators of Next.js.
Check out the Next.js deployment documentation for more details.
You can also start this app on your local machine, following these steps:
-
clone this repository
git clone https://github.com/egidiosalinaro/scherzo-music-platform
-
install all libraries and dependencies needed for this app
npm install
Once downloaded this repo, you are ready to go.
Now you can:
-
configure your Supabase database as I did
to match the routes called in this repo, your Supabase database should have two buckets called
songsandimages, and seven tables calledcustomers,liked_songs,prices,products,songs,subscriptions,users -
connect your Supabase and Stripe account
create a
.env.localfile (you won't find mine because it is in the.gitignorelist) containing all the environment variables required for Supabase and Stripe to work, and fill them with your own keysNEXT_PUBLIC_SUPABASE_URL= NEXT_PUBLIC_SUPABASE_ANON_KEY= SUPABASE_SERVICE_ROLE_KEY= NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY= STRIPE_SECRET_KEY= STRIPE_WEBHOOK_SECRET=
-
start the app locally
npm run dev
Open http://localhost:3000 with your browser to see Scherzo in action.
-
.env.localfile containing keys - setting up Supabase
- app and pages configuration
- creating components with Tailwind classes
- creating hooks and actions
- creating providers
- setting up Stripe
I welcome contributions from the open-source community. If you'd like to help improve ToolBox, please follow our contribution guidelines:
-
Report any bugs or issues you encounter by creating a GitHub issue.
-
Suggest new features and improvements by submitting a feature request.
-
Contribute code by forking the repository and opening a pull request.
Distributed under the MIT License. See LICENSE for more information.