Documentation

Durabl is a founding-state React Router application. The copy you receive already contains the stack, the routes, and the decisions. What the application is for is left blank until you write it.

Agent context guide

Before planning or implementing, read AGENTS.md, then ai/core/identity.md, ai/core/guardrails.md, and ai/core/rules.md. Load only the decision, skill, or guide whose trigger matches the task. Prefer the code-standard page for how a change should be written.

If a document conflicts with the code, or with what you asked for, ask before a broad rewrite. Do not read every decision before every change.

Architecture

How the running system behaves. Not where the files sit.

SectionWhat it covers
Request modelFramework Mode, loaders, actions, Node 24.
PersistenceSQLite, Prisma, and how ids are chosen.
AuthenticationMagic links, GitHub, and the session row.
EmailOne send function. Resend stays behind it.
PaymentsStripe subscriptions, shipped off.
DeploymentDocker, and the Fly volume.

Codebase

Where a file belongs.

SectionWhat it covers
Directoriesapp, ai, prisma, mocks.
RoutesThe file tree is the URL tree.
Server modulesThe adapters under app/lib.
UI catalogAtoms, composites, and sections.

Code standard

How new code stays consistent with the copy.

SectionWhat it covers
TypeScripttsx for UI, ts for everything else.
BoundariesZod parses every value the program did not create.
Format and lintOxfmt writes layout. Oxlint checks use.
TestsVitest, and the validate script.
EnvironmentFlags are true or false. A set key is not permission.
Packagesnpm, one lockfile.

Decisions

What the product is, and the choices a later session must not undo by accident.

SectionWhat it covers
What you fill inThe product description starts empty.
How a decision is keptEdit the file in place. Git is the history.
Decisions in forceThe fifteen files under ai/decisions.
SkillsThe recipes that ship with the copy.