Build Traditional Apps¶
One application, built from nothing: a minimal program that answers HTTP, then a database, then CRUD, then a server-rendered interface — and finally the identity lesson, which is not a login form.
Each lesson adds one capability to the application the previous lesson left working, and each is checked before it is published: the code you read is the code the suite runs, and the output you see is the output it really produced.
Lessons¶
| # | Lesson | You will learn | Availability |
|---|---|---|---|
| 1 | An application that answers HTTP | Routes, JSON responses, and the ASGI adapter | Built-in (extra) |
| 2 | Read a request, and say no to one | Path and query parameters, bodies, and HttpError |
Built-in (extra) |
| 3 | Store data in SQLite | The database provider, transactions, and rollback | Built-in (extra) |
| 4 | Create and list users | A service, its rules, and the shape of a collection | Built-in (extra) |
| 5 | Validation and pagination | Query parameters, the two layers of validation, and paging | Built-in (extra) |
| 6 | View, edit, and delete | Missing rows, partial edits, and a delete that repeats | Built-in (extra) |
| 7 | Migrations | Revision files, batch mode, and the deploy step | Built-in (extra) |
| 8 | Identity from upstream | A verified principal, passed as an argument | You build it |
| 9 | Protected endpoints | 401 versus 403, roles, and the edge obligation |
You build it |
| 10 | Server-rendered interfaces | Templates, forms, and validation messages | You add it |
| 11 | Partial updates and styling | HTMX and Tailwind over the same handlers | You add it |
| 12 | Deploying it | The deploy step, readiness, and the operational facts | Built-in (extra) |
All twelve lessons are written. The roadmap is generated from each page's own status rather than typed here, so it is what the path's completeness is read from; the AI and hybrid paths are still to come.
What you need¶
The setup from lesson 1 of the Fundamentals path, plus two extras:
uvicorn is the web server these lessons use. It is not part of Xyberos: a framework that refuses to
depend on an HTTP library should not force a server on you either.
Three things to know before it starts¶
The application grows, and the pages show it growing. From lesson 4 the path builds one application
in examples/user_management/, and each lesson's own module in examples/learn_traditional/ drives it.
A page shows the project's files as the path leaves them, so an earlier lesson may show a file a later
lesson also changed — the lesson that changed it says so on its own page.
Identity is not built here. Xyberos ships no identity, session, or role model and will not, and this path does not quietly build one. The lesson shows the sanctioned shape instead: something verifies an incoming assertion, the principal is passed to the service as a required argument, and the tenant is taken from the principal rather than from the payload (ADR 0014).
Templates are not a framework feature. The framework routes and serializes; a handler may return any Starlette response. The interface lessons use Starlette's own template support and static files, and say so on every page, because it is application code rather than a Xyberos API.