Чем больше сообщество вложится в мост, тем мощнее инструмент«DomainCraft» — рабочее название
DomainCraft
Open source · генератор кода на основе домена

Опишите домен один раз в YAML. Получите готовый бэкенд на любом языке.

DomainCraft превращает один domain.yaml в полностью рабочий код — CRUD, авторизация, права, миграции, админка. Детерминированный вывод, чистая компиляция, безопасная регенерация.

Скачать бинарникWindows · macOS · Linux · ARM64
domaincraft generate
project:
  name: MyShop
database: postgresql

auth:
  type: jwt
  entity: User
  roles: [Admin, User]

entities:
  User:
    fields:
      id: uuid [primary]
      email: string [email, unique]
      password: string [hidden]
  Product:
    features: [audit, soft_delete]
    fields:
      id: uuid [primary]
      title: string [required, min:3]
      price: decimal [required, gte:0]
    permissions:
      read: ["*"]
      create: [Admin]

Стек, который поставляется с коробки

  • Ядро Go
  • ASP.NET Core
  • EF Core
  • PostgreSQL
  • Dapr
  • Docker

Проблема

Каждый проект начинается с одного и того же скучного бойлерплейта.

CRUD-эндпоинты, репозитории, DTO, миграции, настройка авторизации, валидация, права доступа — дни однообразной работы, где легко ошибиться и скучно.

Традиционный подход
С DomainCraft
×

Руками писать 50+ файлов на сущность

Определить 1 сущность в ~10 строках YAML

×

Повторять CRUD-логику в каждом проекте

Генерировать одинаково каждый раз

×

Чинить одни и те же баги бойлерплейта

Чинить баги в шаблонах — сразу везде

×

Сменить язык? Перепиши всё

Сменить мост, оставив тот же домен

×

Права доступа разбросаны по всему коду

Объявлены рядом с сущностью, связаны сквозно

Как работает

Одна модель, весь конвейер.

Ваш domain.yaml проходит через детерминированный компилятор — а не через чёрный ящик.

  1. 01

    Опишите домен

    Сущности, поля, связи, права, фичи и сид-данные живут в одном читаемом и диффуемом domain.yaml.

  2. 02

    DomainCraft валидирует и строит IR

    Строгие парсер, лексер и валидатор ловят логические ошибки до генерации; промежуточное представление связывает каждую связь.

  3. 03

    Мосты рендерят продакшн-код

    Подключаемые шаблоны моста превращают IR в идиоматичный код для вашего стека — с манифестом файлов и снимком миграций.

domain.yamlParserValidatorIRRenderercode

Возможности

Всё, что нужно продакшн-бэкенду, декларативно, не вручную.

Каждая фича — пара декларативных слов в domain.yaml. Шаблон делает остальное — одинаково, каждый раз.

Day-2 safety · Generation Gap

Кастомный код переживает регенерацию. Сгенерированные части обновляются, ваши хуки остаются — без затирания.

Права RBAC + ABAC

read: ["*"], update: ["@Owner", Admin] — публичный, ролевой и ownership-доступ, собранный в политики.

Движок миграций схемы

Снимки, old_name-ренеймы, очистка сирот и --prune — безопасный рефакторинг домена.

Подключаемые мосты

Мост — это обычные шаблоны и манифест, без Go-кода. Новый язык — за один вечер.

Админка одним флагом

domaincraft generate --admin собирает CRUD-админпанель для вашего API без настройки.

Инфраструктурные аддоны

Опишите очередь, кэш, секреты и хранилища — подключите Dapr, event_sourced и enterprise-инфраструктуру декларативно.

AI-native · Создан для ИИ-разработки

Весь ИИ-цикл, одной сессией.

Агент описывает домен, DomainCraft генерирует 40+ файлов продакшн-кода, агент вписывает бизнес-логику в хуки — и docker compose up всё запускает. Ничего не забыто, ничего не вручную.

01

Опишите домен

