<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Coder Legion - Recent posts tagged agentcommerce</title>
<link>https://coderlegion.com/tag/agentcommerce</link>
<description>Powered by Question2Answer</description>
<item>
<title>An Ai built me a demo, I built it into a business</title>
<link>https://coderlegion.com/29159/an-ai-built-me-a-demo-i-built-it-into-a-business</link>
<description>&lt;p&gt;I run several AIs in parallel — Claude, Grok, ChatGPT, Gemini — and I feed the wins to my main agent to reality-check against my actual repos before anything ships. This week Grok built me a slick demo of an &quot;SML Desk&quot;: a command-center web app for my whole operation.&lt;/p&gt;
&lt;p&gt;There was one problem. I couldn't ship it.&lt;/p&gt;
&lt;p&gt;The source was stuck behind x.ai auth. The &quot;video clips&quot; it linked to were sandbox-only files that didn't exist in production. The data was demo-shaped, not real. It looked done and wasn't.&lt;/p&gt;
&lt;p&gt;So I rebuilt it clean. Same idea, zero borrowed code, wired to my real stack. It's live now at &lt;strong&gt;desk.scriptmasterlabs.com&lt;/strong&gt; — a web app, no install, no signup. Here's what that rebuild actually took.&lt;/p&gt;
&lt;h3 id=&quot;what-the-desk-is&quot;&gt;What the Desk is&lt;/h3&gt;
&lt;p&gt;One page, six tabs, all client-side:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Desk&lt;/strong&gt; — the command surface: my live x402 API directory (23 pay-per-call endpoints, every one priced in USDC)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Stack&lt;/strong&gt; — the product stack: high-ticket courses, Squeeze Wire, Kindle editions, with verified prices&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Directory&lt;/strong&gt; — every canonical page on the domain&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Agents&lt;/strong&gt; — the agent tools: SMLSheets, Micro-Series Studio, the open-seo fork&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ledger&lt;/strong&gt; — claim receipts. Every factual claim on the page carries a receipt&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Shelf&lt;/strong&gt; — 50 research PDFs, loaded live from a JSON catalog&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The design brief I gave my agent: cream editorial, like a banker's desk. It kept my branding intact — dark/neon is the main site's identity, but the Desk is its own room.&lt;/p&gt;
&lt;h3 id=&quot;the-part-that-actually-mattered-every-number-verified&quot;&gt;The part that actually mattered: every number verified&lt;/h3&gt;
&lt;p&gt;My trust rule is simple: every number sourced or it doesn't reach the user. A demo can fake an API price. A shipped product can't. So the rebuild wired every tab to real sources:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The 23 x402 paths were verified live (HTTP 200) before they went in the directory — not copied from a spec doc&lt;/li&gt;
&lt;li&gt;The 50 PDFs load from the live &lt;code&gt;research-catalog.json&lt;/code&gt; with CORS opened for the desk subdomain&lt;/li&gt;
&lt;li&gt;Product prices were re-checked against the live storefronts, not admin panels&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The Shelf tab is the cleanest example. It fetches the catalog at runtime:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-js&quot;&gt;fetch('https://scriptmasterlabs.com/research-catalog.json')
  .then(r =&amp;gt; r.json())
  .then(catalog =&amp;gt; renderShelf(catalog));
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That only works because the main domain serves the catalog with &lt;code&gt;Access-Control-Allow-Origin: *&lt;/code&gt;. Small detail, the kind the demo never had to solve.&lt;/p&gt;
&lt;h3 id=&quot;the-dns-saga-the-demo-never-deploys-&quot;&gt;The DNS saga (the demo never deploys)&lt;/h3&gt;
&lt;p&gt;This is the part nobody warns you about with subdomains. &lt;code&gt;desk.scriptmasterlabs.com&lt;/code&gt; 404'd on launch day. The debugging went:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Assumed DNS was Cloudflare — &lt;strong&gt;wrong&lt;/strong&gt;. The registrar is Porkbun, and Porkbun is also the authoritative nameserver. The Cloudflare headers I was seeing came from Render's own ingress edge.&lt;/li&gt;
&lt;li&gt;Found the desk subdomain CNAME'd to &lt;code&gt;proxy-v2.appdeploy.ai&lt;/code&gt; — a third-party Caddy I didn't recognize and never set up. Replaced with an A record to Render's ingress (&lt;code&gt;216.24.57.1&lt;/code&gt;), same as the apex.&lt;/li&gt;
&lt;li&gt;Still 404 — because Render won't serve TLS for a custom domain until you add it on the service. That cost $0.25/month (included domains exhausted). Accepted, cert issued, live.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Total: about 40 minutes of &quot;the demo worked on my machine&quot; energy, except the machine was someone else's sandbox.&lt;/p&gt;
&lt;h3 id=&quot;host-based-routing-one-server&quot;&gt;Host-based routing, one server&lt;/h3&gt;
&lt;p&gt;The whole domain (apex + desk subdomain) runs off one Node server — &lt;code&gt;frontdoor/server.mjs&lt;/code&gt;. The desk needed host routing added:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-js&quot;&gt;const host = req.headers.host || '';
if (host.startsWith('desk.')) {
  // serve desk/index.html, desk-scoped static paths
} else {
  // normal apex routing
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;One repo, one deploy, two sites. The GitLab push auto-deploys via Render. Commit &lt;code&gt;2fdca03&lt;/code&gt; if you want the shape of it.&lt;/p&gt;
&lt;h3 id=&quot;the-thesis-evidence-before-the-agent-spends&quot;&gt;The thesis: evidence before the agent spends&lt;/h3&gt;
&lt;p&gt;The Desk's tagline is &quot;Evidence before the agent spends.&quot; That's the whole business thesis: AI agents are about to spend real money on the internet via protocols like x402, and somebody has to be the desk where the evidence gets checked first — prices verified, claims receipted, endpoints machine-readable.&lt;/p&gt;
&lt;p&gt;It's the same decision-gate I run everywhere: a model with ≥0.80 confidence auto-pays, 0.50–0.79 asks, below 0.50 escalates. The Desk is where a human or agent can check the evidence before the gate fires.&lt;/p&gt;
&lt;h3 id=&quot;what-i-d-do-differently&quot;&gt;What I'd do differently&lt;/h3&gt;
&lt;p&gt;Ship the boring parts first. The demo had a &quot;Clip&quot; tab with video links that pointed at nothing — I cut it from v1 rather than fake it. It comes back when I have real video files. A tab that loads is worth more than a tab that impresses.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Live: &lt;strong&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://desk.scriptmasterlabs.com&quot;&gt;https://desk.scriptmasterlabs.com&lt;/a&gt;&lt;/strong&gt; —#FREE web app, runs in the browser, nothing to install.&lt;/p&gt;
&lt;p&gt;Built by ScriptMasterLabs Publishing, a service-disabled veteran-owned small business. Every number on the page was verified live before it shipped. The demo looked done. This one is.&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/29159/an-ai-built-me-a-demo-i-built-it-into-a-business</guid>
<pubDate>Tue, 29 Sep 2026 23:01:08 +0000</pubDate>
</item>
</channel>
</rss>