Introduction
Andurel is a full-stack web framework for Go, built for humans and agents. It gives a project one conventional shape, writes application code you own, and keeps the tooling that maintains it scriptable.
This documentation describes the v2 line at v2.0.0-beta.1.
What v2 is
Andurel v2 is Go-native. There is no HTTP framework dialect and no dependency-injection container:
- HTTP is
net/httpthroughgithub.com/mbvlabs/andurel/pkg/anduin. A handler isfunc(ctx context.Context) error. - Business logic and persistence live in
domains/, one flat package and one file per domain. SQL is colocated with the domain that owns it. - Application workflows live in
services/; HTTP adapters live inhandlers/; route data lives inroutes/; app middleware lives inmiddleware/. internal/runtimeconstructs the dependency graph with explicit constructor arguments. The whole graph is readable in one file.- PostgreSQL is the database, with typed queries generated by narsilc. River runs background jobs, OpenTelemetry handles logs, metrics and traces, and Tailwind CSS provides the styling primitives.
- The UI is Inertia v3 with React, Vue or Svelte over Vite. Templ survives only for email templates and the Inertia root document.
A new application is complete application code: every file andurel new writes belongs to you and is edited like any other Go or TypeScript. Generation is a one-time scaffold, not a layer you re-run. After that, the CLI's job is to describe and check code:
1andurel patterns show handler # reference code and the rules for a layer
2andurel verify # formatting, vet, layer boundaries and generated-code drift
3andurel inspect routes --json # the project's actual shape
Only andurel generate migration creates a file. Everything else is written from the patterns and refreshed with andurel sync.
Development status
v2.0.0-beta.1 is a pre-release. The beta fixes the architecture: net/http through pkg/anduin, explicit construction in internal/runtime, the domains/handlers layout, Inertia for the UI, and the agent-facing CLI contract. A beta release can still change application code or a pkg/* API to fix a bug or a security problem, but each such change ships with a manual action from andurel upgrade and a release note.
Every supported pre-release upgrade path is tested: the old CLI scaffolds an app, the new CLI upgrades it, the reported manual actions are applied, and the result must build and pass go vet. Projects created before v2.0.0-alpha.4 are not supported by andurel upgrade and must be recreated with andurel new.
There is no automated upgrade from v1. See Moving to v2.
Platform and requirements
Andurel v2 requires Go 1.27.3 or newer and PostgreSQL. Linux and macOS on amd64 and arm64 are supported; Windows is not. An Inertia project also needs Node.js and a JavaScript package manager, and managed server-side rendering needs Node.js 22 or newer.
Next steps
Continue to Installation to install the CLI and create a project, then read Directory Structure for where code belongs.