Your personal music journal, inspired by Letterboxd.
Jukeboxd is a social-first app for people who want to track what they listen to, write better music reviews, and discover albums through other listeners instead of recommendation algorithms.
- Log and rate albums
- Write and read reviews
- Explore artist and album profile pages
- Follow other users and engage with their activity
- Track personal listening stats over time
Next.js 15+React 19MongoDBwithMongooseClerkfor authenticationTailwind CSSfor stylingPrismaavailable in the project dependencies
git clone https://github.com/pedroborgescruz/jukeboxd.git
cd jukeboxd
npm installCreate a .env file in the project root:
touch .envAdd the following variables (see .env.example for the full list):
NEXT_PUBLIC_URL=http://localhost:3000
SPOTIFY_CLIENT_ID=
SPOTIFY_CLIENT_SECRET=
SPOTIFY_MARKET=USWhen Spotify credentials are set, artist and album pages use the Spotify Web API first and fall back to MusicBrainz. Without Spotify, MusicBrainz is used as before.
If you are using Clerk locally, also add the Clerk keys used by your app setup.
npm run devThen open http://localhost:3000.
npm run dev- Start the local development servernpm run build- Build for productionnpm run start- Run the production buildnpm run lint- Run ESLint checks
src/
app/ # Next.js app routes and API handlers
components/ # Reusable UI components
lib/ # Database and shared server/client utilities
The project is under active development. Core flows (auth, profiles, albums, reviews) are in place and being iterated on.
- Improve discovery and search quality
- Expand social features around reviews
- Add richer listening/statistics visualizations
- Improve mobile UX and performance
Feature ideas and known issues: GitHub Issues
Contributions are welcome.
- Fork the repository
- Create a feature branch (
git checkout -b feature/my-change) - Make your changes
- Run
npm run lint - Open a pull request
Distributed under the GNU License. See LICENSE.md for details.
Pedro Borges
Twitter/X: @pedroborgespc
Email: pedroborgespc@gmail.com