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/ssr/                  Node SSR process owner (Inertia)
 4cmd/seeds/                seed command entry point
 5config/                   environment loading and typed providers
 6controllers/              HTTP handlers and route registration
 7router/cookies/           kiks jar, session payload, cookie module
 8router/middleware/        auth and related Echo middleware
 9router/routes/            typed route declarations
10views/                    Templ components and Inertia root document
11resources/js/             Inertia pages, layouts, Vite entry (when enabled)
12models/                   entities, model APIs, and Fx module
13models/factories/         generated test and seed builders
14models/queries/           application-written narsilc SQL
15models/internal/queries/  generated narsilc implementation
16services/                 application workflows
17queue/jobs/               River argument types
18queue/workers/            River workers and registration
19email/                    Templ email components
20migrations/               embedded Goose SQL migrations
21seeds/                    named seed sets and registry
22telemetry/                application observability wiring
23assets/                   embedded compiled assets
24andurel.toml              project manifest (UI, database, tool pins)
25andurel.lock              tool download digests

Reusable framework packages

Generated applications import github.com/mbvlabs/andurel/pkg/* modules for routing, server, storage, validation, hypermedia, Inertia, email, kiks, and telemetry 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.toml records scaffold choices (frontend adapter, package manager, SSR runtime, database null strategy) and pinned tool versions. andurel.lock stores per-platform SHA-256 digests for those tools. Commit both with the project. go.mod remains the source of truth for framework package versions; use andurel packages update to bump them deliberately. See Project Lock.