Search documentation

Find a page in the Andurel docs.

Directory Structure

Andurel v2 separates application-owned code, reusable framework modules, and executable process boundaries.

Application layout

 1cmd/app/                  web process and Fx composition root
 2cmd/queue/                queue worker process and lifecycle
 3cmd/seeds/                seed command entry point
 4config/                   environment loading and typed providers
 5controllers/              HTTP handlers and route registration
 6router/routes/            typed route declarations
 7router/appctx/            typed request metadata helpers
 8views/                    Templ components and optional Inertia root
 9models/                   entities, model APIs, and Fx module
10models/factories/         generated test and seed builders
11models/queries/           application-written sqlc SQL
12models/internal/queries/  generated sqlc implementation
13services/                 application workflows
14queue/jobs/               River argument types
15queue/workers/            River workers and registration
16email/                    Templ email components
17migrations/               embedded Goose SQL migrations
18seeds/                    named seed sets and registry
19telemetry/                application observability wiring
20assets/                   embedded compiled assets

Reusable framework packages

Generated applications import github.com/mbvlabs/andurel/pkg/* modules for routing, server, storage, validation, hypermedia, Inertia, and email behavior. Their versions are pinned in the application's go.mod and do not have to match the CLI version.

Unlike v1, these implementations are not copied into an application-owned internal/ tree. Configuration, middleware policy, controllers, model behavior, and presentation remain application-owned.

Project metadata

andurel.lock records the framework version, tools, extensions, database conventions, frontend adapter, JavaScript package manager, and the separate Inertia SSR runtime. Commit it with the project. go.mod remains the source of truth for framework package versions.