Skip to content

Tutorial

This tutorial builds one application from scratch, a small Tasks API, adding a single concept per step. By the end you will have a typed, validated, dependency-injected service with a test suite — and you will have seen every core piece of Veloce in the order you would reach for it.

Each step starts from the app you had at the end of the previous one, shows the complete file (not a fragment), and ends with a Next steps link. You can copy any code block and run it as-is.

What we'll build

A Tasks API that grows feature by feature:

  1. Your first app — a running "hello world" handler.
  2. Path & query parameters — read typed values from the URL.
  3. Request bodies — accept and validate JSON with Pydantic models.
  4. Dependencies — share a data store across handlers with Depends.
  5. Errors & validation — return clean error responses.
  6. Testing — drive the whole app with the in-memory TestClient.

Before you start

Veloce needs Python 3.10 or newer. Install it from PyPI:

pip install veloceframework

That is the only dependency you need for this tutorial — Pydantic comes with Veloce, and the built-in development server needs nothing extra.

Already know FastAPI or Flask?

Veloce's surface will feel familiar — app.get(...), Depends(...), Pydantic bodies — but it is a custom framework, not a wrapper. Read the code in each step rather than assuming behaviour from another framework.

Next steps

Start building: Your first app.