A few weeks ago, I was working on a chart-generating reporting agent. Most of the work had nothing to do with the model—it was data retrieval, chart selection, formatting, rendering, validation, the small unpleasant details between wanting a chart and being willing to show it in a meeting.
A few days later, Anthropic shipped charting.
I don't think that made the feature pointless. But it's a good reminder that if you're building on the generic model surface, the platform vendors will eventually build it too.
OpenAI, Anthropic, etc. are very good at making generic AI interactions better. They have more dedicated resources, more distribution, and more reason to absorb the obvious product surface area. If the feature is "summarize this," "write that," "make a chart," or "draft an email," you should assume the frontier assistants are coming for the generic version of it.
That's not to say these features aren't viable. Teams should still build AI products; they should just be honest about which parts are durable and which parts are waiting to be commoditized.
The feature is not the moat
Plenty of SaaS AI work has the same shape (chat box, summarizer, etc.), and sometimes that is the right move. Users need an entry point, and a product needs a surface area. I'm not arguing that every embedded assistant is doomed or useless.
The problem is when the assistant becomes the strategy.
If your AI feature is mostly a thin wrapper around data the user already owns, the real question is not "how good is our UI?", but rather:
- can the model access the right data?
- does it understand the domain?
- can it enforce permissions?
- can it take actions safely and securely?
- can it explain where an answer came from?
- can it fit into the workflow the user already has?
Those questions live below the interface.
Users will bring their own AI
SWEs and their counterparts are already living in this future.
They do not want GitHub's AI over here, Linear's AI over there, Slack's AI somewhere else; they want one strong AI surface connected to everything.
That pattern is spreading outside engineering. Slower, but it is happening.
Users will pick the assistant they trust. Maybe it is ChatGPT, maybe Claude, maybe some bespoke internal company assistant (lol). Then, they will expect it to reach into the tools where work actually happens.
That changes the job of a SaaS product. The product does not need to be the agent. It needs to be worth connecting to.
Stripe understood this before the current AI cycle: a clean API turns the product into infrastructure. Linear's GraphQL API makes issues and workflows programmable. Sentry's integrations make its data show up where developers are already looking.
It is less exciting in a launch post, but it's also much harder to commoditize.
The unglamorous layer compounds
The durable AI work tends to look unglamorous from far away:
- clean APIs
- well-modeled data
- stable identifiers
- permission checks that are impossible to skip
- exports that preserve meaning
- webhooks that actually work
- connectors for the tools users already chose
- semantic definitions the model does not have to guess
This layer makes an AI system useful after the demo.
It's also the layer teams underfund when they are chasing visible AI feature, but the advantage is down here.
AI can only be as good as the problem definition and context you give it. Sometimes the model will do something better than you could have done by hand. You still cannot assume it understands the problem better than the system does. If the product has not encoded the domain, the model is guessing.
Build where the model cannot follow
The strongest AI products I have seen are not just nicer wrappers around a frontier model. They know something specific that the generic assistant does not.
They understand the customer's problems, workflows and data. They know which actions are reversible and which ones are not. They know that a reimbursed expense is not the same thing as an approved expense. They know which records a user can see, which ones they can modify, and which ones should never be placed in a prompt.
You don't get that from model choice alone.
The generic model layer will keep getting better. It will absorb more of the obvious interface, so the part worth building is the part that makes your product a reliable source of context and action.
Stop asking whether your product has enough AI features; ask whether it is worth connecting to.