<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <id>tag:stacktr.ee,2026:feed</id>
  <title>Stacktree — blog and changelog</title>
  <subtitle>Turn reports, audits and proposals into private pages on your own domain, then see who opened them and how far they read. Private by default, unguessable links, update in place.</subtitle>
  <link rel="self"      type="application/atom+xml" href="https://stacktr.ee/feed.xml"/>
  <link rel="alternate" type="text/html"            href="https://stacktr.ee/blog"/>
  <updated>2026-10-07T00:00:00Z</updated>
  <author>
    <name>Steve Smith</name>
    <uri>https://stacktr.ee/about</uri>
  </author>
  <generator uri="https://stacktr.ee">Stacktree</generator>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/machine-bought-past-entry-price</id>
    <title>The first machine to buy past our entry price</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/machine-bought-past-entry-price"/>
    <updated>2026-09-02T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">One wallet paid $1 for an API key, published a page, then bought permanence and higher limits. It is the first of seven x402 identities to buy anything above the door price. The receipts are on Base, and here is what we can and cannot tell you about it.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/engagement-without-recording</id>
    <title>Page engagement analytics, without recording the reader</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/engagement-without-recording"/>
    <updated>2026-07-06T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">We wanted to show how a shared page is read: time on page, scroll depth, where attention landed. We did it without session replay, keystrokes, or identity. The design, and why aggregate was the point.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/notion-html-block-explained</id>
    <title>What is the Notion HTML block? Uses, limits, sharing</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/notion-html-block-explained"/>
    <updated>2026-07-24T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">Notion 3.6 adds an HTML block: agents build interactive HTML, calculators, quizzes, diagrams, right on the page. A plain reading of what&apos;s announced, what&apos;s not documented yet, and the sharing gap it leaves.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/cloudflare-monetization-gateway</id>
    <title>Cloudflare Monetization Gateway: x402 at the edge, explained</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/cloudflare-monetization-gateway"/>
    <updated>2026-07-02T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">Cloudflare announced a Monetization Gateway: charge agents for pages, APIs, datasets, and MCP tools over x402, enforced at the edge. What it does, what it leaves out, and notes from running agent payments in production.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/why-agents-need-a-publish-primitive</id>
    <title>Why AI agents need a publish primitive</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/why-agents-need-a-publish-primitive"/>
    <updated>2026-05-14T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">Agents write HTML at the rate humans write commits. The publish step deserves its own verb — not a workflow grafted onto a static-site host.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/mcp-servers-explained-for-developers</id>
    <title>What is an MCP server? A developer reference (2026)</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/mcp-servers-explained-for-developers"/>
    <updated>2026-05-30T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">MCP is the protocol every AI assistant now speaks: Claude, ChatGPT, Cursor, Codex. How MCP servers work, what they replace, and how to build one in about 50 lines.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/private-by-default-html-hosting</id>
    <title>Private-by-default HTML hosting is the new normal</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/private-by-default-html-hosting"/>
    <updated>2026-05-14T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">Agents emit a lot of HTML with real data in it. Public-by-default hosting is no longer the safe baseline. Here is what the new baseline looks like.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/do-ai-agents-leak-secrets</id>
    <title>Do AI agents leak secrets? Yes. The publish step is where it becomes public.</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/do-ai-agents-leak-secrets"/>
    <updated>2026-07-19T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">Agents assemble pages from whatever is in context, and context routinely contains live credentials: the bearer token that fetched the data, the key in a pasted config. What a pre-flight secret scan catches (API key prefixes, JWTs, Luhn-checked card numbers, SSNs, emails), why the MCP publish path blocks by default, what a regex net honestly cannot promise, and what to do when a key already shipped.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/what-are-chatgpt-dots</id>
    <title>What are ChatGPT Dots? OpenAI&apos;s always-on agents, explained</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/what-are-chatgpt-dots"/>
    <updated>2026-10-07T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">Dots are always-on agents in ChatGPT, launched on 29 September 2026. What a Dot is, what it can reach, where it talks to you, how it differs from Work, Codex, scheduled tasks and plugins, which plans include it, and its limits at launch.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/mcp-2026-spec-changes</id>
    <title>MCP 2026-07-28 spec: every breaking change, with fixes</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/mcp-2026-spec-changes"/>
    <updated>2026-09-30T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">Every change in the final MCP 2026-07-28 spec and how to migrate: stateless core, MCP Apps, Tasks, elicitation, sampling, caching. What breaks, what stays compatible, and the fix for each.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/mcp-apps-html-ui</id>
    <title>MCP Apps made HTML the official UI of agents. Where does that HTML live?</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/mcp-apps-html-ui"/>
    <updated>2026-07-18T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">MCP Apps (SEP-1865) is final: Claude, ChatGPT, VS Code, and Goose all render server-shipped HTML in a sandboxed iframe. The extension standardizes emitting interactive HTML and is deliberately silent on hosting it beyond the session. What it covers, its lifecycle, and where the publish step fits.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/mcp-resources-vs-tools-vs-prompts</id>
    <title>MCP tools vs resources vs prompts: a decision table</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/mcp-resources-vs-tools-vs-prompts"/>
    <updated>2026-07-18T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">Tools act, resources read, prompts guide. A decision table for which MCP primitive to use, the mistakes that come from picking wrong, and what the 2026-07-28 spec changed.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/skills-vs-mcp-vs-api</id>
    <title>Skills vs MCP vs API: when you need each (2026)</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/skills-vs-mcp-vs-api"/>
    <updated>2026-06-28T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">API is the surface, MCP is the interface, a skill is the expertise on top. The three layers of an agent-facing product, explained with Stacktree, which ships all three.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/what-is-mcp-elicitation</id>
    <title>What is MCP elicitation and sampling?</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/what-is-mcp-elicitation"/>
    <updated>2026-05-30T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">Elicitation lets an MCP server pause and ask the user for input mid-call. Sampling lets it ask the client model to reason. Together they turn servers from passive endpoints into active participants.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/sites-in-codex-explained</id>
    <title>Codex Sites is now ChatGPT Sites: what the docs don&apos;t say</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/sites-in-codex-explained"/>
    <updated>2026-09-11T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">Codex Sites went GA as ChatGPT Sites on 9 July 2026: every paid plan, public publishing, custom domains. Where the official docs stop: gates, expiry, API access, and private alternatives.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/can-you-make-a-codex-site-public</id>
    <title>Can you make a Codex Site public? Plan availability and access (June 2026)</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/can-you-make-a-codex-site-public"/>
    <updated>2026-09-11T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">No public or link-only mode is documented for Codex Sites: all three access modes require an OpenAI workspace seat. Which plans have it, what OpenAI says is coming, and how to get a public link for agent output today.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/codex-sites-custom-domain</id>
    <title>Can a Codex Site have a custom domain?</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/codex-sites-custom-domain"/>
    <updated>2026-09-11T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">No custom-domain support is documented for Codex Sites: a deployed Site renders only at an OpenAI-hosted, workspace-scoped URL. Why it is built that way, and how to put agent output on your own domain today.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/what-are-claude-live-artifacts</id>
    <title>What are Claude Live Artifacts? Access, plans, and the sharing gap</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/what-are-claude-live-artifacts"/>
    <updated>2026-09-17T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">A plain reading of Anthropic docs: Claude Live Artifacts are persistent Cowork dashboards that re-query your apps and refresh on open. Paid plans, desktop only, personal and local at launch, not yet shareable. The private-link gap Stacktree fills.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/artifacts-in-claude-code-explained</id>
    <title>Artifacts in Claude Code: what they are, who can view, sharing limits (2026)</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/artifacts-in-claude-code-explained"/>
    <updated>2026-07-24T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">A plain reading of Anthropic&apos;s launch: Claude Code turns a session into live pages that update in place. Org-only and cannot be made public; Team and Enterprise beta. The external-sharing gap Stacktree fills.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/claude-artifact-cannot-republish</id>
    <title>Claude artifact unpublished and cannot be republished? Why, and the fix</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/claude-artifact-cannot-republish"/>
    <updated>2026-06-20T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">Unpublishing a Claude artifact is permanent for that version: the link dies, the Publish button deactivates, persistent-storage data is deleted, and republishing mints a new URL. Why it happens, and how to keep a link that stays put.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/stacktree-n8n-node</id>
    <title>Stacktree is an n8n node now</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/stacktree-n8n-node"/>
    <updated>2026-07-28T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">n8n-nodes-stacktree passed n8n&apos;s review and is live: any workflow can publish HTML to a private link, update it in place, gate it, and read viewer feedback. Works as an AI Agent tool.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/slack-renders-html-attachments</id>
    <title>Slack renders HTML attachments now. Rendering still is not sharing</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/slack-renders-html-attachments"/>
    <updated>2026-07-18T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">Slack is starting to render attached HTML files inline instead of a download or raw code. Useful, and rolling out. But a rendered file in a channel has no link, no access control, and no life outside the workspace. How to turn it into a private link.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/per-seat-pricing-ai-agents</id>
    <title>The end of per-seat pricing: agents don&apos;t have seats (2026)</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/per-seat-pricing-ai-agents"/>
    <updated>2026-06-07T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">Per-seat pricing assumes one human per seat. AI agents do not log in or take seats, so the model breaks. Original data on what static hosts charge per seat today, why the category is moving to flat and usage pricing, and where it leaves teams running agents.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/x402-mpp-explained</id>
    <title>x402 and MPP, explained by building a service that takes both</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/x402-mpp-explained"/>
    <updated>2026-06-27T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">What x402 and MPP are, how an AI agent pays with each, and how we built a multi-rail service with agentcash where the payment turns into a site the agent or a human can then claim and manage.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/ai-agents-pay-over-mpp-tempo</id>
    <title>MPP in production: how AI agents pay Stacktree over Tempo</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/ai-agents-pay-over-mpp-tempo"/>
    <updated>2026-06-27T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">An early, live example of MPP, the agent-payment standard from Stripe and Tempo. AI agents pay Stacktree over MPP or x402 on one endpoint, with no account and no card. How it works, why the onchain method is permissionless, and the on-chain receipt.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/agent-paid-to-provision-itself</id>
    <title>An AI agent paid us $1 to provision itself: x402, end to end</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/agent-paid-to-provision-itself"/>
    <updated>2026-06-09T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">A working x402 example on Base mainnet: an agent hits a 402, signs an EIP-3009 USDC authorization, pays $1 with no human and no card, gets a persistent API key, and publishes a live page. The whole loop, the real transaction, and the bug that cost two attempts.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/mpp-vs-x402</id>
    <title>MPP vs x402: you do not have to choose</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/mpp-vs-x402"/>
    <updated>2026-06-24T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">MPP and x402 are usually framed as crypto versus Stripe. That is a false binary: MPP’s evm method settles the same EIP-3009 USDC on Base that x402 does. What actually differs, what is identical underneath, and why we accept both on one endpoint, with a real on-chain MPP payment as proof.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/what-shopify-quick-proves</id>
    <title>What is Shopify&apos;s Quick? What it proves about AI-era hosting</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/what-shopify-quick-proves"/>
    <updated>2026-06-10T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">Shopify built an internal host for AI-made HTML: drop a folder in, get a company-only URL. Half the company used it. Why constraints won, and the public version.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/what-is-vercel-drop</id>
    <title>What is Vercel Drop? Limits, privacy, and when to use it</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/what-is-vercel-drop"/>
    <updated>2026-07-08T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">Vercel Drop (June 2026) deploys a dragged file or folder with no Git or CLI. What it does, its documented limits, and when an artifact wants a different host.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/chatgpt-webmcp</id>
    <title>ChatGPT supports WebMCP now</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/chatgpt-webmcp"/>
    <updated>2026-08-25T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">OpenAI added WebMCP to the ChatGPT desktop app browser, Work, and Codex, with no origin trial token. What document.modelContext is, how to register a tool, and the annotation detail that decides whether ChatGPT asks permission first.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/export-coding-agent-session</id>
    <title>How to export a coding agent session — and make it worth reading</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/export-coding-agent-session"/>
    <updated>2026-08-24T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">YC now asks applicants to attach a coding agent session. Exporting is easy (/export in Claude Code, transcripts in Codex, a button in Cursor); the export is a 4,000-line wall. How to get it out of each tool and turn it into a page someone reads.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/is-agentic-score-explained</id>
    <title>is-agentic explained: what the agent-readiness score measures, and the fix that took us from 93 to 100</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/is-agentic-score-explained"/>
    <updated>2026-08-22T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">We ran Vercel&apos;s new is-agentic scanner against stacktr.ee: 93 at baseline, 100/100 a day later. The gap that mattered most was invisible to humans: 99KB of inlined CSS pushing the first heading past byte 100,000. Every fix, ranked by what it was actually worth.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/skills-sh-indexing-explained</id>
    <title>skills.sh indexing explained: why your skill is not listed, and what actually breaks</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/skills-sh-indexing-explained"/>
    <updated>2026-08-22T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">The agent-skills leaderboard has 191 open &quot;request indexing&quot; issues. We shipped a listed skill, hit two silent failures on the way, and wrote down what the index actually does: parsing, repo layout, ranking, and the diagnostic checklist we wish existed.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/what-is-grok-bot</id>
    <title>Grok Bot explained: what it is, what it costs, and what it can reach</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/what-is-grok-bot"/>
    <updated>2026-10-02T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">xAI&apos;s Grok Bot is an AI teammate with its own cloud computer that signs into your apps by driving a browser. What it does, what it costs, why it needs no integrations, and what we found when we asked one to publish a page. Tested hands-on.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/what-is-chatgpt-sites</id>
    <title>What is ChatGPT Sites? Plans, cost, and the 3 real limits</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/what-is-chatgpt-sites"/>
    <updated>2026-09-30T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">What ChatGPT Sites is, who can create one, what it costs, and the three limits we hit testing it from London: no gate a client passes without an account, no API, and beta usage caps.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/share-chatgpt-site-with-client</id>
    <title>How to share a ChatGPT Site with a client</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/share-chatgpt-site-with-client"/>
    <updated>2026-09-30T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">ChatGPT Sites now has three audiences: your workspace, named people you invite by email, or the whole internet. The invited client still signs in with a ChatGPT account. What the options are after the September 2026 private-sharing update, and when you need a different tool.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/chatgpt-sites-private-sharing</id>
    <title>ChatGPT Sites private sharing: who can open an invited Site</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/chatgpt-sites-private-sharing"/>
    <updated>2026-09-30T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">ChatGPT Sites can now be shared privately with named people outside your workspace (11 September 2026). What the invite does, why the viewer still has to sign in with a ChatGPT account, and the account-free option when the reader is a client.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/chatgpt-sites-usage-limits</id>
    <title>ChatGPT Sites usage limits: what the 50% warning means</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/chatgpt-sites-usage-limits"/>
    <updated>2026-09-11T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">ChatGPT Sites is a public beta with plan-specific limits on sites, storage and visits, and no way yet to buy more. What happens at the limit, what users report, and how to keep finished pages online without spending Sites quota.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/chatgpt-sites-examples</id>
    <title>ChatGPT Sites examples: 40 real sites from the first three months</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/chatgpt-sites-examples"/>
    <updated>2026-09-30T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">Forty real ChatGPT Sites examples, the 80 in the awesomesites.ai gallery at launch, how to get a Site listed, and the client work no public list can show.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/delete-chatgpt-site-free-usage</id>
    <title>How to delete a ChatGPT Site, and whether it frees up usage</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/delete-chatgpt-site-free-usage"/>
    <updated>2026-09-11T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">Deleting a ChatGPT Site takes four clicks and cannot be undone. Whether it frees your beta usage is less clear: one user deleted twelve Sites and stayed blocked. The steps, what deletion does and does not free, why usage does not reset weekly, and the levers that reduce it.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/stop-codex-publishing-to-chatgpt-sites</id>
    <title>Codex keeps publishing to ChatGPT Sites. Here is how to stop it</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/stop-codex-publishing-to-chatgpt-sites"/>
    <updated>2026-09-11T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">Codex reaches for ChatGPT Sites whenever a task produces something viewable. The AGENTS.md line that stops it, why the word &quot;website&quot; triggers it, and how to give Codex an explicit publish tool that is private by default.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/do-small-agencies-use-client-portals</id>
    <title>Do small agencies actually use a client portal? What agency owners say</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/do-small-agencies-use-client-portals"/>
    <updated>2026-09-13T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">Mostly no. Agency owners and freelancers compared notes this week and the answers were email, Drive, Slack and WhatsApp, plus one rule: the portals that survive are read-only views of work the team already tracks. What clients actually want, and the lighter pattern.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/claude-artifact-too-large-to-share</id>
    <title>Claude artifact too large to share: the error, the limit, the fix</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/claude-artifact-too-large-to-share"/>
    <updated>2026-09-13T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">Private viewing works, public sharing fails with &quot;This version can&apos;t be shared publicly.&quot; Anthropic documents no size limit, but large artifacts hit one around 16 MiB. What causes it, how to shrink the page, and how to share the full-size version on a private link.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/monthly-client-reports-without-the-deck</id>
    <title>Monthly client reports without the deck: the page that replaces the PowerPoint</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/monthly-client-reports-without-the-deck"/>
    <updated>2026-09-13T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">An agency spending ten hours a month on report decks asked for a better way. The answers: drop the static deck, give each client a live view and a short written narrative, and separate the numbers pull from the human &quot;why&quot;. How to do that as one private page that updates every month.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/proposals-never-opened</id>
    <title>Your client didn&apos;t skip the proposal. They never opened it.</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/proposals-never-opened"/>
    <updated>2026-09-23T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">Thirty days of first-party reading data from 375 client pages: once a page is opened, 84% of sessions get halfway and 70% reach the bottom. The bigger loss is earlier: 39% of recent pages were never opened at all. How we measured it, the honest limits, and four ways to get a proposal or report opened.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/send-proposal-with-video</id>
    <title>How to send a proposal that opens on its video</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/send-proposal-with-video"/>
    <updated>2026-09-23T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">Give a proposal or report a one-minute page video, then send it so the video is in the email itself: a poster picture that shows the headline, and a link that opens straight into the video. Step by step in the Stacktree dashboard, how to see who watched, and when to send a Loom as well.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/google-vids-docs-to-video</id>
    <title>Google Vids turns docs into videos. When to send something else.</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/google-vids-docs-to-video"/>
    <updated>2026-09-23T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">Google Vids can now turn a Google Doc, PDF or Word file into a narrated video summary. What it does, who has it, where it fits well, and why a client deliverable you send outside the company may need a different kind of video.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/feedback-is-not-approval</id>
    <title>Feedback is not approval: how agencies close the client feedback loop</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/feedback-is-not-approval"/>
    <updated>2026-09-23T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">Client feedback scatters across email, design comments and chat, and agencies lose clients over it. The fix is one place tied to the exact words and version, a clear close on each comment, and a separate step for sign-off.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/claude-artifact-page-not-found</id>
    <title>Claude artifact &quot;Page not found&quot;: why the link a client sent you is dead, and what to ask for</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/claude-artifact-page-not-found"/>
    <updated>2026-09-17T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">A Claude artifact link that opens as &quot;Page not found&quot; was almost always shared to the sender&apos;s organisation, not to you. The three causes behind one screen, why they hit contractors and agencies hardest, the message to send back, and why &quot;Anyone with the link&quot; is the wrong fix.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/ask-this-page</id>
    <title>Every Stacktree page can now answer questions about itself</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/ask-this-page"/>
    <updated>2026-09-19T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">Ask this page is live: an opt-in question box on any published page. The answer comes from the page only, streams in the page&apos;s own type, and lights up the passage it came from. Where the idea came from, the three decisions that stop it being a chatbot, and the Markdown twin every page now has for the reader&apos;s agent.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/muse-connector-platform</id>
    <title>Meta opened Muse to connectors. Here is what the form asks for, and what we filed.</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/muse-connector-platform"/>
    <updated>2026-09-19T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">The Muse Connector Platform takes third-party connectors for Meta&apos;s personal agent: describe the product, pass a functional, security and legal review, appear in a directory. The three-step form field by field, what a connector is technically, and what Stacktree submitted on 19 September 2026.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/claude-code-publish-artifact-private</id>
    <title>Claude Code wants to publish an artifact: what &quot;new artifacts stay private until you share them&quot; means</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/claude-code-publish-artifact-private"/>
    <updated>2026-09-17T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">The permission prompt says the tool uploads the file to claude.ai, that new artifacts stay private until you share them, and that a re-publish keeps its sharing settings. What each clause means, when Claude Code publishes without asking, who can see the page on each plan, and how to get it to someone outside your organisation without making it public.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/share-claude-docs-slides-outside-organization</id>
    <title>How to share a Claude Doc or Claude Slides deck outside your organisation</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/share-claude-docs-slides-outside-organization"/>
    <updated>2026-09-17T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">Claude Docs cannot be shared outside a Team or Enterprise organisation, and every shared doc needs a Claude account to open. The export routes that get a doc or a deck to a client, contractor or board as a private link with no account, and the one-sentence version from Claude Code.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/what-is-design-in-claude-code</id>
    <title>What is /design in Claude Code? Tested at launch</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/what-is-design-in-claude-code"/>
    <updated>2026-08-18T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">The /design research preview shipped in Claude Code 2.1.234 with no docs. We ran it: artboards land as .dc.html files in your repo and the canvas publishes as a claude.ai artifact.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/what-is-cloudflare-drop</id>
    <title>What is Cloudflare Drop? 60 minutes to claim, then it is gone</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/what-is-cloudflare-drop"/>
    <updated>2026-09-19T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">Drag a folder or zip, get a live workers.dev site with no account. You have 60 minutes to claim it or Cloudflare deletes it. The file limits, the public-by-default URL, and the terms you accept.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/claude-artifacts-public-sharing</id>
    <title>Claude artifacts now share publicly and edit multiplayer (2026)</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/claude-artifacts-public-sharing"/>
    <updated>2026-09-17T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">Claude Code shipped public sharing and multiplayer editing for artifacts on 13 July 2026. What it does, the three things it still cannot do (private gating, your own domain, non-Claude agents), and where a publish primitive fits.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/how-to-add-x402</id>
    <title>How to add x402 payments to your API: what it actually took</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/how-to-add-x402"/>
    <updated>2026-07-09T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">The build guide behind our live x402 endpoint: a real 402 (v1+v2), facilitator settlement, idempotent minting, SKU pricing that cannot bleed you, discovery listings, and the mainnet gotchas.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/x402-in-production</id>
    <title>x402 in production: 30 days of a live paid endpoint</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/x402-in-production"/>
    <updated>2026-07-08T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">Real numbers from a live x402 endpoint: settled payments on four rails, x402scan vs the application ledger, what buyers did after paying, and the gotchas that cost live transactions.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/loop-engineering-paywall</id>
    <title>What happens when an AI agent loop hits a paywall?</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/loop-engineering-paywall"/>
    <updated>2026-06-11T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">Loop engineering says design loops that ship while you sleep. A 402 at 3am is a stop condition you did not design. Two live rails let a loop pay and keep going.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/what-ai-agents-publish</id>
    <title>What AI agents actually publish: data from our first 80 sites</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/what-ai-agents-publish"/>
    <updated>2026-06-14T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">Early aggregate data from Stacktree: 99% of agent-published pages are a single self-contained file, 86% are under 100KB, and over half are password-gated. Agents emit private artifacts, not projects.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/dashboard-speaks-webmcp</id>
    <title>WebMCP in production: how the Stacktree dashboard speaks it</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/dashboard-speaks-webmcp"/>
    <updated>2026-06-28T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">WebMCP lets a page register tools that in-browser AI agents can call. Stacktree&apos;s dashboard now exposes its site actions as WebMCP tools, behind one cmd-K palette.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/agent-publishes-from-the-browser</id>
    <title>Our homepage publishes for you now: an AI agent builds and ships a page, no login</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/agent-publishes-from-the-browser"/>
    <updated>2026-06-23T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">We put a WebMCP publish tool on the public site. A browsing AI agent, or you in plain English, can generate an HTML page and ship it live from stacktr.ee with no sign-in.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/clients-never-log-into-your-portal</id>
    <title>Clients never log into your portal. The login is the reason.</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/clients-never-log-into-your-portal"/>
    <updated>2026-08-29T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">The recurring complaint about client portals is not a missing feature, it is that the client never went in. The category knows, and its own published fix, put the invoice behind the login, gives the game away.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/blog/one-folder-per-client</id>
    <title>One folder per client is right. The client cannot open a repo.</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/blog/one-folder-per-client"/>
    <updated>2026-09-07T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">Agencies are moving client work into repos, one folder per client, with the agent skills sitting beside it. The structure is correct. It runs out at the handover, because a repo is a workshop and the client has no key.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/agent-loop-hosting</id>
    <title>Agent-loop hosting · replace-in-place URLs</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/agent-loop-hosting"/>
    <updated>2026-05-14T00:00:00Z</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">When an agent iterates 30× a session, you do not want 30 URLs. Stacktree gives every artifact one URL the agent updates in place.</summary>
  </entry>
  <entry>
    <id>tag:stacktr.ee,2026:/changelog</id>
    <title>Changelog — Stacktree updates</title>
    <link rel="alternate" type="text/html" href="https://stacktr.ee/changelog"/>
    <updated>2026-09-19T03:51:57+01:00</updated>
    <author>
      <name>Steve Smith</name>
      <uri>https://stacktr.ee/about</uri>
    </author>
    <summary type="text">Dated release notes for Stacktree — what shipped, what changed, what to upgrade.</summary>
  </entry>
</feed>
