# fabrik

> Satyajit Ghana — Head of Engineering @ Inkers Technology
> canonical: https://ai.thesatyajit.com/projects/fabrik
> stack: TypeScript, React, Vercel AI SDK, Zod, Motion
> repo: https://github.com/satyajitghana/fabrik

Most LLM apps are text in, text out. **fabrik** lets the model answer with *interface* —
it picks and fills real React components (cards, forms, charts, pickers) instead of
emitting a wall of prose. The AI decides what to show.

It's provider-agnostic: wire it to any model through the Vercel AI SDK (Gemini, OpenAI,
Anthropic, …), keep the API key server-side in a single route handler, and render the
streamed component tree on the client. Components are validated with Zod schemas, so the
model can only produce UIs you've defined — no arbitrary markup, no injection surface.

The bet behind it: as models get better at tool use, the next interface isn't a chat
bubble — it's a UI the model assembles on the fly for the task at hand.
