Inspiration

Prototypes got cheap. Decisions didn't.

I kept seeing the same mess: someone ships a little tool for fun, then hits auth or scraping and freezes on build vs buy. ChatGPT will write you a confident paragraph. Ask again and you get a longer paragraph. You're still doing the math in your head.

I didn't know this domain well when I started. I just didn't want another essay. I wanted the page to move when the agent did something, and I wanted to see the call in a log so it couldn't just agree with me.

What it does

BuildVsBuy.ai is a decision canvas in the browser. You and the agent share one model. Nine WebMCP tools. Cards, weights, a future-stress banner, an override with a gap and a liability list.

If it says Build dropped, the log has to show a rerank. If the log didn't change, it guessed.

The demo walk:

  1. Auth. You admit you're shipping a prototype fast. Build usually falls last.
  2. Switch to scraping. "What if HIPAA and 50k users?" That's a simulation. Baseline cards stay put.
  3. You still want to own the crawler. It pins Build, shows how far that is from the math, and lists what you're taking on.

Numbers on the axes are my estimates for the demo. Not vendor quotes. Not financial advice.

How I built it

Vite, vanilla JS, no backend. Vercel.

Tools live in src/webmcp.js (document.modelContext.registerTool). Math lives in src/decision.js. The UI just redraws a snapshot. Human sliders and agent calls hit the same execute path, tagged human or agent so the log isn't lying about who did it.

I also wrote two smoke scripts so I wasn't debugging this only through ChatGPT's mood that day.

What I learned

Soft instructions do not save a live agent. It will skip the rerank. It will invent cards. It will pin Buy because some flag wasn't set.

The stuff that actually held on camera was refusing the bad call in the tool itself. Prompt text is decoration.

Also: WebMCP is useful when the page is a real store, not when you ask the model to "look at the screenshot."

Challenges

Recording almost killed me. Same session, Prompt 2 did the right tool and nothing moved because the weight was already 10 so we skipped rerank. Prompt 4 looked like Buy won because override wouldn't pin Build unless core IP was already true. I fixed both in code. I was not going to sit there and whisper hints on camera.

Keeping simulate as a projection (not rewriting live context) was another fight. Agents love to "just set HIPAA" and pretend the future already happened.

I cut saved accounts, live pricing, and a third industry. Ten days. The loop had to work: ask, tool, visible state, honest disagreement.

Built With

Share this project:

Updates

Submission history