I aimed at building a static webpage for a Kanban board API, using an aesthetically pleasing interface and simple development approach.
.
├── src/ // Source code
│ ├── app/ // Next.js app router pages
│ ├── api-client/ // Auto-generated API client
│ ├── auth/ // Authentication related code
│ ├── components/ // Reusable UI components
│ ├── hooks/ // Custom React hooks
│ └── lib/ // Utility functions and configs
├── public/ // Static assets
└── config files // Various configuration files
| Component | Technology | Reasons |
|---|---|---|
| Framework | Next.js 15 | De facto React framework, simple development, great DX |
| Language | TypeScript | Type safety, better development experience |
| Styling | Tailwind CSS | Utility-first CSS, rapid development |
| UI Components | Shadcn UI | Beautiful components, easy to customize, built on Radix UI |
| API Client | OpenAPI Generator | Type-safe API client from OpenAPI specs |
We couldn’t generate static pages when using dynamic routing /board/[id]. Instead, we opted for using query parameters on the client side /board/?board_id=[id].
graph TD
L[/login/] --> S[/signup/]
L --> B[/boards/]
S --> L
B --> M[/me/]
B --> BD[/board/]
BD --> B
BD --> M
/login
/signup
/boards Home page
/board/?board_id=[id]
/me
