A beautiful, responsive music search application built with React class components and TypeScript, integrated with Spotify Web API.
- Spotify API Integration - Search for tracks, artists, and albums
- Class Components Only - No functional components or hooks
- Responsive Design - Beautiful UI that works on all devices
- Error Boundaries - Robust error handling with fallback UI
- LocalStorage - Persistent search history
- TypeScript - Full type safety throughout
- Modern Tooling - Vite, ESLint, Prettier, Husky
- React 19.1.0 - UI library with class components
- TypeScript 5.8.3 - Type-safe development
- Vite 7.0.4 - Fast build tool and dev server
- Spotify Web API - Music data source
- CSS3 - Custom styling with CSS variables
- ESLint - Code linting and quality
- Prettier - Code formatting
- Husky - Git hooks for quality assurance
- Node.js 18+ installed
- Spotify Developer Account
-
Clone the repository
git clone https://github.com/your-username/rss-solo-react-app.git cd rss-solo-react-app/rs-react-app
-
Install dependencies
npm install
-
Environment Setup Create a
.env
file in the project root:VITE_SPOTIFY_CLIENT_ID=your_spotify_client_id VITE_SPOTIFY_CLIENT_SECRET=your_spotify_client_secret
-
Start development server
npm run dev
-
Open in browser Navigate to
http://localhost:3000
-
npm run dev
- Start development server -
npm run build
- Build for production -
npm run preview
- Preview production build -
npm run lint
- Run ESLint -
npm run format:fix
- Format code with Prettier
- Go to Spotify Developer Dashboard
- Create a new app
- Copy Client ID and Client Secret
- Add to
.env
file
VITE_SPOTIFY_CLIENT_ID=your_client_id_here
VITE_SPOTIFY_CLIENT_SECRET=your_client_secret_here
For GitHub Pages deployment:
- Deploy to GitHub Pages:
npm run build npm run deploy
The app will be available at https://yourusername.github.io/music-explorer/
- Music Theme - Wooden texture background with golden accents
- Spotify Branding - Follows Spotify design guidelines
- Responsive Layout - Works on desktop, tablet, and mobile
- Smooth Animations - Hover effects and transitions
- Custom Scrollbars - Themed scrollbar design
- Loading States - Animated vinyl record loader
- ErrorBoundary - Catches React component errors
- API Error Handling - Graceful API failure handling
- Input Validation - Form validation and user feedback
- Fallback UI - User-friendly error messages
- Error Boundary Test - Click the "🚨 Test Errors" to test error handling
- API Testing - Search functionality with real Spotify data
- Responsive Testing - Test on different screen sizes
- Token Caching - Efficient Spotify API token management
- Image Optimization - Responsive images with fallbacks
- Bundle Optimization - Vite's built-in optimizations
- Lazy Loading - Efficient component rendering
- Spotify - For the comprehensive Web API
- React Team - For the amazing framework
- TypeScript Team - For type safety
Built with ❤️ for web development, design and music