AI & LLM Tooling

AI & LLM Tooling

Want to propose a change, disagree with a placement, or add an interesting new technology? Please reach out to @Damian Szafranek. This Tech Radar is a living document - we keep it useful by updating it together as our projects, tools, and experiences evolve.

Scope

Model access and the application side of LLMs: gateways and vendor abstraction, chat assistants, generation tools, and frameworks for building LLM pipelines and assembling context. Tools for delegating engineering work to an agent belong in Agentic Coding, and the extensions that shape what those agents can do belong in Agent Skills & MCP Servers.

Overview

ADOPT

Proven technologies we have high confidence in; our default choices.


OpenRouter

t3.chat

v0

LiteLLM

TRIAL

Promising technologies to explore and evaluate for adoption.


Haystack

ASSESS

Interesting technologies requiring investigation.


 

HOLD

Not recommended for new work; plan migration from existing uses.


 

Technologies Breakdown

OpenRouter ADOPT

A practical “LLM gateway” that lets us access and switch between multiple model providers through a single API. Helpful for avoiding lock-in and choosing the best capability-to-cost model per use case.

OpenRouter simplifies multi-model usage: one integration can route to different vendors/models, making it easier to experiment, optimize costs, and respond to model availability or quality changes without rewriting our stack. It’s particularly useful for teams that want flexibility (try several models, compare results, tune budgets/limits) while keeping implementation effort low. Recommended as the default integration layer when a project expects to iterate on model choice or wants to reduce dependency on a single provider.


t3.chat ADOPT

The recommended AI chat assistant for augmenting development tasks like code explanation, debugging assistance, generating code snippets, writing documentation, and research. Leverage its capabilities while adhering to responsible use guidelines (verification, privacy).

One subscription at around eight dollars a month covers several frontier models through one interface, and that ratio is what we adopted rather than any single model behind it. The line-up changes as vendors ship, so treat the subscription as the thing on the radar and check what is currently available rather than trusting a model name written here. Verify what it produces and keep client data out of prompts.


v0 ADOPT

Adopted tool for rapidly generating initial UI components and prototypes from text prompts or images. Use the generated React code (based on shadcn/ui and Tailwind CSS) as a starting point for further refinement.

Proven to significantly accelerate the initial UI development and prototyping phase. Generates code based on our adopted UI stack (shadcn/ui, Tailwind), making integration smoother. Adopted as a valuable tool for quickly translating design ideas into functional code skeletons.


LiteLLM ADOPT

Worth using in a Python service that talks to more than one model provider, or expects to. It gives one call path, one token count and one error taxonomy instead of each vendor SDK's own.

It was the model gateway on the LLM platform we delivered in 2026, covering eight providers behind one interface. The structural benefit was keeping the import in exactly one file, so adding a provider is a new adapter and nothing else moves. It sits next to OpenRouter on this radar and solves the same lock-in problem from the other side: OpenRouter is a hosted gateway, LiteLLM is a library in your own process.


Haystack TRIAL

A framework for building LLM-powered pipelines (e.g., retrieval + prompting + post-processing) that helps structure “AI features” especially where context building and orchestration matter.

Haystack supports composing repeatable pipelines for use cases like internal knowledge assistants, document-centric Q&A, or other “LLM with context” flows. It’s on the radar because it works well for basic scenarios and provides a clear structure for connecting components (retrievers, prompt builders, model calls, evaluators). We keep it in evaluation mode to compare it with alternatives and to validate production concerns (observability, maintainability, integration patterns). Recommended when you need consistent pipelines, context assembly, and predictable behavior.