Skip to content
Tools We Use

What we build with.

32 tools, what each one is for, and the projects it is in — linked, so you can go and look rather than take our word for it.

Foundation

4 tools

The same base under almost everything we ship, so every project starts from something proven.

Look and feel

6 tools

How a site looks, moves and stays consistent from the first page to the fiftieth.

Data and logic

6 tools

Where content lives, how it is checked, and how the interface keeps track of it.

  • Firebase

    Backend

    Database, sign-in, file storage and server functions in one place. Our default backend, locked down with security rules from day one.

  • Zod

    Validation

    Checks every piece of data at the door — a form submission, an API response — so bad input is stopped before it is stored.

  • Zustand

    State

    A small, predictable store for what the interface needs to remember — filters, open panels, progress through a form.

    In 3 of 9 projects
  • TanStack

    Data tables and queries

    Sortable, filterable tables for admin screens that hold a lot of rows, and data fetching that caches sensibly.

    In 2 of 9 projects
  • Upstash Redis

    Rate limiting

    Keeps public endpoints from being hammered — each visitor gets a fair allowance and no more.

    In 1 project
  • Stripe

    Payments

    Taking payments through a provider built for it, rather than handling card details ourselves.

    Also in Scribe, an internal product

Editing and interaction

6 tools

The pieces that make an admin area feel like a proper tool rather than a form.

  • Tiptap

    Rich-text editor

    The editor course authors write in on the NCA LMS — formatted content, without anyone touching code.

    In 1 project
  • dnd-kit

    Drag and drop

    Reordering lessons and content blocks in the NCA LMS course builder by dragging them into place.

    In 1 project
  • cmdk

    Command palette

    Press Ctrl+K, type what you want, go there. For platforms with more screens than a menu can hold.

    In 2 of 9 projects
  • MDX

    Long-form content

    Articles written in plain text that can still embed live components — a chart or a demo inside the prose.

    In 2 of 9 projects
  • Monaco

    Code editor

    The editor from VS Code, running in the browser, for tools where people read or write code.

    Also in Jugaad, an internal tool

  • Leaflet

    Maps

    Interactive maps — on Nobility Care's site, showing the areas the service covers.

    In 1 project

Charts and 3D

3 tools

For when the information is easier to see than to read.

Testing and automation

2 tools

Checks that run by themselves, so a fix in one place does not quietly break another.

  • Vitest

    Unit tests

    Fast automated tests for the logic underneath the interface.

  • Playwright

    Browser automation

    Drives a real browser — to test a site end to end, or to automate work that would otherwise be clicked through by hand.

    In 1 project

    Also in Scribe

AI

5 tools

Hosted models and our own, chosen per job. The work itself is in The Lab.

  • Claude

    Hosted model — primary

    What we reach for first, across the range — Haiku, Sonnet, Opus and Fable, each for a different size of task. Knowing which one a job needs is most of the skill.

  • Gemini

    Hosted model — second

    The second option, for work that does not need Claude or when it is not available.

  • Ollama

    Local models

    Runs models on our own hardware — for work where the material should never leave the building.

  • LM Studio

    Local models

    The other local runtime, which most of the language models in The Lab run on.

  • ComfyUI

    Image generation

    Node-based image pipelines. Every image in The Lab came out of one — with the workflow kept, so a set can be extended later and still match.

Have a project in mind?

We scope tools to the problem — not the other way around. Tell us what you're building and we'll recommend the right stack.