customization

Let your customers customize your product

Every product that gets used seriously starts collecting requests only one customer wants. You cannot build them all, and saying no forever costs renewals. The third option is to let customers build on top of you, inside limits you set, with an agent embedded in your product doing the building.

Why do customers ask for features you will never build?

Because their work is more specific than any product can be. Two teams buy the same tool for the same job and still need different reports, different stages, and different rules about who approves what. The request that sounds niche to you is often the whole reason they pay for the tool. Multiply that by a few hundred accounts and the backlog grows faster than any roadmap drains it.

Why don’t per-customer forks scale?

Because every fork is a permanent tax on every future change. A branch for one account, a flag for another, a bespoke integration for a third: each is code you now maintain, test, and migrate forever, for a single logo. Professional services has the same shape with people instead of branches, revenue that only grows if you hire, and a delivery queue between your customer and the thing they asked for. Both trade a software margin for a services margin.

Why doesn’t a settings page solve it?

Because configuration only covers the variations you thought of in advance. Ship toggles, custom fields, saved views, and webhooks, and customers still reach the edge of what you predicted within a quarter. Every new option also lands in the UI for everyone, so the product gets heavier for the customers who never needed it.

What about an API and a low-code builder?

Those help the customers who have engineers to spare, which is a small slice of any account list. They move the work to the customer’s team: someone has to read your docs, write the glue, host it, and keep it alive when you change an endpoint. The customers with the most specific needs usually have the least engineering capacity to meet them.

What is the alternative?

Put an embedded agent inside your product that builds the missing piece for the customer who asked for it. It works from your API and your components, so what it produces behaves like part of your product, and it runs as the signed-in customer, so it cannot do anything that customer could not already do. They describe the outcome in plain language and get a working view, action, or automation. No ticket, no roadmap, no waiting.

What can a customer actually build?

Views, changes to the screen in front of them, and automations that keep running after they close the tab.

  • A view. Ask a question, get a live view composed from your own components and your own API.
  • A change to your UI. Hover a component, describe the change, apply it in place.
  • An automation across tools. Plain language in, a standing automation out, every tool call gated by approval.
  • A conversation. A voice session that answers out loud and renders the view while it talks.

What they build is theirs to keep, name, and reuse, not a throwaway answer in a chat window.

Does this mean customers can do anything they want?

No. Every action runs through your guardrails, as the customer who asked for it. Permissions are the ones your API already enforces, risky tools stop and ask for approval, generated UI runs sandboxed and cannot call out on its own, and every call lands in an append-only audit log. Customization stops exactly where your policy says it does.

How do you add this to your product?

With Vendo. An open-source customization layer. Your users build their own features and micro-apps, right on top of your product. Install it with npm install @vendoai/vendo and run npx vendo init: it scans your app, extracts your API into tools and your theme into tokens, and proposes the wiring as diffs you approve line by line. vendo doctor tells you when it is done. Vendo is Apache-2.0, so you can run all of it yourself; Vendo Cloud adds the multi-party parts (hosted sharing, publishing, org overlays, pinning) when you want them.

Where do you start?

The quickstart is one command and one component. The home page shows an agent assembling an app in place, what is an embedded agent covers the pattern in depth, and pricing lists what each plan includes, with a bring-your-own path on every meter.