QuadKit is alpha. That word is doing real work: public APIs may change before 1.0, and you should pin 0.0.x in production. It is not a synonym for “the design is a mood board.”
This is the split we actually mean.
The architecture is the product
Section titled “The architecture is the product”Four rules are not going to be a surprise in 0.2:
quadkit-contractsimports no QuadKit implementation packages. It owns shared protocols, types, and exceptions; its only runtime dependency istyping-extensions.- Regular extensions do not depend on peer extensions. Cross-package boundaries are checked, with composite packages and specific documented exceptions handled explicitly.
register()does not resolve. Bindings in, instances out inboot(). The type system is the gate.- Domain failures are
Result. The database dying is still an exception.
The repository’s import-boundary checks enforce the package-level rules in CI. Generated applications should follow the same design; the checks have documented exclusions and are not a blanket validator for every downstream app.
Those four rules are the whole product. Why I built QuadKit is where each one comes from, and why an agent that type-checks still needs them.
The project tree is the same kind of promise. There is one layout. The api starter lays it down; quadkit add and quadkit gen grow it in place without introducing a second shape.
What will still move
Section titled “What will still move”- Names and extra kwargs on tooling and web surfaces: the CLI, generators, and
quadkit-webextras. - The generated API HTML. Do not treat a 1 MB
api.mdas a stable contract — the Guide and the protocols are. - Generated HTTP surfaces. Treat method signatures and response shapes as movable.
The first public cut was 0.0.4; the current published release is 0.0.50 (2026-11-09), with eighteen distributions on PyPI. See the changelog for current availability and the release history on PyPI for the file-level log. For the current alpha line, pin 0.0.x (uv add "quadkit>=0.0.50,<0.1").
How to start anyway
Section titled “How to start anyway”uv add "quadkit-cli>=0.0.50,<0.1"quadkit new project my-app --template apicd my-appquadkit runThen Your First App. Follow the quickstart if you are an agent. Do not scrape this blog for the rules — /agents.md is the machine-readable agent guide; the repository’s CI workflows define which checks are enforced.