List of all the concerts I visited. Next.js frontend for a Contentful backend.
- Node.js 22 (see
.nvmrc) - Yarn package manager
- Contentful account with concert data
- Photon reverse geocoding (no API key; please be fair with usage)
- Last.fm API keys (optional)
- Clone the repository
- Install dependencies:
yarn install- Set up environment variables:
cp .env.example .env.local-
Fill in your API credentials in
.env.local -
Start the development server:
yarn devOpen http://localhost:3000 to view the app.
yarn dev- Start development serveryarn build- Build for productionyarn start- Start production serveryarn lint- Run ESLintyarn format- Format code with Prettier
The following environment variables are required:
CONTENTFUL_SPACE_ID- Your Contentful space IDCONTENTFUL_DELIVERY_TOKEN- Your Contentful delivery tokenPHOTON_BASE_URL- Optional base URL for Photon (defaults tohttps://photon.komoot.io)LASTFM_API_KEY- Last.fm API key for fetching band images and genre information (optional, but recommended)LASTFM_SECRET- Last.fm API secret (optional)
- Visit https://www.last.fm/api/account/create
- Create an API account
- Add the API key to your
.envfile or environment variables
Without a Last.fm API key, the site will fall back to using Contentful images.
This project was migrated from Gatsby to Next.js 15. See MIGRATION.md for details about the migration process and changes.
- Next.js 15 - React framework with App Router
- React 18 - UI library
- Contentful - Headless CMS
- Leaflet - Interactive maps
- SCSS - Styling
- Last.fm API - Artist metadata
- Photon - Reverse geocoding