Site ↗
Documentation sections
About the project · 0.8.1

How the generator and application are organized

From model to source, backend layers and custom extension points.

On this page

Admingen is a Headless CMS generator. Define the application in Generator UI and inspect upcoming file changes. The generated application runs independently with its own dependencies, PostgreSQL and admin. It does not need the generator to serve requests.

From model to code

manifest → нормализация → план → шаблоны → diff → запись файлов

Each stage answers a different question:

  1. The manifest defines the desired structure.
  2. Normalization validates types, references and operations and adds permitted defaults.
  3. The plan determines necessary changes.
  4. Templates produce expected file contents.
  5. Diff compares them with current files.
  6. Writing applies changes according to ownership and saved hashes.

Model errors can therefore be found before writing source files. Saving a Generator UI form changes the project description, not its database.

Generator layers

Layer Responsibility
Domain Model, rules and transformations independent of HTTP/filesystems.
App Use cases: loading, change validation, planning and generation.
Adapters HTTP for Generator UI and CLI for terminal work.
Infrastructure YAML, filesystem, templates and file comparison.
Cmd Dependency assembly and executable startup.

UI and CLI use the same application logic. Finish and the corresponding command follow the same model rules.

Generated application structure

The Go backend separates domain, app, HTTP and PostgreSQL adapters. SQL and database constraints are explicit. Migration history grows through new files; existing generated migrations are not rewritten.

The admin uses React, TypeScript and MUI, with shared requests and sessions. Modules group entities within a monolith. Creating a module does not create a microservice: data model, build and release remain coordinated for the application.

Generation alongside custom code

Develop the model through UI while writing custom logic. Generate updates standard code; custom zones connect through explicit operation handlers, dependency composition and UI extensions. The generator does not search and replace fragments in your files.

Targeted list/field extensions retain generator updates to standard UI. Replacing an entire page transfers data loading, authorization, errors and accessibility to you. See extensions.

Technologies

Go and chi handle HTTP routes; pgx accesses PostgreSQL. An ORM does not conceal SQL or schema changes. React and TypeScript describe UI/data, MUI supplies components, the query library manages loading/refetching, and Vite handles development/builds.

Check exact versions in your release's go.mod and package.json. Templates are embedded in the generator binary; admingen also includes the built UI. Generator model/history live in project files. PostgreSQL belongs to the generated application, not a central generator service.

Getting started

Open quickstart and Generator UI overview. Admingen website integration illustrates how the parts work together.