Skip to main content
[ ARKIV ]HUB
Tools
Tools · proposed · Typed clientNot yet

Typed schemas — and the full-replace footgun becomes impossible.

You write `defineEntity({ ... })` once — attributes, their types, TTL policy. From that you get a typed client: autocompleted fields, predicates checked against your schema, generated TS types, and an update that requires the full object. A skill or the MCP can't give your repo compile-time types — this has to be code.

arkiv-schemaschematyped-clientcodegentypescript
Status
Not yet built
Type
Tool
Feasibility
Medium
THE IDEA

Declare an entity's shape once and get compile-time TypeScript types, type-safe predicates, and updates that force the full shape — so a partial update can never silently drop your attributes.

The problem today

  • Attributes are a loose array of { key, value } — no schema, no type inference, easy to typo a key or pass the wrong type.
  • `updateEntity` is FULL-REPLACE, not a patch: if you send only the attribute you changed, every other attribute is silently dropped. It's the #1 CRITICAL item in Arkiv's DX audit.
  • There's no app namespacing, so everyone hand-tags entities with a `project` attribute to avoid collisions in the shared DB.

What it would do

  • `defineEntity()` declares attributes + types + TTL in one place.
  • Typed reads/writes + a type-safe query builder (predicates checked at compile time).
  • Update requires the full shape → the full-replace footgun becomes a TYPE ERROR, not a data-loss bug.
  • Bakes in namespacing (an appId) and can generate TS types + React hooks.
WHY IT’S A BETTER EXPERIENCE
  • Arkiv starts to feel like Prisma/Drizzle — the DX devs already trust — instead of loose key/value blobs.
  • Three of the worst footguns (weak types, silent attribute drop, manual namespacing) disappear behind one layer.
  • Even AI-written code benefits: the compiler catches what the agent slips on.
HOW IT COMPARES
Drizzle / Prismaschema-first types + query builder. We bring the typed-client half (Arkiv has no joins, so not a full ORM).
Convex schemas/validatorstyped end-to-end backend — proof devs want this for a modern DB.
Just a skill + MCPcan't give compile-time types in your repo. That's why this is a tool, not a skill.
FEASIBILITY — AND WHY THIS ISN’T HAND-WAVING
Medium to build

A wrapper over the existing SDK — no protocol changes. Arkiv's own docs already recommend zod validation, so this productizes a pattern they endorse.

Grounded in

  • Arkiv DX audit: "weak TS types", full-replace footgun (CRITICAL), no namespacing (CRITICAL) — this targets all three.
  • advanced-patterns.md already documents validating entities with a schema library.
  • Attribute shape ({key, value: string|number}) and full-replace verified live on Braga.
PAIRS WITH
arkiv-schemaThis is a proposal— not built yet. It’s here so the case can be read and the idea ranked. Want it? Open an issue on the Arkiv GitHub.
© 2026 Golem Factory · Braga testnet · Proposed tool — status: not yet.