AI ProductsProduct EngineeringUX

AI features should feel useful, not magical

What I learned building AI product flows where the model is only one part of the system.

·5 min read·Muiz Rexhepi

The worst AI products usually make the same mistake: they treat the model as the product.

I think that is why a lot of AI apps feel like slop. The interface is just a text box, the output is too long, and the user has to do the real work of figuring out whether the result is useful.

When I build AI features now, I try to avoid that. The model should not be the whole experience. It should be one step inside a clear product flow.

The product should own the shape

A good AI feature starts with a strict shape. In Logly, the user does not need a paragraph about their meal. They need calories, macros, food items, serving sizes and a confidence level. In SpeakSure, the user does not need a motivational essay. They need feedback, a score, a better answer and one thing to improve next.

That means the app should decide the structure before the model ever responds.

type MealResult = {
  foods: {
    name: string;
    quantity: string;
    calories: number;
    protein: number;
    carbs: number;
    fat: number;
  }[];
  totalCalories: number;
  confidence: "low" | "medium" | "high";
};

The more structured the output, the less the user has to interpret. That is the difference between a feature and a chatbot.

AI should remove friction

The best use case for AI is not always “generate something from nothing.” A lot of the time, it is better at cleaning messy input.

Examples:

  • turning a rough food note into macros
  • turning a spoken answer into feedback
  • turning a messy recipe screenshot into ingredients and steps
  • turning a client’s unclear request into a usable project brief

Those flows are easier to trust because the user already brought the context. The model is not inventing the whole thing. It is organizing it.

The interface matters more than the prompt

Prompt quality matters, but the real product quality comes from what happens around the prompt:

  • input constraints
  • schema validation
  • fallback states
  • loading states that explain what is happening
  • editable results
  • clear confidence and uncertainty

If the model gives a nutrition estimate, I should label it as an estimate. If the model gives speaking feedback, it should be concrete and actionable. If the model parses a recipe, the user should be able to edit the ingredients before saving.

Good AI UX is boring in the right places

I do not want AI features to feel like a magic trick every time. I want them to feel reliable. The user should understand what was generated, what can be edited, and what the app is confident about.

That is the standard I try to use: AI should make the app faster and more useful, not more confusing.