API dan aplikasi web untuk koleksi quotes inspiratif bahasa Indonesia dengan interface yang modern dan interaktif.
π Live Demo: https://quotes.liupurnomo.com π API Documentation: https://quotes.liupurnomo.com/docs
- Slideshow Mode - Auto-play quotes dengan interval customizable
- Fullscreen Experience - Mode fullscreen untuk pengalaman immersive
- Theme Switcher - 5 theme gradient yang berbeda
- Responsive Design - Optimized untuk desktop dan mobile
- Smooth Animations - Powered by Framer Motion
- RESTful API dengan 3 endpoints utama
- Pagination & Filtering - Support untuk large datasets
- Rate Limiting - Protection dari abuse
- Search Functionality - Global search across quotes
- Sorting Options - Flexible sorting by multiple fields
- Bottom Dock Controls - Touch-friendly pada mobile
- Glassmorphism UI - Modern transparent effects
- Responsive Typography - Scalable text untuk semua device
- Framework: Next.js 15 with App Router
- Language: TypeScript
- Styling: Tailwind CSS
- Animations: Framer Motion
- Icons: Lucide React
- Deployment: Vercel
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/quotes |
Get all quotes with pagination & filtering |
GET |
/api/quotes/random |
Get random quote (optional category filter) |
GET |
/api/quotes/:id |
Get specific quote by ID |
GET /api/quotes:
page- Page number (default: 1)limit- Items per page (default: 5, max: 100)category- Filter by categoryauthor- Filter by authorsearch- Global searchsortBy- Sort field (id, text, author, category)sortOrder- Sort order (asc, desc)
GET /api/quotes/random:
category- Optional category filter
motivasi- Motivational quoteskesuksesan- Success quoteskehidupan- Life wisdompendidikan- Educational quoteskebahagiaan- Happiness quotescinta- Love quotesteknologi- Technology quotesbisnis- Business quotespersahabatan- Friendship quoteskerja-keras- Hard work quoteskepemimpinan- Leadership quoteskreativitas- Creativity quotespembelajaran- Learning quotesperubahan- Change quotesnasionalisme- Nationalism quotes
- Node.js 18+
- npm atau yarn
-
Clone repository
git clone https://github.com/liu-purnomo/quotes.git cd quotes -
Install dependencies
npm install
-
Start development server
npm run dev
-
Open browser
http://localhost:3000
npm run build
npm startnpm run lint
npm run type-check| Endpoint | Limit | Window |
|---|---|---|
/api/quotes |
30 requests | per minute |
/api/quotes/:id |
30 requests | per minute |
/api/quotes/random |
60 requests | per minute |
All API responses follow this consistent structure:
{
"status": "SUCCESS" | "ERROR",
"message": "Descriptive message",
"data": {...} | [...],
"metadata": {...} // Optional
}const response = await fetch('https://quotes.liupurnomo.com/api/quotes/random');
const data = await response.json();
console.log(data.data.text); // Quote textconst response = await fetch('https://quotes.liupurnomo.com/api/quotes?search=hidup&limit=10');
const data = await response.json();
console.log(data.data); // Array of matching quotesconst response = await fetch('https://quotes.liupurnomo.com/api/quotes/random?category=motivasi');
const data = await response.json();
console.log(data.data); // Random motivational quoteWe welcome contributions! Please see CONTRIBUTING.md for guidelines.
- Fork the repository
- Create feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Run tests and linting
- Commit using conventional commits
- Push to your fork
- Create Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Quotes collected from various sources with proper attribution
- Inspired by modern quote applications and APIs
- Built with β€οΈ using modern web technologies
- Repository: https://github.com/liu-purnomo/quotes
- Issues: GitHub Issues
- Documentation: https://quotes.liupurnomo.com/docs
Made with β€οΈ by Liu Purnomo

