Skip to content
seampact
Search
Ctrl
K
Cancel
GitHub
Select theme
Dark
Light
Auto
Menu
Documentation index
Introduction
What is seampact
What you get and what you write
Supported versions
Glossary
Packages
Getting started
Install
Your first API
Call it from React
Check it in CI
Add to an existing app
Project layout
Work with an AI agent
Install in other ecosystems
Writing the contract
Contract
The shape of a contract
Types and references
Errors
Access
Lists
Versioning and change
Advanced
Types and validation
Types and validation
TypeScript types
zod
yup
class-validator
Ajv
VineJS
Java records
Laravel rules
Symfony constraints
Pydantic
DRF serializers
Server guides
NestJS
Express
Fastify
AdonisJS
Hono
Access hooks on Node
Spring Boot
Laravel
Symfony
FastAPI
Django REST Framework
Django Ninja
Client guides
Fetch client
React
Vue
Angular
MSW mocks
Point the client at your backend
Expo and React Native
Workflow
Commands per stack
Diff
Sharing contracts
Lint
Convention packs
Editor support
Configuration
The config file
Targets and links
Switch the validator
OpenAPI and docs
Monorepo
Config reference
Troubleshooting
Troubleshooting
Config errors
Monorepo and OpenAPI errors
Link errors
Bundle errors
Target option errors
Check errors
Contract file errors
Contract key errors
Contract content errors
Access and error code errors
Signed webhook errors
Boot errors
CLI errors
Reference
Grammar
Grammar
1. Files and the workspace
2. Composition: extends, packs, $include, $ref, $file
3. YAML subset and refused pitfalls
4. Scalars, names and value sources
5. The api file
6. Surfaces and the tree
7. Routes
8. Inherited settings
9. Access, identities, rights, rules, scopes
10. Lists, cache and lifecycle settings
11. Errors and natures
12. Enums, examples, docs, extensions, lint
13. Conventions and wire formats
14. Paging styles
15. The presets of the first-party packs
16. Seeing an operation whole: seampact explain
Worked example and scenario self-check
Release notes
Release notes
1.0.1
1.0.0
Design (for contributors)
IR
IR
1. One IR document per api
2. Top-level layout
3. Common members
4. Declarations
5. Schemas
6. Origins and derivedFrom
7. The operation
8. Wire formats and paging styles
9. Canonical ids and ordering
10. Byte-stable serialisation
11. The source-location side table
12. The OpenAPI mapping
13. Schema forms (amendment 2026-10-12, M1)
ADRs
ADRs
ADR 0001: Toolchain
ADR 0002: Authoring grammar
ADR 0003: Schema language
ADR 0004: IR shape
ADR 0005: IR evolution
ADR 0006: Compiler pass pipeline and derivation table
ADR 0007: Cross-language naming
ADR 0008: Convention packs and user extensions
ADR 0009: Modular packaging and target composition
ADR 0010: Native generators and the standalone compiler
ADR 0011: Distribution, app config and unpublished installs
ADR 0012: Neutral access hooks
ADR 0013: Inbound signed webhooks
ADR 0014: Room for real-time and RPC
ADR 0015: Codegen determinism and the conformance suite
ADR 0016: The NestJS server target
ADR 0017: The Fastify server target
ADR 0018: The Express server target
ADR 0019: The AdonisJS server target
ADR 0020: The Hono server target and the Web-standard adapter
ADR 0021: Front query targets and the React target
ADR 0022: The Spring Boot server target
ADR 0023: The Laravel server target
ADR 0024: The Symfony server target
ADR 0025: Runtime packaging
ADR 0026: The Python core and the FastAPI target
ADR 0027: The Django targets
ADR 0028: App input rules
Product decisions
Design decisions
Roadmap
GitHub
Select theme
Dark
Light
Auto
Workflow
Check in CI
Commands per stack
Convention packs
Diff a contract change
Editor support
Lint
Sharing a contract between repositories