Skip to main content

Todo CLI in Rust 0. Series roadmap and repository map

·2 mins
Rafael Fernandez
Author
Rafael Fernandez
Mathematics, programming, and life stuff
Todo CLI in Rust without fluff - This article is part of a series.
Part 0: This Article

Hey folks.

Read this chapter in Spanish: ES

This post is the gateway to the series. The idea is simple: open the repository while reading, and follow every design decision in real code instead of staying in theory land.

Project repository:

Original challenge inspiration:

How to read this series (without getting lost)
#

Recommended order:

  1. architecture and boundaries,
  2. domain and errors,
  3. CLI and output contract,
  4. persistence and testing,
  5. evolution to a TUI with ratatui.

That order is intentional. It mirrors how the project was built: first structural decisions, then implementation by layer.

Series chapters
#

1) Architecture
#

This chapter explains why we chose hexagonal + screaming architecture for a small project, and what pain it avoids when you start iterating.

2) Domain and errors
#

This is the core: invariants, state transitions, and error propagation with context.

3) CLI layer
#

This connects terminal UX with a technical contract: strict parsing, typed Uuid, and table/json output.

4) Persistence and testing
#

This chapter closes the loop: repository contract, interchangeable adapters, operation semantics, and behavior-focused tests.

5) Future: from CLI to TUI
#

This chapter proposes the natural evolution: add a new UI adapter (TUI) while reusing the current domain and use cases.

What you get from the full series
#

  • how to design a Rust CLI without turning main.rs into a monolith,
  • how to isolate domain, application, and infrastructure,
  • how to model errors so they help both user and developer,
  • how to prepare the project for iteration without painful rewrites.

If your goal is to build terminal tools that survive real change, this series is much more useful than a 15-minute todo tutorial.

Todo CLI in Rust without fluff - This article is part of a series.
Part 0: This Article