Skip to content
Root Element

LLM integration and AI assistants

AI that sees no more than your user

We add assistants, document extraction and agents with fixed limits to your product. The model works with the signed-in user's permissions and gets only the context it needs. Tests check how it behaves.

<Assistant />LLMuser scopetool()tool()tool()resulttool()
Fig. 1 The model calls only the tools the user has permission to use.

AI

What we build on large language models (LLMs)

  1. 01

    An assistant inside your app

    The assistant answers questions about your data and can create or update records in the app. Every change shows up as a preview first and runs only after the user confirms it.

    Stack

    • Vercel AI SDK
    • Gemini
    • Claude
    • Next.js
    • NestJS
  2. 02

    Data from documents and images

    We pull structured data out of PDF invoices and check it against a schema before it is saved. Images get tags from a fixed list, and tags the model is unsure about go to a person for approval.

    Stack

    • Gemini
    • Vercel AI SDK
    • Zod
  3. 03

    Agents within fixed limits

    The model writes no SQL of its own and has no direct database access. It calls only fixed tools on top of your API, and its output, such as a dashboard draft, has to pass a schema before the user sees it.

    Stack

    • Vercel AI SDK
    • Zod
    • GraphQL
    • Claude
  4. 04

    Streaming chat interfaces

    The model's answer appears in the interface as it is written. While it streams, we lock the actions that would send a second request, and bulk changes show up as a clear preview.

    Stack

    • React
    • Next.js
    • Vercel AI SDK
    • SSE

Process

How we keep AI within limits

  1. Tools run as the user

    Every tool call goes through your regular API with the signed-in user's token, so the same permissions apply as in the app. Tools the user may not use are never given to the model.

  2. Context on demand

    The prompt lists only tool names and short descriptions, and the model loads a full tool when it needs it. For one assistant this cut the fixed context per request by an estimated 60%.

  3. Behaviour checked by tests

    We cover the assistant's tools with tests and try the permissions in the browser as a user who has no access to the data. We set the threshold for automatic decisions from the precision measured on your own data.

When AI makes sense and when it does not

Makes sense

  • Reading the same kind of document over and over, such as PDF invoices.
  • Answering from data the user is allowed to see.
  • Proposals that code, a schema or a person then checks.

Does not make sense

  • A task a plain rule or filter already handles.
  • An answer where a mistake cannot be checked.
  • A decision that would bypass the user's permissions.

Experience

AI features we have built

We don't name clients. Each entry gives the type of product and our work on it.

  1. 01

    Legal e‑billing, US

    Full stack on Next.js, NestJS and PostgreSQL. We took over the AI assistant: its tools run as the signed-in user and load only when the model asks for them, which cut the fixed context per request by an estimated 60%. Also unit tests and CI for the web app.

    Stack

    • Next.js
    • NestJS
    • PostgreSQL
    • Vercel AI SDK
    • Gemini
  2. 02

    Roofing company

    Frontend architecture and guardrails for an MVP first built with AI. LLM image tagging and invoice extraction, built with one other developer.

    Stack

    • React
    • Claude Code
    • LLM
  3. 03

    Legal AI and fintech

    Frontend and streaming chat interface for an LLM tool for attorneys. The foundation of the commissions app in a platform of nine Next.js apps.

    Stack

    • Next.js
    • React
    • LLM
  4. 04

    Grammar-checking SaaS

    Most of the application, backend included: an API on Fastify, Prisma and PostgreSQL, a Crawlee crawler, and checks routed by language to LanguageTool or GPT-4o-mini.

    Stack

    • Fastify
    • Prisma
    • PostgreSQL
    • Crawlee

Frequently asked questions

Can the AI see data the user cannot?

No. Every tool call goes through your regular API with the signed-in user's token, so the same permissions apply as in the app. Tools the user may not use are never given to the model.

How do you check that the AI behaves correctly?

We cover the assistant's tools with tests and try the permissions in the browser as a user who has no access to the data. We set the threshold for automatic decisions from the precision measured on your own data.

Technologies

Models
Gemini, Claude
Model integration
Vercel AI SDK, Zod, GraphQL
Application
React, Next.js, NestJS, SSE

We add AI to the applications we cover with web application development and to stores we cover with Shopify development.

Contact

Let's find where AI fits your product

Write to us and we will go through which steps a model can take for your users, and with what permissions.

What to put in the message

  • What you want to build or change.
  • The systems and data you already have.
  • Constraints, such as a deadline and who will maintain it.
Write to us