Sample Walkthroughs
The examples/ folder in the repository holds ten small, self-contained apps. Each one is deliberately narrow: it shows a single idea end to end, with tests, so you can read the whole thing in a sitting and copy the parts you need.
These walkthroughs explain those samples — not just what they do, but why they are shaped the way they are. Read them in roughly this order if you are new to Vania: the first few use no external services, so you can run them with nothing but Dart installed.
No external services
Run these with only the Dart SDK — no database, no Docker.
| Walkthrough | What it teaches |
|---|---|
| Counter | The smallest possible Vania app: routes, a controller, JSON responses. |
| Todos (modular) | Organising an app by feature, and hiding data access behind a repository. |
| DDD Wallet | Domain-Driven Design layering: value objects, aggregates, and a thin HTTP layer. |
| GraphQL API | Serving a GraphQL schema with a browser IDE, from one provider. |
| gRPC Greeter | A gRPC service running alongside the HTTP server. |
| Swagger API | Describing a REST API with OpenAPI and serving interactive docs. |
Needs a service running
These connect to a real backing service (a database, Redis, or Elasticsearch). Each walkthrough gives you a one-line Docker command to start it.
| Walkthrough | Needs |
|---|---|
| Basic Authentication | MySQL — register, login, protected routes, logout with JWT. |
| Redis Cache | Redis — a page-view counter behind a swappable store. |
| WebSocket Chat | Nothing extra — real-time rooms over one WebSocket. |
| Elasticsearch Search | Elasticsearch — full-text search over indexed documents. |