Skip repetitive infrastructure
Generate models, DTOs, data access, validation, CRUD endpoints, forms, and migrations from a shared application model—then spend your time on business logic and product quality.
GOAT is a code generator and development toolkit for data-driven applications. Define your domain once, then generate a consistent Go backend, Angular frontend, API, forms, database migrations, and CMS-ready workflows. Every generated file remains ordinary source code you can review, edit, and commit.
Generate models, DTOs, data access, validation, CRUD endpoints, forms, and migrations from a shared application model—then spend your time on business logic and product quality.
A single domain definition connects the database, Go API, and Angular interface, reducing the drift and glue code that appear when each layer evolves separately.
Generation is not a one-time scaffold. Apply focused changes as the application grows, inspect them with Git, and freely extend or refactor the resulting source code.
Install GOAT and Docker, then run `goat init ./my-project --name my-project --git-repo https://github.com/your-user/my-project.git`. You will get a working Go and Angular project with an example model, fixtures, scripts, and version-matched documentation.
Open the generated `.env` file and set your local values. Keep database passwords and other secrets out of version control. PostgreSQL and Node.js can run inside the provided containers.
From the project directory, run `goat run:script --path=herd/dev.goat`, then open `http://localhost:8080`. The first run generates the application, prepares the database, loads fixtures, and starts the backend and frontend.