sdxc
SearchCtrlK

[ The sdxc command ]

Glossary

The words the sdxc guides and messages use in a sense of their own, from ability to stub, each with a link to where it is covered.

Last updated 2026-10-19

The terms below have a meaning of their own in sdxc and the app template. Words Cloudflare or Remix define, such as binding, Worker, controller and middleware, keep their meaning from Cloudflare's and Remix's documentation.

Ability

A named thing a visitor may do with a resource, such as bookmark.create. The catalog of abilities is app/policies/abilities.ts, and a grant in the policy says who holds each one. Make a policy

App command line

The command line every app from the template ships in bootstrap/cli.ts, for work that belongs to no request, such as db migrate. You run it with sdxc run. Run your app's commands

App layout

The folder each kind of code goes in: app/http/controllers/ for controllers, app/models/ for models, and so on. sdxc make writes to it and sdxc doctor checks it. How it fits together

Chain

Two things share the word. A middleware chain is the list of middleware a router or a controller runs, in order: the router's global chain, and the page and api chains a controller declares. A migration chain is a folder of numbered migrations that one database applies in order, named in make.migrations. Make a migration

Contract

A module that declares what exists without implementing it. A route contract in routes/ declares every URL and method; app/jobs/index.ts, app/commands/index.ts, app/mcp/tools/index.ts and app/emails/index.ts are the contracts for jobs, commands, MCP tools and emails. Handlers and templates are typed by the contract entry they implement.

Copy

An @sdxc/ui component written into your project by sdxc ui add, to edit. A copy is untouched while its files hash as the lock file recorded, and edited once one differs. sdxc ui update replaces untouched copies. Copy UI components

Declared and mapped

What a controller, job, model, MCP tool, command or email needs before the app reaches it: an entry in its contract, the declaration, and a line in its initializer that connects the entry to its handler, the mapping. sdxc make adds both. Generate files

Factory

A function in database/factories/ that creates a model's rows for tests through the model itself, with values that repeat from run to run. Make a factory

Field

A column given to sdxc make model or sdxc scaffold as name, name:type or name?, with :index or :unique after it to index the column. A bare name is typed by its spelling: *_at is a timestamp, *_url a URL, body text. Scaffold a resource

Grant

A rule in app/policies/policy.ts that gives abilities to everyone or to a role, optionally under a condition. Authorization

Initializer

A module in app/initializers/ that builds the one instance of something the app shares: the router, the database, the job dispatcher, the mailer, the command line. Make an initializer

Kind

What sdxc make writes: controller, job, model and the rest, each with its own folder, stub and test. Generate files

Lazy route

A route mapped through lazy(() => import(…)), so a request imports only the controller it reaches. Every route the template and sdxc make map is one, and sdxc doctor checks it.

Lock file

.config/sdxc.lock.jsonl, where the CLI records what it did that a later command needs, such as each copy and the hashes of its files. You commit it. Configuration

Pin

An exact @sdxc version in package.json, such as "2026.10.17", rather than a range. Every package in a project is pinned to one release. Install and pin

Policy

app/policies/policy.ts: every grant the app makes, bound to each request as ctx.access, which a handler checks with ctx.access.can(…). Authorization

Project check

A check sdxc doctor runs: a built-in one such as pins or migrations, or one of yours in .config/sdxc/checks/. Check a project

Project root

The nearest folder, from where you run a command, that holds a package.json. Every sdxc command runs there, so it works from any folder inside the project.

Release

One day's publish of the @sdxc packages, named for its date, such as 2026.10.17. A project's release is the newest date among its pins. Versioning

Seed

database/seed.ts: the rows a new local database starts with, as named steps declared with defineSeed, which sdxc run db seed runs in order. Run your app's commands

Stub

The template a kind is written from, such as controller.stub, with {{placeholder}}s for its names. A stub in .config/sdxc/stubs/ replaces the built-in one of the same name. Generate files

Template

The project sdxc create writes: the built-in app, or any GitHub repository you name. Start a project

Upgrade prompt

The text sdxc upgrade prints for an AI agent: what changed between two releases for the code your project has, with each breaking change's migration steps. Upgrade

Written by Sergio Xalambrí. Follow @sergiodxa for new packages, or sponsor the work.