GOAT logo

Build complete web applications faster—without giving up control of your code.

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.

  • Go and Angular in one coherent project
  • Isolated, Docker-based development workflows
  • Generated code that stays yours

Why build with GOAT

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.

Keep every layer consistent

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.

Automate without lock-in

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.

Quick start

  1. Create your project

    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.

  2. Configure your environment

    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.

  3. Run the application

    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.