Concepts
Roadmap · Docs — DomainCraft
Where DomainCraft is going — axes and layers expansion, spec-planned language features, distribution and certification.
A consolidated status map: every item is tagged shipped, in progress, or spec’d (described in the domain.yaml spec but not implemented yet).
Status today
- Axes and layers:
csharp-core → domain → efcore → rest,ts-core → ts-client → react-rest, with--replacecomposing layers without forking (see Axes and layers). - The thin cores (
csharp-core,ts-core) are certified by per-language TCKs; the backend HTTP contract by the k6 suite (see Certification). - The
admin-alpinepanel is the only generated UI (Admin panel); presentation stays with agent skills and a typed client.
Backend axis
A new persistence or transport layer is one repository, not a fork of 71 templates:
- Persistence:
csharp-dapper,csharp-marten,csharp-mongo—domaincraft generate --bridge csharp-rest --replace persistence=csharp-dapper. - Transport:
csharp-grpc(the spec validatesapi_style: grpc; ready bridges generate REST only),csharp-minimal-api,csharp-graphql. - Languages:
go,java,python— each starts with a thin core (per-language TCK) plus whatever roles the community builds.
Web axis
The TS family is fully layered. An Nth framework adapter is 2–3 glue templates plus a tsc --noEmit smoke:
vue-rest(composables),svelte-rest(stores),solid-rest(resources),angular-rest(services).- Adapters inherit the certified
ts-core/ts-clientcontract unchanged.
Mobile axis
dart-core— framework-agnostic Dart client, a thin core mirroringts-core(models, enums with wire values, the samepath:op:valuequery,can()matrix).flutter-rest— thin adapter (Riverpod providers, auth).flutter-offline— offline as its own bridge overflutter-rest: Drift tables, a sync engine and reactive streams.
Language (spec’d, not implemented)
Fully described in the language spec and validated by the core, but no bridge implements them yet:
auth.type: cookie— HTTP-only cookie auth instead of bearer tokens.auth.type: oauth2— OAuth2 providers (Google, GitHub, …).@Tenanttoken — ABAC data isolation per tenant. The core validates any@…token, but ready bridges do not interpret@Tenantyet.- Custom permission conditions —
condition(...), described in the spec; unknown permission keys remain a parse error. multi_tenancy—mode: columnis validated by the core; bridges decide whether to implement tenant isolation.
Distribution & DX
domaincraft init— interactive scenario picker (shop / saas / crm / blog) that writes a starterdomain.yamland runsgenerate, removing the write-YAML-first entry barrier.- Agent skills — package
domaincraft-skillsfor agent marketplaces andnpx skills add;llms.txton the website so agents pull docs in sync with the core version. - Reference application — a complete, deployment-ready SaaS starter built on DomainCraft.
- Showcase & newsletter — promotion through social proof and community.
Certification
- Dart TCK — thin
dart-coregets a type-contract + runtime TCK from day one (the TS pattern). - How to certify a layer or a
--replacecomposition — see the Certification guide.
How to steer it
The fastest path for a new target is a new layer on an existing axis: 2–3 templates, extends: <base>, and the TCK either proves the contract or fails the bridge — see Writing a bridge.