mirror of
https://github.com/M4X809/list-of-lp.git
synced 2025-12-25 11:12:48 +00:00
No description
- Added 12 new tracks from the "Minutes to Midnight" album to fetched-songs.json. - Updated song-links.json with Spotify, YouTube, and Apple Music links for each new track. - Refactored TrackCard and AlbumCard components to use updated field names for live performance URLs. - Adjusted ListTypes.ts to reflect changes in the Track type structure for live performance data. |
||
|---|---|---|
| data | ||
| public | ||
| scripts | ||
| src | ||
| .gitignore | ||
| biome.json | ||
| eslint.config.js | ||
| next.config.ts | ||
| package.json | ||
| postcss.config.js | ||
| prettier.config.js | ||
| README.md | ||
| tsconfig.json | ||
Linkin Park Albums
A modern web application showcasing the complete discography of Linkin Park, built with Next.js 15 and React 19.
Features
- 🎵 Browse all Linkin Park albums
- 📱 Responsive design with Tailwind CSS
- 🎨 Beautiful UI with Mantine components
- ⚡ Fast static generation with Next.js App Router
- 🖥️ Server components for optimal performance
- 🎭 Smooth transitions and hover effects
Tech Stack
- Framework: Next.js 15 (App Router)
- React: React 19 (Canary)
- UI Components: Mantine Core 8.3.5
- Styling: Tailwind CSS 4.1.15
- Package Manager: Bun
- TypeScript: 5.9.3
Project Structure
src/
├── app/
│ ├── layout.tsx # Root layout with Mantine provider
│ ├── page.tsx # Home page (server component)
│ └── album/
│ └── [albumId]/
│ ├── page.tsx # Album detail page (server component)
│ └── not-found.tsx
├── components/
│ ├── AlbumCard.tsx # Album card component (client component)
│ └── BackButton.tsx # Back button (client component)
├── lib/
│ ├── list.ts # Album data
│ └── ListTypes.ts # TypeScript types
└── index.css # Global styles
Getting Started
Install dependencies:
bun install
Run the development server:
bun run dev
Open http://localhost:3000 to view the app.
Build
Build for production:
bun run build
Start the production server:
bun run start
Features Explanation
Server Components
The app leverages Next.js App Router with server components for optimal performance:
- Home page (
page.tsx) - Server component that renders the album grid - Album detail page (
album/[albumId]/page.tsx) - Server component with static generation
Client Components
Interactive components use the "use client" directive:
AlbumCard- Handles click navigation to album detailsBackButton- Handles navigation back to home
Static Generation
Album detail pages are statically generated at build time using generateStaticParams, providing instant page loads.
License
MIT