██████╗ ██████╗ ██████╗ ███╗ ██╗████████╗███████╗
██╔══██╗██╔══██╗██╔═══██╗████╗ ██║╚══██╔══╝██╔════╝
██████╔╝██████╔╝██║ ██║██╔██╗ ██║ ██║ █████╗
██╔══██╗██╔══██╗██║ ██║██║╚██╗██║ ██║ ██╔══╝
██████╔╝██║ ██║╚██████╔╝██║ ╚████║ ██║ ███████╗
╚═════╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═══╝ ╚═╝ ╚══════╝
A minimalist poetry library — where ink meets eternity.
Bronte is a thoughtfully designed web experience for discovering poetry. Browse hundreds of poets and their works, read individual poems in a clean editorial layout, and search across the entire library — all powered by the public PoetryDB API.
No accounts. No clutter. Just verses.
| 🖋️ Editorial design | Playfair Display headings, EB Garamond body — feels like a real book |
| 🌗 Dark / light mode | Warm parchment light theme, deep midnight ink dark theme |
| ⚡ Fast navigation | Next.js App Router with React Query caching |
| 🔍 Live search | Filter poets and poems instantly as you type |
| 📱 Fully responsive | Clean layout from mobile to widescreen |
- Framework — Next.js 16 (App Router)
- Language — TypeScript 5
- Styling — Tailwind CSS v4 + shadcn/ui
- Data fetching — TanStack React Query v5
- Fonts — Playfair Display & EB Garamond (via
next/font) - Data source — PoetryDB (public API, no key required)
# 1. Clone the repository
git clone https://github.com/nagraj05/poetry.git
cd poetry
# 2. Install dependencies
npm install
# 3. Run the dev server
npm run devOpen http://localhost:3000 and start reading.
bronte/
├── app/
│ ├── page.tsx ← Landing page
│ ├── dashboard/
│ │ ├── page.tsx ← Poets index
│ │ ├── [author]/page.tsx ← Poems by author
│ │ └── [author]/[title]/ ← Individual poem view
├── components/ ← UI components (sidebar, search, loader…)
├── hooks/ ← React Query data hooks
├── services/ ← PoetryDB API fetch functions
└── providers/ ← QueryClientProvider
npm run dev # Start development server
npm run build # Production build
npm start # Start production server
npm run lint # Run ESLintMade with ♥ for people who still believe words matter.