Skip to content

Repository files navigation

Jukeboxd

Your personal music journal, inspired by Letterboxd.

image image image image image image image

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.

What You Can Do

  • 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

Tech Stack

  • Next.js 15 + React 19
  • MongoDB with Mongoose
  • Clerk for authentication
  • Tailwind CSS for styling
  • Prisma available in the project dependencies

Getting Started

1) Clone and install

git clone https://github.com/pedroborgescruz/jukeboxd.git
cd jukeboxd
npm install

2) Create your environment file

Create a .env file in the project root:

touch .env

Add the following variables (see .env.example for the full list):

NEXT_PUBLIC_URL=http://localhost:3000
SPOTIFY_CLIENT_ID=
SPOTIFY_CLIENT_SECRET=
SPOTIFY_MARKET=US

When 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.

3) Run the app

npm run dev

Then open http://localhost:3000.

Available Scripts

  • npm run dev - Start the local development server
  • npm run build - Build for production
  • npm run start - Run the production build
  • npm run lint - Run ESLint checks

Project Structure (high level)

src/
  app/           # Next.js app routes and API handlers
  components/    # Reusable UI components
  lib/           # Database and shared server/client utilities

Current Status

The project is under active development. Core flows (auth, profiles, albums, reviews) are in place and being iterated on.

Roadmap

  • 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

Contributing

Contributions are welcome.

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/my-change)
  3. Make your changes
  4. Run npm run lint
  5. Open a pull request

License

Distributed under the GNU License. See LICENSE.md for details.

Contact

Pedro Borges
Twitter/X: @pedroborgespc
Email: pedroborgespc@gmail.com

About

๐Ÿ’ฟ A dynamic journal for your musical adventures.

Topics

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages