By · Founder, Stacktree · Last updated
changelog

What shipped, when, and why.

Append-only release notes for Stacktree. The newest entry is at the top; nothing below it is deleted. Useful for spotting what's new since you last looked — and for AI agents answering 'what changed in Stacktree?' queries with a real source.

Get started free

No card · 3 pages free · about a minute

What is the Stacktree changelog?

A dated, append-only log of releases. Each entry is tagged with a version, a date, and a list of changes labelled feature, improvement, fix, security, or deprecation. The most recent release is v1.25, shipped . The full version history lives below.

v1.25

  • feature Your client’s own AI can read the page. When a client pastes your link into Claude and asks for a summary, Claude can now read it. ChatGPT reads pages on your own domain or a name.stacktr.ee address, but not yet a stacktr.ee/p/ link. On a page with a passcode or email gate, it gets a short note instead and you hear about it on the page’s screen and in the bell, with “Let their AI in” one tap away. A client who got past the gate can use “Copy this page for your AI” at the foot of the page, and you can switch that off page by page. Reads by a client’s assistant are listed apart from opens. Search engines and AI crawlers still cannot index your pages or train on them.
  • feature Forms that answer back. On Solo, Studio and Firm, a form in your page marked data-stacktree-form sends what your reader typed straight to you: an RSVP, a choice between options, an intake form at the end of a proposal. Responses show on the page’s screen. Only the fields the form asks for are kept, and a form that asks for a password, card number or code is refused.
  • improvement An email when a page goes unopened. If a page you sent has not been opened, we now tell you by email as well as on Home, at most once a week and never within a day of another email from us.
  • improvement Checking your own link is not their open. Open Dana’s link yourself to check it, and it no longer says Dana opened it or sends you a read receipt.
  • improvement Your assistant hands you the link first. After it publishes, an assistant connected to Stacktree gives you the link straight away, then asks who it is for so it can make that person their own link.
  • improvement Agents can publish and follow up without an account. An agent can publish with plain JSON, leave your email so you hear when someone first opens the page, check who has opened it, and take it down with the claim token it got back. A request without a key now says how to get one. Our MCP server is listed in the official MCP Registry as ee.stacktr/publish. Personal agents.
  • fix Pages without a head get a title and a link preview. A page uploaded without its own <head> now shows its title in the browser tab and a proper preview when the link is pasted into Slack or a message.
  • security Connected apps. The screen where you connect an app always shows the name that app registered with, so one app cannot present itself as another. Disconnecting an app ends its access even if it was renewing its sign-in at that moment.
  • improvement New guides. What ChatGPT, Claude, Gemini and Copilot allow when you share outside your company, checked against each vendor’s own pages; sending a Gemini canvas to a client; and sending what Poke makes as a private link.

v1.24

  • feature See how closely each client read it. Home, the client list and each client’s screen now say “Read by Dana · 24 min over 8 visits” instead of only “Opened by Dana”, and your own previews no longer count. Reading time is on Studio and up; Solo shows visits.
  • feature Refer a firm. Paid plans get a referral link in Billing. The firm you bring in gets half off its first month, and you get a month of your plan free once they renew.
  • improvement Home says who each page is waiting on. Rows read “Waiting on Dana”, and Copy hands over Dana’s own link. A page with nobody named gets “Add who it’s for”, which names them and copies their link in one go.
  • improvement A quicker first page. Drop a file straight onto Home. On a phone, paste a whole ChatGPT or Claude answer, or choose a file.
  • improvement Send the one-minute version. On Studio and Firm, when a page has gone three hours unopened, the reminder offers to make its one-minute video, which plays on a phone with no sound needed. Once it is ready, copy a follow-up with that person’s own link to watch it.
  • improvement A new look waits for you. Preview a new look for a page and leave it, and it stays on the page’s screen for a week while the page is unchanged.
  • improvement Zips that just work. A zip with everything inside one folder publishes that folder, Mac and Git leftovers are skipped instead of counted, and a lone page not named index.html is served anyway. When a publish is refused, the screen says why, with the sizes.
  • improvement PDFs open on phones. A published PDF gets an “Open the PDF” link for phones that cannot show it inline. Word, Excel and PowerPoint files are turned away with what works instead: export a PDF, or ask Claude or ChatGPT to publish it.
  • improvement Connecting ChatGPT tells you what to say next. The connect screen and the welcome email give you a sentence to copy back into ChatGPT, so your first page is one message away.

v1.23

  • feature Sign-offs and revisions from your assistant. Ask Claude, Claude Code or any assistant connected to Stacktree to request a client’s sign-off on a page, check whether they approved, list who has not opened their link yet, or turn the client’s comments into a revision at the same link. The ChatGPT plugin picks these up with its next update.

v1.22

  • feature Let your client review it with their own AI. Switch on “Let them review it with their AI” on a page and your client gets a button that hands it to ChatGPT or Claude: a review link their assistant can read for two hours, or their named link added as a connector. Their assistant can answer questions about the page and leave comments on exact lines, which reach you marked “via their AI assistant”. It stays off until you turn it on, page by page.
  • improvement Webhooks speak Slack and Discord. Paste a Slack or Discord webhook URL in Settings, Webhooks, and comments, opens and sign-offs arrive as readable messages: who it was, the quote, what it is on, and links back to the page. A comment from a client’s assistant says so. Set it up, with Linear and GitHub too.
  • improvement A ChatGPT Dot can keep your client’s report current. A Dot uses the plugins on your ChatGPT account, so with Stacktree installed it can update the weekly report at the link your client already has, read their comments and tell you who opened it. The recipe, with a prompt to copy.

v1.21

  • feature Stacktree is in ChatGPT's plugin directory. Open Plugins in ChatGPT and search for Stacktree, or go to its listing, then install it and connect your account. Ask ChatGPT to publish what it writes, on the web, desktop or phone, and you get a private link back. How it works.

v1.20

  • feature Pages your client opens stay up. Free pages last 7 days. Once someone else opens one, it stays up for 30 days after their latest visit, up to 90 days in total. The page's screen tells you it was kept up and the new date it comes down.
  • feature Webhooks. Add a URL in Settings and Stacktree calls it when a page is first opened, when a named recipient opens their link, when someone comments or signs off, when a page you sent has not been opened, and before a page expires. Every plan includes at least one.
  • improvement Stacktree is in Anthropic's plugin directory. The plugin brings the MCP server and eight skills to Claude Code, Cowork and the Claude apps. In Claude Code, run /plugin marketplace add stevysmith/stacktree-skill, then /plugin install stacktree@stacktree-skill.

v1.19

  • feature Say who it's for before you publish. The composer now starts with their name and company, both optional. The button becomes "Publish for Megan", and the success screen leads with Megan's own link, so her opens come back with her name.
  • feature See what nobody has opened yet. A page nobody but you has opened an hour after you sent it, or a named link its person has not opened, is flagged on Home, on the page's screen and in the bell. The flag clears the moment they open it.
  • feature Update it instead. When you publish something that looks like a new version of a page you have already sent, with the same title or the same client, we name that page and offer to update it at the same link. Your client's link keeps working, and on Free the page limit points you to the page to update rather than a new one.
  • feature Ask for sign-off. Switch on sign-off on a page and each person you send it to can approve the whole page or go section by section, with a note. Every answer is recorded against the version they read, and the page's screen shows who approved what and what still needs a change. It is a record of approval, not a legal e-signature.
  • improvement Email gates take named people. Alongside whole companies, an email gate can now let in particular people: type dana@acme.com next to partner.com.
  • improvement Notes you leave on your own page no longer send you a comment email.
  • security Safer addresses and claims. Names that look like ours, such as pay, billing or sso, can no longer be used as a page's address. Claiming a page published without an account now asks you to confirm. A protected page opens only as a page, so another page cannot read it in the background. Links that carry access, such as a private link or a claim link, are no longer included in our analytics.

v1.18

  • feature Start the next one from the last one. Reuse, beside Edit on a page's screen, makes a new page from one you have sent. Use for another client keeps your details and empties the client's. Next month's report, on a report from our monthly report template, moves its dates and edition on a month. Both open in Make it yours and publish at a new link, so the page your client already has stays as it is.
  • feature Send the portal, not just the page. When a client's portal is on, the link you copy after publishing, and the named link on a page's screen, now lead to their portal: this page and everything else you have sent them, at one address they keep. Put a person's name on that link and every page they open from the portal comes back against their name. Each page filed under them now ends with a link back to all their documents.
  • feature See which clients have looked. Spaces has a new This month view: what is sent but not opened yet, who has had nothing from you in 30 days, and who opened something. Each client's screen shows when you last delivered, who last opened something and when, and how often their portal was visited in 30 days. A name is always shown with the time of that same open. Who opened what, and portal visits, start on Solo.
  • feature The access email comes from you. When a client asks for a link at an email gate, the email now arrives from "Your Agency via Stacktree", with your logo and your colour on the button. It uses the business name in your brand kit, from Solo, and has no reply address, so clients reach you the usual way. If the gate turns an address away, it stays in the box to correct.
  • improvement See who sent each page. A page published or updated with an API key or a connector now says which one, as "Sent by" on your pages list and the page's screen. On one shared login, give each account manager a labelled key under API keys in the account menu to see who sent what. The label stays on their pages after you revoke the key.
  • improvement Edit catches an answer with part of the page missing. If ChatGPT or Claude sends your page back with a section left out, or a note such as "rest of the page unchanged", Edit says what is missing and saves nothing until you paste the whole page or press Save anyway. Pictures built into the page, like your logo, no longer come back broken.
  • improvement A client's passcode, on each of their pages. On a page filed under a client with a passcode or an email gate, Who can open it shows that gate as on, links to their screen to change it, and can show and copy the client's passcode. Switching on a client's passcode now makes one from their name. A page's own passcode or email check is now remembered on a device for 30 days, the same as a client's, so a client coming back to a proposal is not asked again every day.
  • improvement Archiving a client now closes their portal. When the work is over, archive the client and their portal and address show a "no longer available" page with nothing of ours on it, while every page still opens at its own link. The plan slot is freed, and switching archive off reopens them when your plan has a slot free. Clients archived before this change keep serving until you close them from their screen.
  • fix After publishing a page for a client, the button to send them something else now opens a fresh page filed under that client. It used to leave the page you had just published on screen.

v1.17

  • feature Your brand on what your clients see first. Add your business name, logo and colour under Your brand in the account menu. The passcode screen, the email check and the client portal then say "From" you, in your colour, with nothing of ours on them. Included from Solo.
  • feature Claude and ChatGPT pages look the way they did there. Pages that load Tailwind, Chart.js, Alpine, Font Awesome or other libraries from cdnjs, jsDelivr or unpkg now run them, so charts draw and styles apply for whoever you send the link to. Stock photos from Unsplash and more font services load too. If something still can't load, the publish screen says what and why.
  • feature Make a template yours before it goes live. Pick a template and fill in your business, logo, client, dates and fees beside a live preview. The sample's names and disclaimers come out, and nothing is published until you press Publish. Publishing the sample as it is still doesn't use a free page.
  • feature Edit any page with ChatGPT or Claude. Press Edit on a page, copy it with a ready-made prompt, and paste the whole answer back. We find the new page in the reply, show you the before and after, and update the same link. You can also paste HTML straight into New page.
  • feature Know who opened it, the moment they do. After you publish, "Who is this for?" makes a link with your client's name on it, copied along with the passcode. On Solo and up you get an email the first time that person opens it.
  • improvement One passcode per client. Once a client has unlocked their portal, every page filed under them opens without another prompt, including pages with a passcode of their own. The client's passcode works on those pages too.
  • improvement Portal thumbnails show the work. A client who has unlocked their portal now sees a preview of each document instead of a lock.
  • improvement Clearer about who can open a page. A page filed under a client with a passcode now says "Protected by their passcode" everywhere, and the success screen shows and copies that passcode with the link.
  • improvement Tables fit on phones in every template, so fees and totals are never cut off.
  • improvement The right plan for how you work. If you send work to more than one client, upgrade suggestions point to Studio, which gives each client their own portal and address, rather than Solo.
  • improvement Page videos only when you ask. A page's video preview is made when you press "Show me mine". Nothing from the page is sent to an AI service before that.
  • fix Link previews for private pages on paid plans no longer show our logo.

v1.16

  • feature One dashboard for everyone. Every account now uses the new dashboard. If you were on the classic one, your pages, clients, addresses and billing are all where you would look for them. Missing something? Tell us with Send feedback in the account menu.
  • feature Choose the order of a client's portal. On a client's screen, pick Newest, A to Z or Your order, and drag pages into place (the arrow keys work too). The portal opens in that order, your client can still switch to by date or A to Z, and new pages arrive at the top.
  • feature Sites written in Markdown. Upload a zip with index.md at the root and every Markdown file in it becomes its own page, with relative links like [Pricing](pricing.md) working as written. Video embeds play inside Markdown pages, and links are the classic underlined blue.
  • improvement Several email domains on one gate. A page or a client space can now admit people from more than one company: type company-a.com, company-b.com into the email gate.
  • improvement Streamable videos play on your pages, alongside YouTube, Vimeo, Wistia, Loom and Descript.
  • improvement Clear resolved comments. Remove a resolved comment, or clear them all at once, from the page's screen. It disappears from your client's view of the page too, so only what is still open stays.
  • improvement Republishing tells you which comments it answered. When you or your agent update a page, any open comment whose words are no longer on it is marked as probably answered, ready to resolve with a short note your client sees.
  • improvement Templates are free to try. Publishing one of our templates no longer uses one of the free plan's 3 pages. It counts once you make it your own.

v1.15

  • feature Comments on the page. Your client can select any words on the page, or click an image or a video, and leave a comment right there. No account needed. You see each one on the page's screen with what it was about, and your agent can read and resolve them too.
  • feature An email when they comment. A few minutes after your client leaves comments, you get one email with all of them and a link to the page's screen. Several comments in a row arrive as one email, not one each. Turn it off with the email switch in Settings.
  • improvement Send the page so it opens on the video. Add #watch to the link and the page opens straight into its video. The page's screen also gives you a poster image of the video to put in your email.
  • improvement Page videos included on Studio and Firm. Studio includes 3 videos a month and Firm includes 10, each with two remakes. On Free and Solo a video is still $19 per page.

v1.14

  • feature Page video. Any page you host can now have a one-minute silent video, made in the page's own design: its colours, fonts, header and way of highlighting. It opens on the page's main point, shows the few facts that matter and ends on what you are asking for. Every line on screen is checked against the page before you see the draft, anything the page does not support is left out unless you keep it, and nothing reaches a reader until you publish. Readers open it from a small card in the corner of the page, with chapters taken from the page's own sections. $19 per page, with two remakes for when the page changes.
  • improvement Page video carries on without you. Making a video no longer depends on keeping the tab open: close it and the video is still made, and the page's screen shows how far it has got when you come back. The page's screen also shows how many readers opened the video and how many watched it to the end.

v1.13

  • feature New pages can get a label. Turn it on in Settings and the dashboard says what each page you publish is (a proposal, a report, a prototype, a test page) and makes a suggestion when one would help: a passcode when a proposal with prices in it sits behind an open link, a word before you send something with placeholder text still on it, and no more nudges about test pages. It is off unless you switch it on, because it sends the page's text once to a decision model; the setting says exactly what is sent and to whom. Pages published without an account are never labelled. What is sent, and to whom.
  • feature Find on this page, by meaning. The question box has a second job: press the magnifier, type what you are looking for, and every sentence that means it lights up, whether or not it uses the same words. Step through the matches with the chip under the box. Same switch as Ask this page, same gate as the page. Browsing agents get it as the WebMCP tool stacktree_find_on_page.
  • improvement Ask this page checks its own citations. After an answer streams in, the passages it pointed at are put to a second model with one question: do they say this? When the answer is no, the note under the answer changes to Check this against the page, and the same mark appears in What came back. The check runs after the answer, so answers are now about a second faster than last week: the yes/no gate that used to run before the model is gone.
  • improvement The publish-time guard has a second opinion. A page that resembles a sign-in form is put to the same decision model; a confident verdict is refused exactly as a rule match is, and an uncertain one publishes and goes to a person. Only pages of that shape are sent.
  • improvement "Opened by" now counts people who opened the page in a browser. A view is confirmed by the page itself, so crawlers, link scanners and the fetches behind a preview no longer count, and your own opens from the dashboard are left out. The number on pages you already have will settle lower over the next month as older views age out. The raw request total still exists in the API; it was never the number to read.

v1.12

  • feature Ask this page. Switch on Let them ask the page and readers get a small question box at the foot of the page, in the page’s own type. The answer streams in, comes from the page only, and lights up the passage it came from; a question the page does not cover gets “That isn’t on this page.” Every question is listed under What came back, unanswered first. Off by default, on every plan, behind the same gate as the page. Browsing agents get it as the WebMCP tool stacktree_ask_page. Feature page, launch post.
  • feature Every page is readable as Markdown at its own address. Send Accept: text/markdown to the page URL, or fetch it with /_page.md on the end, and you get the page with headings, lists, tables and links intact. The HTML advertises it with a Link header and a <link rel="alternate">; passcodes and space gates apply as they do to the HTML. /raw/:token and get_content with format: "markdown" use the same converter.
  • improvement Stacktree is submitted to the Muse Connector Platform, which Meta opened on 18 September, as an MCP connector. In review; the Muse page will say when that changes.
  • fix MCP clients no longer reconnect to the server every second. The GET side of the MCP endpoint used to return an idle event stream that the runtime closed almost at once, which the MCP SDK treats as a dropped notifications channel and reopens on a timer; one idle Claude Code session opened it 109,000 times in three days. It now answers 405, which the SDK handles quietly, and sessions stay connected.

v1.11

  • feature Every update keeps the version it replaced, and you can put any of them back. Updating a page used to overwrite it with no way back, which made the “one link, updated every month” habit riskier than it looked. The page screen now has a Versions section, and agents get list_versions and restore_version over MCP alongside GET /sites/:id/versions. Free keeps the last 5, paid plans the last 50. A restore is itself an update, so the copy you restored over is kept too.
  • fix A connected agent no longer dies at 30 days. Connector access expired after a month with nothing to renew it, so the connection went quiet and the next publish failed with no explanation. Connections now refresh themselves, and if one does expire anyway you get an email and a notice on your dashboard telling you to reconnect, rather than finding out when something you expected to publish did not.
  • improvement Paying returns you to the thing you were doing. The screen after checkout used to be a generic billing page, whatever you had clicked upgrade on. It now names what you just unlocked and links straight back to it, whether that was a passcode, a custom domain or the readers on a particular page.

v1.10

  • feature You can read a page’s passcode back. Setting one stored a hash and nothing else, so the eye icon in settings had nothing to show and the only way to help a client who had lost the code was to set a new one. Passcodes set from now on can be shown to you, over the API at GET /sites/:id/passcode and through the get_passcode MCP tool. Passcodes set before 13 September stay unreadable, because there is no stored copy to read. Nothing changed for viewers.
  • improvement Agent tools take a pasted page URL wherever they take an id. Copying a link out of the dashboard and handing it to an agent used to fail as a not-found id, which is the most obvious thing anyone would try.
  • feature Publishing can record which agent did it and what the person had asked for. Send agent_context with a publish and the client name, agent type and originating query are kept with the page.

v1.9

  • feature A redesigned dashboard, built around the page rather than the file list. New accounts land on it; if you already had an account you stay where you were, with an invitation to try it and a way straight back. It leads with the single next thing worth doing, and the homepage examples are now templates you can publish from.
  • fix Buying a second plan no longer bills you twice. Upgrading from one paid plan to another created a new subscription and left the old one running. The new plan now replaces the old one, with the difference prorated and a final invoice for the plan you left.
  • improvement Upgrading opens checkout where you clicked, rather than dropping you on a grid of four plans to choose from again.
  • fix The first-run screen stopped showing developer setup to people publishing for clients. It was matching the letters cli inside the word client.

v1.8

  • fix A page published from a template now actually lands in the client space you started from. Naming a space and choosing Create and add the first page created the space, published the page, and quietly left the two unconnected, so the space stayed empty and the page had no client on it. Pages published this way from now on are filed correctly; anything already published can be filed from its own page.
  • fix The signup code now says where it went. Entering your email gave you six empty boxes and a resend countdown with nothing naming the address the code had been sent to.
  • improvement Marketing pages no longer wait on JavaScript to become readable. Headlines, copy and buttons were starting invisible and fading in once a script had run, which meant a slow connection could show an empty page. The words are there first now, and the animation is a bonus on top.
  • improvement When the free plan runs out of pages, the upgrade appears where you clicked instead of a screen below it.
  • improvement Publishing for a client says whose page it is. The screen is titled for them and tells you it will be filed under them, rather than showing a generic New site one step after you named the client.
  • improvement The buyer-facing pages are one design again. The pages that explain client delivery, pricing and client spaces had drifted into two different looks with two different navigations, which is a strange thing to meet on the way to paying for something.
  • feature Every page has a markdown twin at <page>.md, and each page advertises it. Agents that do not set an Accept header can now read the markdown by guessing the obvious URL, which is what they were already trying.
  • feature /mcp works on the main domain, not just the API host. Handing a client the words “stacktr.ee” used to end in a 404 on the first thing it tried.
  • fix Guessing a file that does not exist returns a 404 rather than 200 and an empty shell. Paths like /openapi.yaml were answering as though they were real pages, which is the worst possible answer for anything reading the site programmatically.

v1.7

  • feature Paying brings your expired pages back. Upgrade and every page of yours that came down on the free window returns at the same link, with no deadline on it, so the link you already sent starts working again. The expiry email said upgrading would keep a page up; now that is true of the ones already gone, not just the one in front of you.
  • feature Publishing now tells you the date the link dies, and whose page it is. The page you just made says when it stops working, what the person you sent it to will see after that, and what keeps it up, instead of printing an expiry timestamp as a detail among others.
  • improvement The read receipt names the deadline too. When someone opens your page, the email telling you now also says when that link comes down, because that is the moment the date starts to matter.
  • fix The activity digest had stopped reaching anyone who joined after the start of August. Newer accounts are first in the queue now, so the weekly summary of who read what reaches the people most likely to be waiting on it.
  • improvement Every wall in the product now names the right plan at the right price, and records itself when it fires, so we can tell the difference between a wall nobody meets and a wall nobody wants.
  • improvement The older free plan moves to the current one on 16 October, and everyone on it gets a note first. Pages already published stay up at the same links with no deadline, and nothing is deleted.

v1.6

  • feature A page can be updated with nothing but the credential it already gave you. Publish without an account and the response carries a claim token that lets you replace the content at the same URL, no key and no signup, for as long as the page lives. An agent with only curl can now iterate on a page instead of publishing a new one each time.
  • feature Pay in Solana as well as Base. Both front doors settle against whichever rail the payer actually used, and the paid page comes back with its settlement receipt attached.
  • feature Three more MCP tools, and a tool list generated from the server itself so the documentation cannot drift from what the server accepts.
  • improvement Expiry is now something an agent can read rather than infer, and a retried publish can no longer produce two pages.
  • feature Job-shaped skills are served at /.well-known/skills/, so an agent can install what it needs to publish without a human copying a snippet.

v1.5

  • feature A page that comes down is recoverable for 30 days. Expiring or deleting used to be final; now the page is retired, the link goes dead for everyone holding it, and you can put it back at the same address with its id, token, slug and read history intact.
  • feature Send a page from the page. A composer for the handoff, a table of who opened it and how far they read, and somewhere for what they said back.
  • fix A verified domain now covers the domain itself, not only its subdomains. Claiming example.com and then trying to use example.com was asking you to verify something you had already verified.
  • fix Passcodes are on every plan, free included, and the documentation now says so. Only the company-email gate is paid.
  • improvement MCP accepts an API key as well as OAuth, so a server-side agent can connect without a browser in the loop.
  • feature A hub of worked recipes at /workflows: the report, the dashboard, the rescued artifact and the agent self-report, each with the code to run it.

v1.4

  • feature Client work has a home in the dashboard. Spaces sits in the nav and lists every client, project or team you publish for, each one showing the single next thing that would move it forward — file the first page, turn on the portal, add an address. Until now a space was only reachable once you had already filed a page under it.
  • feature Set a client up before you have anything to send them. New space names the client and takes you straight to publishing their first page, so a space is never left sitting empty.
  • improvement They are called spaces now, not clients. A space is usually a client, but four of the first six were named after the owner’s own company or an internal project, so the narrower word was getting in the way. Nothing changed for agents: client is still what you pass when publishing.
  • feature Share links now tell you who opened them. Put the recipient’s name on a link and every open comes back against that name, with when they opened it and how far they read. One name turning up on several devices means the link was passed on — you see that rather than guess at it. Names start at Solo; time and scroll per person are part of Studio’s engagement analytics.
  • feature Personalise one link for a whole send. Add ?to={{contact.name}} to any page URL and your CRM fills in the name per contact, so a mail merge to 500 people needs one link and no setup. ?name= does the same thing. Opens land against the name the same way a named share link does.
  • feature Video engagement. Publish a video with the page and you get how many people pressed play, how far they watched on average, who finished it, and which recipient watched what. Players embedded from other sites run in their own frame and cannot be measured; video you publish here can.
  • feature Take a page offline without deleting it. One switch in the dashboard, or disabled over the API. The link goes dead, the content, view history and share links all stay, and switching it back restores the page exactly as it was — for the offer that has closed but that you would rather not throw away.
  • improvement Google Fonts and video embeds now work on published pages. Loom, YouTube, Vimeo, Wistia, Descript and Calendly all render under the strict security policy, and so do Google Fonts. Remote scripts and remote images stay blocked, which is what the policy was there for. Pages you published before today fixed themselves — there is nothing to republish.
  • improvement A publish that contains something the security policy blocks now says so. The response carries a warnings array naming what will not render and how to fix it, instead of returning success and serving a page with a hole where the video should be.
  • improvement Pages can report their own state back to you. Call window.stacktree.signal(name, value) from a published page — how far through a checklist someone got, which options they opened — and it arrives with that page’s engagement.
  • improvement Burn-after-read now warns you while it is switched on. It deletes the page after the first open, which is an expensive thing to leave on by accident on a client deliverable.

v1.3

  • feature Client spaces. Publish with client: "Acme" and the page files itself under that client — the space is created on first use, with no setup call. Filing is free on every plan; grouping shows up in your dashboard straight away.
  • feature Give a client their own address. Bind acme.youragency.com to a space and it serves a generated client portal at the root, with each deliverable at its own path. The bookmark never changes; the work accumulates behind it. Solo includes 1 client space, Studio 10 and Firm unlimited.
  • feature One passcode for a whole client area. Set a passcode or an email-domain gate on the space and every page served for that client inherits it, wherever the link came from. Your client enters it once and stays in for 30 days. A page can still carry its own gate, which overrides the space.
  • improvement The passcode prompt is now a page, not a browser dialog. On your own domain it carries no Stacktree branding at all — the client sees your address and nothing else. Basic auth still works for curl and agents.
  • feature Parent-domain claims. Verify youragency.com once and add a single wildcard CNAME; every client hostname under it afterwards skips the per-hostname DNS dance.
  • feature The design pass, in the dashboard. One click rebuilds a published page to Stacktree’s design standard, previews the result, and applies it only if you like it. Single-page HTML, up to 100 KB.
  • feature Six new MCP tools, eighteen in total: set_client, list_client_spaces, create_client_space, update_client_space, delete_client_space and get_design_guide. publish_html takes client and client_path.
  • improvement list_sites is paged. It returns has_more with a cursor, so an account with hundreds of pages can be walked in full instead of stopping at the first 200.
  • fix Setting an expiry over the API now tells you what you actually got: the response carries expires_at and expiry_clamped, so asking for "never" on a capped plan no longer reads as success.

v1.2

  • improvement Free is now a trial rather than a tier: 3 pages in total (deleting one does not give the slot back) and every free page comes down 7 days after you publish it. Everything that makes a page good is still there on Free: a private unguessable link, the publish API and MCP, share links, and on-page client feedback.
  • improvement Passcodes and email gates are now on the paid plans, from Solo at $19. Free pages that already carry one keep working; new ones start at Solo.
  • improvement Viewer numbers start at Solo. Free tells you a page was opened, without the count. Nothing is blurred or faked.
  • improvement The "Made with Stacktree" footer comes off on every paid plan, Solo included. You pay, it is your page.
  • improvement Solo holds 25 pages at a time and includes 1 custom domain; Studio is unlimited pages with 10 domains and engagement analytics; Firm is 25 domains, 1 GB a page and uncapped publishing. Existing subscribers keep their current plan and price.
  • improvement Agent unlocks repriced: make a page permanent is $5 (was $1) and higher limits are $25 / 30 days (was $5). Custom domain stays $5 / 30 days.

v1.1

  • feature New plans for client work: Solo ($19), Studio ($79) and Firm ($249), priced in dollars with one flat price per plan. Studio removes Stacktree branding entirely and adds engagement analytics and on-page client feedback. Existing subscribers keep their current price, nothing changes without your say-so.
  • feature Seven live example deliverables, each a fictional firm with its own identity: technical due diligence, brand audit, monthly performance report, strategy review, client proposal, market research review, and a keyboard-navigable board deck. Every one is a real published Stacktree page.
  • feature Upload a PDF, image, or text file and it publishes as a proper viewing page instead of a bare file link. Office formats get a clear message to export as PDF first rather than a dead page.
  • feature On-page reactions can now be switched on at publish time, in the dashboard upload options or with reactions on the REST API.
  • improvement Shared links look the part: new link-preview cards for the homepage and for published pages, including a discreet lock card for passcode- and email-gated deliverables.
  • improvement Pricing comparison now works properly on phones, and the plan table says exactly what each plan includes. No asterisks.

v1.0

  • feature Reactions on shared pages: viewers react with 🔥 ❤️ 👍 🎉 👀 and can leave a private note, right on the page, no account needed. Reactions animate in live when more than one person is looking. Opt-in per site.
  • feature Activity feed and a notification bell in the dashboard: who opened, reacted to, and commented on your pages while you were away, newest first, with an unread count.
  • feature Optional daily email digest: a once-a-day summary of the reactions, notes, and opens your pages picked up. Off by default, with one-click unsubscribe.
  • feature How it's read (Pro): aggregate engagement for any page, including typical time on page, scroll depth, read-to-end rate, and an attention heatmap that shows where readers lingered. It is aggregate and non-PII, with no recording and no session replay.
  • improvement Same capability model as feedback: reactions POST to /reactions/:token (public, rate-limited); owners read the aggregate at GET /sites/:idOrSlug/reactions and GET /sites/:idOrSlug/engagement.

v0.9

  • feature Viewer feedback lands in the loop: the on-page Agentation toolbar now sends annotations to the server, so comments viewers leave on a page are stored with the site instead of staying in the tab.
  • feature Feedback panel in the dashboard: owners see every annotation per site (comment, annotated element, selected text, intent, severity), with unresolved counts up front.
  • feature Two new MCP tools close the loop: list_feedback reads the annotations (unresolved first) and resolve_feedback marks one addressed, with an optional note. Enable the toolbar with set_agentation, viewers annotate, the agent reads with list_feedback, fixes the page in place with update_site (same URL), then calls resolve_feedback. The tool surface was twelve calls at this release.
  • improvement REST equivalents on api.stacktr.ee: GET /sites/:idOrSlug/feedback (owner), POST /feedback/:id/resolve, DELETE /feedback/:id.
  • security Feedback posting is capability-gated by the unlisted token and rate-limited.

v0.8

  • feature WebMCP on the public site: the homepage and every landing page now register stacktree_publish_html on document.modelContext, so an in-browser AI agent can generate an HTML page and publish it to a live link with no sign-in. Live in the Chrome origin trial. How it works.
  • feature Natural-language publishing in the ⌘K palette: describe a page in plain English and a model writes a complete, considered HTML document and publishes it. Bring-your-own-key (Anthropic, Google, or OpenAI), stored only in your browser; the plain publish tool needs no key. The story.
  • feature A Fast / Premium speed toggle for the in-page generator, plus live progress while it works.
  • security The public WebMCP tool set is deliberately small and side-effect-light: anonymous, unlisted, ephemeral, rate-limited publishing plus read-only navigation. Account-scoped actions stay behind the dashboard sign-in.

v0.7

  • feature Command palette in the dashboard: press ⌘K to run any site action (set a password, set an email gate, set expiry, mint a share link, delete) from a schema-generated form, or jump to any page. Built on the open-source agentk library.
  • feature WebMCP: the same tool catalog registers on document.modelContext where the browser supports it (Chrome origin trial), so in-browser AI agents can call dashboard actions directly. Why we shipped against a moving spec.

v0.6

  • feature Slack app: Host on Stacktree message shortcut. Click ⋮ on any message with an .html or .md file (channels or DMs) and the file becomes a private link, posted back into the conversation. Installing mints the workspace its own free identity, no Stacktree account needed. Details.
  • feature Workspace-to-account linking: optional, offered after install and at the free-tier cap; migrates the workspace's existing sites into your dashboard.
  • feature /skills, the skills collection: publish, MCP connect, website-builder migration, and agent payments, each installable in one command.
  • improvement Website-builder migration guides: the export landscape across five builders and the Webflow deep dive, paired with the open-source website-builder-migrate skill.

v0.5

  • feature x402 payments on Base mainnet (v1 and v2): an agent can buy a persistent identity for $1 and unlock features à-la-carte with USDC, gasless, no account. How it works.
  • feature Scan-to-pay: when an agent hits a paid action with no wallet, it prints a QR in the terminal; a human pays by card in two taps and the agent continues mid-task.
  • feature Prepaid balances: pay above the price (up to $20) and the surplus becomes credit that future paid actions draw from silently; one approval covers a whole run.
  • feature À-la-carte unlocks over x402: make-permanent ($1), custom domain ($5 / 30 days), higher limits ($5 / 30 days). Catalog at GET /unlock.
  • improvement Entitlement enforcement for custom domains and higher limits across the publish path.

v0.4

  • feature Pricing page and machine-readable /pricing.md + /pricing.txt for AI-agent buyers.
  • feature Glossary page with DefinedTermSet schema for MCP terminology.
  • feature Changelog page (this one) — append-only release log.
  • improvement Robots.txt now explicitly invites every major AI crawler (GPTBot, ClaudeBot, PerplexityBot, OAI-SearchBot, ChatGPT-User, anthropic-ai, Claude-Web, Google-Extended, Applebot-Extended, and more) to read the marketing surface.
  • improvement Person schema strengthened: founder image, four canonical sameAs profile URLs, six knowsAbout entries.
  • improvement Publisher schema upgraded to ImageObject across every Article-style page.
  • improvement Speakable JSON-LD selectors added; first-50-words Definition blocks are now the canonical lift target for Perplexity and Google AI Overviews.
  • improvement TableOfContents + h2 anchor IDs on every long-form blog post.
  • improvement Hub-and-spoke internal linking via header + footer sitemap; every page reachable in ≤1 hop from the homepage.

v0.3

  • feature Custom domains on Pro and Agent plans via Cloudflare for SaaS (DNS-only CNAME; Stacktree provisions TLS).
  • feature Idempotent re-add for custom domains — re-adding a hostname no longer 409s.
  • improvement Domain UI surfaces the DNS-only CNAME gotcha with a how-it-works callout.

v0.2.5

  • feature set_email_gate MCP tool — restrict viewers to an email domain (e.g. @yourco.com) with magic-link verification.
  • security Default Content-Security-Policy now ships on every served site; opt-out per-site for trusted-script use cases.

v0.2

  • feature Production launch on stacktr.ee. Apex moved off Render to Cloudflare Workers.
  • feature Streamable HTTP MCP transport at https://api.stacktr.ee/mcp with OAuth 2.1 + Dynamic Client Registration.
  • feature Anonymous first publish — no account required for the first 24-hour link.
  • improvement X-Robots-Tag: noai, noimageai on every per-site response so user-hosted content stays out of AI training corpora.

v0.1

  • feature Initial MCP server (stacktree-mcp on npm) with seven tool calls: publish_html, update_site, set_expiry, set_password, list_sites, delete_site, plus auth.
  • feature Replace-in-place via update_site — the same URL across every revision.
  • feature End-to-end encryption (e2e: true) — AES-GCM in the browser, key in URL fragment.
Keep reading

Related guides

Pin the changelog.

It updates whenever we ship. Subscribe via the npm package release feed for code-side changes.

Sign up free →