Skip to content

Guided project: a Task list API

No more scattered examples. 🚀 Here you'll build a real API, from scratch, together with us — one chapter at a time.

The project is a Task list (a small, complete CRUD): create tasks, list tasks, and mark them as done. No magic: you start from an empty folder and, step by step, wire up the SDK's layersmodelrepositoryservicecontrollerrouter.

By the end, you won't just have a working API. You'll understand how a real Tempest service fits together. 💡

What you'll build

  • A task (Task) with a title and a done flag (completed or not).
  • Endpoints to create, list, and complete tasks.
  • Interactive Swagger documentation — testable right in the browser.
  • Data stored in a local SQLite file, right on your own disk.

Prerequisites

You only need two things:

Ran into a new term along the way? Check the Glossary. 📖

The chapters

The project is split into three short chapters. Each one picks up where the previous one left off:

  • Chapter 1 — Setup and the first model: create the folder, install everything, define the task table, and boot the server for the first time.
  • Chapter 2 — Full CRUD: add the endpoints to create and complete tasks.
  • Chapter 3 — Polish: errors and filters: handle errors gracefully and filter your tasks.

A single file, on purpose

To keep the focus on learning, the whole app lives in a single app.ts file. That's great for learning, but it's not how a real project is organized. In a real service, you split each layer into its own files — see the Database recipe when you're ready for that step.

Recap

You now know what you'll build (a Task list API), what you need installed, and how the project is split into chapters. Time to get your hands dirty! ✅

👉 Start with Chapter 1 — Setup and the first model.