Packages Examples Agents Blog Get started
← Blog

Alpha 0.1.x — what is stable

The architecture is the pin. Package names and experimental surfaces will still move. Here is what we will not casually rewrite.

Oridecon is alpha. That word is doing real work: public APIs may change before 1.0, and you should pin 0.1.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

Four rules are not going to be a surprise in 0.2:

  1. oridecon-contracts imports nothing. Protocols, types, exceptions. If two packages need the same type, it lives there.
  2. Extensions never import each other. They talk through contracts, the container, and providers.
  3. register() does not resolve. Bindings in, instances out in boot(). The type system is the gate.
  4. Domain failures are Result. The database dying is still an exception.

If a generated app violates any of those, it is not an Oridecon app yet. The import linter will say so in CI.

The project tree is the same kind of promise. There is one layout. oridecon new project lays it down. oridecon new module grows a bounded context in place. Templates add packages, not a second shape.

What will still move

  • Names and extra kwargs on experimental packages: CLI, admin, UI, most of AI and multimedia.
  • The generated API HTML. Do not treat a 1 MB api.md as a stable contract — the Guide and the protocols are.
  • Admin and other experimental HTTP surfaces. Treat those paths as movable.

Read the changelog for the human cut of 0.1.1 and CHANGELOG.md on dev for the file-level log. Pin 0.1.x (uv add "oridecon>=0.1,<0.2").

How to start anyway

Terminal window
uv add oridecon-cli
oridecon new project my-app --template web-api
cd my-app
oridecon run

Then Your First App. Copy an example if you are an agent. Do not scrape this blog for the rules — /agents.md is the short list CI actually enforces.