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:
oridecon-contractsimports nothing. Protocols, types, exceptions. If two packages need the same type, it lives there.- Extensions never import each other. They talk through contracts, the container, and providers.
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.
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.mdas 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
uv add oridecon-clioridecon new project my-app --template web-apicd my-apporidecon runThen 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.