Skip to content
AI & ML aillmproductengineering

Shipping AI Features That Stick

We have shipped AI-powered features in three client products in the last year. Here is the gap between a demo that impresses and a feature that earns its place in production.

Barender Singh
Barender Singh 10 May 2025 · 3 min read
Share this article X LinkedIn WhatsApp

The demo always looks good. You pipe a prompt through GPT-4, get a coherent response in two seconds, and everyone in the room is impressed. Three months later, that same feature is either a core part of the product or quietly removed after users ignored it. The difference comes down to a few things we have learned the hard way.

Latency is a UI problem, not a model problem

Users will tolerate a slow load once. They will not tolerate a two-second pause every time they click a button. The first thing we do with any LLM integration is add streaming. A response that appears word by word feels fast even at four seconds total — a response that appears all at once at two seconds feels slow.

Streaming with the Vercel AI SDK or a raw ReadableStream from the OpenAI API is not complex to implement. It is however complex to handle gracefully when things go wrong, which they will. Build the error path before the happy path.

Prompts are product decisions, not engineering ones

The biggest mistake we see is treating prompt engineering as a developer task. The prompt is the product. It defines tone, scope, guardrails, and the mental model a user builds of what the feature can do. If your product team does not own the prompt, the feature will drift.

We version prompts the same way we version code. Every prompt lives in a file, gets reviewed, and has a rollback path. Running two prompt variants in production (A/B style) has caught regressions that would have been invisible otherwise.

Fallbacks are non-negotiable

LLM APIs go down. Tokens run out. Rate limits hit at peak traffic. Any AI feature without a graceful fallback is a reliability risk for the whole product. Our standard: if the AI path fails, the user gets a sensible static response or is directed to a human flow. They should never see a raw error.

This means designing the feature with the fallback first. If you cannot describe what the product does when AI is unavailable, you have not finished the product design.

The features that stick are narrow

The most durable AI features we have shipped are the ones with a tightly constrained scope — summarise this document, suggest tags for this entry, rewrite this paragraph in a formal tone. The ones that struggle are open-ended assistants with no clear job to do.

Users do not want to think about what an AI can do for them. They want a button that does one useful thing reliably. Start there. Expand the scope only when the narrow version is proven.

Share this article X LinkedIn WhatsApp
Barender Singh

Written by

Barender Singh

CTO · Engineering Lead

Barender brings exceptional technical range to Atlansian. With 6.5+ years spanning complex frontend systems, backend infrastructure, cloud architecture and emerging technologies including AI/LLM pipel…