Skip to main content

How it works

Anvil has 5 main parts, each one responsible for a specific complementary role.

*.anv files

The schema definition is a *.anv file that describes a domain of your project. Each project can have multiple domains in it, and they can be related or not.

Think about the .anv files like a schemas.prisma or an OpenApi spec, and from this, we generate a variety of things.

anvil.yaml

anvil.yaml is the configuration file for Anvil, where you put the paths for the schemas and configure the generators that you are using.

CLI

The CLI is the way that you interact with all Anvil things. You can use it to validate your files, generate things, install plugins, run your migrations, and much more.

It's designed to work with CI/CD too 🙌

Generators

Generators allow you to generate code based on a *.anv config. They come in various shapes and sizes, and can be used for practically anything:

  • Generate a project with a specific code pattern, that uses a specific set of libraries
  • Generate e2e tests
  • Generate changelogs

Generators are were the magic of Anvil happens.