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.

TitleCreated by
Hello WorldGuest
Server-Side RenderingGuest
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/projectsList all projects
POST/api/projectsCreate new project
GET/api/projects/:idGet specific project
PUT/api/projects/:idUpdate project
DELETE/api/projects/:idDelete project