Mental model

Beignet uses a small, fixed vocabulary across the docs, the CLI, and generated apps. This page defines each term once. Read it after Quickstart, before the deeper pages lean on these words.

The HTTP boundary

Application code

Dependencies

Workflow primitives

Beyond the request path, Beignet names background concepts by the question they answer:

See Workflow primitives for the decision table and the common combinations.

API grammar

Beignet APIs follow one naming rule, so new packages feel predictable:

Builders are immutable: each chained method refines the definition and returns the next builder. Contract-aware adapters then accept the contract you already exported:

export const createPost = posts
  .post("/")
  .body(CreatePostInputSchema)
  .responses({ 201: PostSchema });

const endpoint = client.endpoint(createPost);
const mutation = rq(createPost).mutationOptions();
const form = rhf(createPost).useForm();

Define the shape once, then bind it to the runtime surface you need. That is the transfer rule behind every Beignet integration.