Potify is a modern web application built with Next.js, React 19, and Tailwind CSS, powered by the Spotify Web API. It allows users to authenticate via Spotify, browse music content, and interact with their playlists.
- Framework: Next.js 15
- Language: TypeScript
- UI Library: React 19, Tailwind CSS 4
- Authentication: NextAuth.js
- Spotify API SDK:
@spotify/web-api-ts-sdk - HTTP Client:
axios - Utility Libraries:
clsxfor classnames
- Node.js 20.x or later
- A Spotify Developer Account (required to get client ID and secret)
- Clone the repository:
git clone https://github.com/Shiro-cha/potify.git
cd potify- Install dependencies:
npm install- Create a
.env.localfile in the root directory and add your credentials:
SPOTIFY_CLIENT_ID=your_spotify_client_id
SPOTIFY_CLIENT_SECRET=your_spotify_client_secret
NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_SECRET=your_random_secretGenerate a NEXTAUTH_SECRET with:
openssl rand -base64 32Start the development server:
npm run devUses
next dev --turbopackfor faster development.
Run with HTTPS (if needed):
npm run dev:httpsMake sure https-server.js is configured properly for your local certificates.
Build for production:
npm run buildStart the production server:
npm startRun ESLint to check for issues:
npm run lintpotify/
├── components/ # Reusable UI components
├── lib/ # Helpers and API wrappers
├── pages/ # Next.js pages
├── public/ # Static files
├── styles/ # Tailwind global styles
├── https-server.js # Optional HTTPS dev server
├── .env.local # Environment variables
├── package.json
└── README.md
- Spotify OAuth login via NextAuth.js
- Display user profile and playlists
- Music search by artist, album, or track
- Audio previews
- Playlist creation and management
- Dark/light mode toggle
This project follows:
- SOLID principles
- Clean, typed code with TypeScript
- Modern ESLint setup via
eslint-config-next - Component-based architecture with reusable logic
MIT © Shiro Yukami