schema-as-code
defineType() in TypeScript
Schemas live in Git. Push with estokad push; the Studio renders the same definitions for content designers. Visual schema builder writes back through GitHub PRs.
visual edit
Click-to-edit overlay
The Storyblok-grade overlay protocol. Editors click a headline in your preview, edit inline, the structured field updates. Works with Next.js, Nuxt, SvelteKit out of the box.
typed SDK
End-to-end TypeScript
@estokad/next generates types from your schema. Renaming a field in the schema produces a TypeScript error in your call sites. The safety net you'd build yourself.
field-level RBAC
Custom roles per field
Read and write grants per (content_type, field). The enum role is the floor; custom roles restrict, never expand. Approval workflows for regulated publishes.
residency proofs
Daily signed attestations
Cryptographically signed proof per workspace per UTC day. Bundled into the DORA evidence pack; verifiable end-to-end against the workspace's JWKS.
webhooks
Durable event delivery
HMAC-signed payloads, exponential-backoff retries, per-delivery audit history. Auto-disable on permanent failure so a broken endpoint doesn't bury the queue.