Let your users build the features you haven't shipped.

An AI prompt bar for your product. Users describe what's missing and get a working widget, computed from your data.

A user types one sentence; a live widget lands in their dashboard.
How it works

Ship it in an afternoon, not a sprint

Add one script tag and a publishable key. Register the data you already have, and your users generate widgets, reshapes, and actions over it by prompt.

app.js js
// one script tag exposes window.Morph
Morph.init({
  key: 'pk_live_…',  // from the dashboard
  sources: {         // your data → live widgets
    deals: {
      fetch: async () => api.deals(),
      schema: { amount: 'number', closedAt: 'date' },
      description: 'CRM deals (won|lost|open)',
    },
  },
});

Reshape

Restyle, declutter, rearrange your UI by prompt. Zero config: works with just a key.

Data widgets

Stat boxes & charts over live data, like “lost deals this month”. Computed in-page from a source you register.

Actions

Generated buttons that do things: always user-clicked, always confirm-gated. Never fires on its own.

An LLM that can't run code

The whole security model is one idea, and it's the reason the client is open source.

</>

The model never returns code

It answers only in a fixed, declarative JSON DSL, validated and sanitized in the browser. HTML is whitelisted, CSS is neutralized, and there's simply no execute op to reach for. That boundary is the whole security model, which is why the client is open source.

Your data never leaves the page

The model sees only your source names and field types. It emits a query; trusted code runs your fetch in-page and renders the number. Morph's servers never see a record.

Keys are publishable

Like a Stripe pk_ key: safe in page source, bound to your origins, rate-limited per vendor. It gates cost, not data. There is no data behind it.

Your users are writing your roadmap

Every kept feature is a signal. Morph clusters what your users build, counts who kept it, and ranks it in your dashboard: ship the proven ones natively.

Revealed demand, not survey answers

A widget a user built and kept for three weeks is evidence. Signals rank clusters by kept count, with the users' own words attached.

Zero setup

If Morph Embed is installed, Signals is already collecting. Open the dashboard and read your backlog.

Also for everyone · free

Or just use it yourself: the browser extension

Same engine, no code. Press Alt + M on any website, say how it should look, and it reshapes in place. Saved per site, reapplied on every visit. No account.