Один файл — весь спецификатор: сущности, связи, права, фичи. Всё остальное генератор выводит из него.

02

Генерация бэкенда

domaincraft generate выдаёт полное ASP.NET Core решение — контроллеры, DTO, репозитории, миграции, тесты, Docker — детерминированно при каждом запуске.

03

Бизнес-логика в хуки

Агент реализует хуки в Services/<Entity>Service.cs (overwrite: false) — ровно в тех файлах, которых генератор никогда не касается.

04

Запуск и итерации

docker compose up поднимает API + Postgres. Изменили модель и перегенерировали — таблицы переименуются за вас, данные сохранятся.

Одна сессия, от начала до конца

Вы → агент

You are building an online store with DomainCraft.

1. Draft the domain: Product + Category entities with
   relations, audit + soft_delete features and permissions
   (public read, Admin create/delete, @Owner update).
2. I'll run: domaincraft generate
3. Then I'll write the custom business logic in the hooks.
4. And deploy it: docker compose up

Output only a valid domain.yaml.

Агент → domain.yaml

entities:
  Product:
    features: [audit, soft_delete]
    fields:
      id: uuid [primary]
      title: string [required, min:3]
      price: decimal [required, gte:0]
      categoryId: relation(Category) [optional]
    permissions:
      read: ["*"]
      create: [Admin]
      update: ["@Owner"]
  Category:
    fields:
      id: uuid [primary]
      name: string [required, unique]

$ domaincraft generate

✓ Schema valid (2 entities)
✓ 42 files generated · compiles clean
  src/WebApi/Controllers/ProductsController.g.cs
  src/Application/Generated/ProductService.g.cs
  tests/ApiTests.g.cs

Агент → бизнес-хуки

// ProductService.cs — your file, overwrite: false
protected override async Task<HookResult> OnBeforeCreateAsync(
    Product entity, CancellationToken ct)
{
    if (entity.Price <= 0)
        return HookResult.Fail("Price must be positive");
    return HookResult.Success();
}

$ docker compose up

[+] Running 2/2
 ✔ Container postgres   Started
 ✔ Container api        Started
 ✓ API :8080 · Postgres · health ready

DomainCraft Studio

Спроектируйте домен визуально.

Перетаскивайте диаграммы сущностей, редактируйте матрицу прав и YAML в реальном времени с WASM-валидацией — всё, что вы рисуете, это валидный domain.yaml.

  • Граф и код с двусторонней синхронизацией
  • Мгновенная WASM-валидация
  • Общий реестр ролей и матрица прав
domaincraft-studio

Мосты

Один домен, любой стек.

Каждый мост — это подключаемый пакет шаблонов. Ядро не знает языков — оно поставляет IR и ничего не навязывает.

csharp-restful

Готов

ASP.NET Core REST API · чистая архитектура · EF Core + PostgreSQL + JWT + аддоны Dapr.

java-spring

В планах

Spring Boot REST API для JVM. В планах.

typescript

В планах

Бэкенд TypeScript / Express / Prisma. В планах.

Создайте свой мост

Мосты — это обычные шаблоны и манифест. Без Go-кода — добавьте язык за один вечер.

Сообщество

Открытый код, MIT, бесплатно навсегда.

Читайте исходники, запускайте, форкайте — без аккаунта, без ограничений, без привязки.

Лицензия MIT

Разрешительная лицензия — ваш сгенерированный код остаётся вашим, без условий.

Внести вклад

Понятные гайды и строгое протестированное ядро.

Публичный роадмап

Больше БД, больше стилей API, больше аддонов — открытый трекинг в репозитории.

Звезда на GitHub

Звёзды — сигнал реальной востребованности. Помогите другим разработчикам найти DomainCraft.

Хватит писать бойлерплейт. Начинайте выводить свой домен.

Go не нужен — скачайте бинарник и сгенерируйте первый бэкенд уже сегодня.

или установить через Go

go install github.com/DomainCraft/DomainCraft/cmd/domaincraft@latest