AI products, built for a system that gives a different answer twice.
Retrieval, evaluation and cost control engineered together, because a model is a variable cost per request and a source of non-determinism, and both break assumptions ordinary software is allowed to make. Seven AI platforms already in production, ten dedicated engineering practices, and custom work for everything beyond them.
Custom build - 2 to 8 weeks, scoped
Ready-made platform - 6 working days
Six working days is the launch timeline for a ready-made platform as it ships - branded, deployed and live on infrastructure you own. Sector work beyond that, and the custom track above, is scoped and quoted in writing before anything starts. Both tracks are the same engineering team. Every figure on this page is defined on our facts page.
What an AI product build actually contains
The sequence below is where AI products are won or lost. Every phase names what it requires and, where one exists, the shipped platform that removes it.
The characteristic failure in this sector is a demo that works and a product that does not. Getting an impressive result from a model takes an afternoon; knowing whether a change made it better takes an evaluation harness, and building one is unglamorous work that teams skip because the demo already looked fine. Six months later nobody can say whether the product improved, because there was never a way to measure it.
Three of the seven phases have no shortcut. What a shipped platform removes is the middle: retrieval, the model interface and the conversation layer.
Use case, model strategy and unit economics
The first question is what a wrong answer costs. A drafting assistant where a person reviews every output can tolerate a great deal of imperfection. A system that acts on its own answer - sending a message, changing a record, approving something - cannot, and the engineering effort differs by an order of magnitude between them.
Unit economics belong here rather than after launch. If a request costs you a meaningful fraction of what a user pays, the product needs caching, routing and limits designed in from the start. Teams that discover this at scale end up rationing their own product.
Model strategy is a portfolio decision. Hosted models are fast to start and priced per token. Open-weight models on your own infrastructure cost more to operate and remove a dependency and a data-sharing question. Most serious products end up using both.
Retrieval, and why it decides quality more than the model
For any product answering from your own content, retrieval quality dominates model choice. A strong model given the wrong three documents produces a confident wrong answer; a modest model given the right ones does the job. Teams routinely spend months evaluating models and an afternoon on retrieval, which is the wrong ratio.
The engineering is in the unglamorous parts: how documents are split so a passage keeps its meaning, how tables and structure survive extraction, keeping the index current as source content changes, and combining keyword and semantic search because each fails in ways the other catches.
Permissions belong in retrieval rather than after it. A system that retrieves across everything and filters the answer afterwards will eventually leak something in a summary.
The evaluation harness, which is the actual product work
You cannot unit test a probabilistic system, and that fact changes engineering practice rather than merely complicating it. Without a way to measure output quality, every change is a guess and every regression is discovered by a user.
What works is a graded set of real cases with expected characteristics, run on every change, scoring for correctness, grounding in the retrieved material, and refusal where refusing was right. Some of it can be scored automatically; some needs a person, and the honest version budgets for that.
This is also what makes model upgrades safe. When a provider releases a new version, a team with an evaluation set runs it in an afternoon and knows. A team without one either upgrades blind or never upgrades.
Safety, guardrails and adversarial input
Any product that puts untrusted text in front of a model has an injection problem. Content from a web page, a document or another user can carry instructions the model may follow, and the defence is architectural rather than a filter: treat retrieved content as data, keep privileged instructions separate, and never let model output alone authorize an action.
Output handling deserves the same care as any untrusted input. Model output rendered as markup can carry script; used in a query it can carry injection; passed to a tool it can trigger an action nobody intended.
Where the product can act rather than only answer, permissions belong to the user rather than to the agent, and consequential actions get confirmation. An agent operating with more authority than the person who asked is a design error rather than a feature.
Cost control, routing and caching
Inference cost scales with usage in a way infrastructure does not, which makes it a margin question rather than an operations one. The levers are routing simpler requests to cheaper models, caching responses where inputs repeat, trimming context that adds tokens without adding accuracy, and per-tenant limits so one customer cannot consume the margin on the rest.
Measurement comes first. Cost per request, per feature and per customer, visible daily, is what turns optimization into a decision. Most teams cannot answer which feature costs the most, which means they cannot prioritize.
Designing for the answer that is wrong
The model will be confidently wrong sometimes, and product design decides whether that is a manageable event or a serious one. Showing sources so a user can verify, expressing uncertainty rather than implying certainty, and making correction easy all reduce the cost of an error without reducing its frequency.
Where the stakes justify it, a person reviews before anything consequential happens. That is not an admission of weakness, it is how the product ships at all in domains where a wrong answer has a cost, and it can be removed selectively as evaluation data justifies it.
Launch and day two
A limited cohort with real inputs, because users will send things no test set contains and the failure modes that matter are the ones nobody imagined. Logging inputs and outputs from the first day is what makes the next improvement possible.
Day two is genuinely continuous here: models change under you, costs move, and prompts that worked stop working after a provider update. That is why the evaluation harness matters more than any individual prompt. Sixty days of dedicated support, six months of priority bug resolution, twelve months of updates.
Want any of these phases costed against your use case and volume?
Book a technical callWhere a request actually goes
Every AI product is this path with different names on the boxes. Cost accrues at three of the hops and quality is decided at one of them, and it is rarely the one teams spend their time on.
Notice which box is marked. Teams spend their evaluation effort on the model and their engineering effort on the interface, while the hop that decides whether the answer is right gets an afternoon. Retrieval is where the quality is.
Why you cannot unit test this, and what replaces it
Ordinary software has a property this does not: the same input produces the same output, so a test either passes or fails and a regression is caught before release. A model gives you a different answer to the same question, and both answers may be acceptable. Assertion-based testing simply does not apply.
What replaces it is an evaluation set: real cases with a definition of what a good answer looks like, scored on every change. It measures correctness, whether the answer was grounded in retrieved material rather than invented, and whether the system refused when refusing was right. Some scoring automates, some needs a person, and budgeting for the human part is what separates teams who know their product is improving from teams who believe it.
Want your retrieval and evaluation approach reviewed before you scale it?
Talk to an engineerEight operators, eight different builds
"AI product" is not one buyer. The tolerance for a wrong answer, the cost structure and the data position change completely between them.
Assistants and chat products
Conversational interfaces over your own content, where retrieval quality and conversation state carry the product and the model is the commodity part.
4 shipped platforms
AI features inside SaaS
Capability added to an existing product, which brings the tenancy question: whose data goes into context, and can one customer's content ever reach another's answer.
2 shipped platforms
Document and knowledge systems
Extraction and answering over large document sets, where structure, tables and permission-aware indexing decide whether the thing is usable at all.
2 shipped platforms
Agentic workflows
Systems that act rather than answer. Permissions, confirmation on consequential steps and a clear audit of what was done matter more than model capability.
1 shipped platform
Generative media
Image, video and voice generation, where cost per output is high, latency is visible, and rights and likeness questions arrive with the first serious user.
1 shipped platform
Code generation
Assistants that write or modify software, where the evaluation problem is unusually tractable because generated code can be run and tested automatically.
1 shipped platform
Vertical AI
Domain-specific systems in medicine, law or finance, where the cost of a wrong answer is high and human review is part of the product rather than a limitation.
Custom build
AI infrastructure
Tooling other builders use: gateways, evaluation platforms, vector stores. The buyer is an engineer, which raises the bar on documentation and reliability.
Custom build
Six of the eight can start from something already running. Two are custom builds because nothing off the shelf carries the domain properly, and we would rather say that than sell you an adaptation that fights you for two years.
Not sure which of these you are, or you sit across two of them?
Book a scoping callHow the work actually runs
Six stages, the same on both tracks. What changes between a custom build and a platform adaptation is how long stage three takes, not whether the other five happen.
Scoping against the cost of being wrong
We start from what happens when the system produces a bad answer, what a request costs, and where your data is allowed to go, because those three decide the architecture before any model preference does. A drafting assistant and a system that acts on its own output are different products with different budgets.
Architecture around retrieval and trust boundaries
Retrieval is designed first because it decides quality, and the injection boundary is drawn at the same time: retrieved content is data, privileged instructions are separate, and model output never authorizes an action on its own. Both are close to a rewrite if added later.
Build with the evaluation harness, not after it
The evaluation set is built alongside the product rather than added once it works, because it is the only way to know a change helped. Real cases, expected characteristics, scored on correctness, grounding and appropriate refusal, run on every change including a provider's model update.
Length varies by trackAdversarial testing and security validation
Injection attempts through every channel that reaches the model, output handling checked wherever it is rendered or passed to a tool, and tool permissions verified as scoped to the requesting user. Our platforms arrive with a VAPT and compliance document so external review starts from a documented baseline.
Cost instrumentation and tuning
Cost per request, per feature and per customer made visible before optimization begins, then routing, caching and context trimming applied where the measurement says they pay. Optimizing without measurement is how teams spend a month saving nothing.
Cohort launch and day two
A limited group with full input and output logging, because real users produce the cases your evaluation set was missing. Day two is continuous in this sector: models change under you and prompts stop working after a provider update. Sixty days of dedicated support, six months of priority bug resolution, twelve months of updates.
Want this sequence mapped against your use case and data position?
Book a technical callSeven AI platforms already in production
Every one ships with full source-code ownership, deployed on your infrastructure under your brand. Adapt one, or use it as the reference architecture for a custom build.
They fall into three groups. Assistant platforms carry conversation state, retrieval and the guardrail layer, and are the usual starting point for a product answering over your own content. Generative media platforms carry high per-output cost, visible latency and the rights questions that arrive with real users. Builder tools carry code generation and execution, where evaluation is unusually tractable because generated output can be run and tested.
What this sector requires
An evaluation set
Real cases with a definition of a good answer, scored on every change. Without one, every release is a guess and every regression is found by a user rather than by you.
Retrieval before model choice
A strong model with the wrong context is confidently wrong. Chunking, hybrid search, index freshness and permission-aware retrieval decide quality more than which model you selected.
An injection boundary
Retrieved and user content treated as data rather than instruction, privileged prompts kept separate, and model output never authorizing an action by itself.
Cost visible per feature
Inference scales with usage, so cost per request, per feature and per customer belongs on a dashboard rather than in a monthly invoice you interpret afterwards.
Output treated as untrusted
Escaped where rendered, parameterized where used in a query, and checked before it reaches a tool. Model output is input to your system, with all that implies.
Designed failure
Sources shown, uncertainty expressed, correction made easy, and human review where the stakes justify it. The model will be wrong; the product decides what that costs.
Want to open any of these platforms and look inside before deciding?
See the live demosAnything the model reads can try to instruct it
This is the security property that has no equivalent in ordinary software, and it is the one most AI products ship without addressing. A filter does not solve it; an architecture does.
The practical rule is simple to state and easy to violate under delivery pressure: an agent should never hold more authority than the person who asked it to act. Where that holds, an injection makes the model say something wrong; where it does not, an injection makes your system do something wrong.
Want your trust boundary reviewed before the product handles anything consequential?
Talk to an engineerBuilt custom when nothing off the shelf fits
The same team, working from zero. Ten engineering practices sit behind this sector, from classical machine learning to generative systems.
Retrieval systems
Chunking that preserves meaning, hybrid keyword and semantic search, permission-aware indexing and refresh handling as source content changes.
LLM developmentAgent architectures
Tool use, planning and multi-step workflows, with permissions scoped to the requesting user and confirmation on anything consequential.
AI agent developmentEvaluation platforms
Graded case sets, automated and human scoring, regression on every change, and the model-upgrade comparison that makes a provider release safe to adopt.
AI developmentGenerative media pipelines
Image, video and voice generation with queueing, cost control and the rights and likeness handling that arrives with the first serious user.
Generative AI developmentClassical machine learning
Forecasting, classification and recommendation where a trained model beats a prompt on cost and consistency, which is more often than the current conversation suggests.
ML developmentData foundations
The pipelines, labelling and quality work underneath any of it, because a model trained or retrieving over bad data produces confident bad output faster.
Data scienceNeed something this list does not cover?
Ask about custom workWhat we built, and what it delivered
Three deployments in this sector, described by what was actually built rather than by a metric we cannot show you the working for.
Assistant
Knowledge assistant with permission-aware retrieval
Retrieval filtered by the asking user's permissions rather than after generation, hybrid search over mixed document types, and answers shown with their sources.
Agentic
Workflow agent with scoped tools
Tool permissions bound to the requesting user, confirmation before consequential steps, and a full audit of what the agent did and why.
Generative media
Video generation with spend control
Queued generation with per-tenant spend caps, cached outputs where inputs repeated, and cost per output visible by customer.
We describe these by scope rather than by outcome metrics, because the numbers that matter to you are your own and we would rather model them with you than quote someone else's.
Want to speak to a reference building something comparable?
Request a referenceWritten on this sector
Longer pieces on the problems above, written by the engineers who build these systems.
What replaces unit tests when output is probabilistic
RetrievalWhy retrieval decides quality more than the model does
SecurityAn agent should never hold more authority than its user
EconomicsCost per request as a product decision
If a question here is not covered, the fastest route to an answer is a call with the engineer who would run your build.
Want these as a briefing pack for your board or engineering team?
Request the packThe demo took a week. Then we spent four months unable to tell whether any change we made was an improvement, because we had nothing to measure against.
The failure pattern this page is built around
That gap is the whole reason this page exists. Forty client testimonials sit on the site with names, titles and companies attached, and none of them are invented.
Questions AI buyers actually ask
The ones that come up in the first call, answered as we would answer them there.
Can we really launch in six working days?
Yes, for the shipped platform as it comes - branded, deployed and live. A conventional assistant over your own content works that way. Building the evaluation set that tells you whether it is good is custom work, takes longer, and is the part worth insisting on.
Do we own the source code?
Yes, in full, deployed on your infrastructure. Model access is your own account with your chosen provider, so there is no dependency on us at runtime.
Which model should we use?
Usually more than one: a capable model for hard requests, a cheaper one for simple ones, and a fallback for provider outages. We build the routing so the choice stays a configuration decision rather than an architectural one.
Can we run models on our own infrastructure?
Yes. Open-weight models on your hardware cost more to operate and remove both the data-sharing question and the dependency. Many regulated buyers need exactly that, and we build for it.
How do we know if it is any good?
An evaluation set of real cases scored on every change, for correctness, grounding and appropriate refusal. Without it a team is guessing, and the guess is usually optimistic.
What about hallucination?
Reduced by grounding answers in retrieved material and measured by scoring whether an answer was supported by what was retrieved. It is managed rather than eliminated, which is why sources and uncertainty are shown to the user.
Is prompt injection a real risk for us?
If your system reads anything a user or a document supplies, yes. The control is architectural: retrieved content is data, output never authorizes an action alone, and tools are scoped to the requesting user.
How do we control cost?
Measure first, by request, feature and customer. Then route simple requests to cheaper models, cache repeated inputs, trim context that adds tokens without accuracy, and cap per tenant.
Does our data train someone else's model?
That depends on your provider and contract, and we set it up explicitly rather than by default. Where the answer must be no, self-hosted models remove the question entirely.
Can the system take actions, not just answer?
Yes, with permissions scoped to the requesting user and confirmation before anything consequential or irreversible. An agent with more authority than its user is a design error we will not ship.
What happens when the model provider changes something?
Your evaluation set tells you in an afternoon. That is the main practical argument for building one, beyond knowing whether your own changes helped.
What if we are not sure AI is the right answer?
We will tell you where a trained classical model or ordinary software would be cheaper and more consistent, which is more often than the current conversation suggests - and then we will build whichever one fits.
Question not answered here?
Ask us directlyTell us what you are building.
Bring the use case and the data position. We will tell you honestly what it takes, and we will build it.
A first call takes about thirty minutes and covers four things
What a wrong answer costs
Which sets how much engineering the product actually needs.
Where your data can go
Hosted, self-hosted, or a mix your regime requires.
Volume and price
What a request costs you against what a user pays.
Existing systems
The content, identity and product stack this must fit into.
Those four answers are usually enough for us to tell you what the build covers, roughly what it costs, and where the quality is most likely to be lost. Whatever the shape - assistant, agent, generative media, a model on your own hardware, or something none of those describe - we will build it.