CRUD
Create, read, update, and delete with server-rendered forms, CSRF protection, and flash messages.
Projects
Log in to delete projects — the delete column only renders for authenticated users, showing how auth gates both controller logic and template output.
| Title | Created by |
|---|---|
| Hello World | Guest |
| Server-Side Rendering | Guest |
| Nice! | User |
API Endpoints
The same service layer backs both the HTML forms above and the JSON API below — adding an API is simple when business logic lives in one place.
| GET | /api/projects | List all projects |
| POST | /api/projects | Create new project |
| GET | /api/projects/:id | Get specific project |
| PUT | /api/projects/:id | Update project |
| DELETE | /api/projects/:id | Delete project |