Changelog
User-facing changes to ShareMyPage, newest first.
Each day's user-facing changes, newest first. Same-day iterations are grouped into the change they add up to.
For the highlights and why they matter, see Releases.
2026-08-13
-
Pages now shows your folders and your pages in one list, newest first, so the thing that changed most recently is the thing at the top. Until now the tab opened with every folder you have, in alphabetical order, and only underneath them came a list sorted by date, containing just the pages that were not filed anywhere. That got worse the more you organised: in a workspace with thirty two folders you scrolled past all of them to reach twenty five leftovers, and a page edited ten minutes ago inside a folder moved nothing on the screen at all. A folder now takes its place in the list from the newest page inside it, so it rises when its contents do, and it only counts pages you are allowed to see. Nothing about folders themselves has changed: you open one the same way, filing a page into one by dragging still works, and renaming and deleting are still on the folder itself.
-
A folder now shows you what is inside it instead of just its name. Each one carries previews of its three most recently changed pages, names those pages underneath, and says how many it holds and how long ago it last changed. The old folder tile told you a name and a count, which meant that finding anything required opening folders one at a time to remember what you had put where. In the compact grid the previews step aside and the names remain, and in the list view a folder becomes a single row, so the denser layouts stay dense.
-
The button for making a new folder now sits at the front of that list, since the row of folders it used to live at the end of is gone.
instead of leaving you on the same screen. The code was accepted and the address really was verified, but the page kept showing the verification card and the button kept spinning, so the only way forward was to reload the browser a minute later and start again. Two things caused it: we hold a short-lived copy of your account details to avoid asking our sign-in provider about you on every single page load, and that copy still said "not verified" for up to a minute after you had just proved otherwise. And the button never returned to rest after succeeding. Verifying now clears that copy straight away, so the page that follows knows what you just did.
-
The invitation page no longer asks you to create an account you already have. If your email address had not been verified yet, the page could not tell you apart from a stranger, so it showed the same "Create account to join" it shows a signed-out visitor. Following that took you round the same loop again. It now recognises that you are signed in, says which address is waiting to be verified and which workspace it is holding up, and lets you verify right there. Once you do, the join button appears in place.
-
If your email address is not verified, the app now says so and helps you fix it, without getting in your way. It is possible to sign up, set a password and start using ShareMyPage without ever being asked to confirm your address, and three things quietly do not work in that state: colleagues on your domain do not join your workspace automatically, you cannot accept an invitation to somebody else's workspace, and your own entry in the member list has no email address against it. None of that announces itself, so the first sign of trouble was an invitation that would not go through for reasons nobody could see. There is now a band across the top of the app naming the address and what it is holding up, with a button that sends you a code and a box to type it into. Everything else stays available: nothing is blocked, no screen is withheld, and you can carry on and deal with it later. It has no dismiss button, because a warning you can dismiss is one you will have dismissed by the time it matters, and it disappears the moment the address is confirmed.
-
Accepting an invitation works when you do not already have an account. Clicking "Create account to join" took you to sign-up, and then dropped you on a screen asking you to create a workspace of your own, with no sign of the invitation you had just accepted. The link back to the invite was in the address of the sign-up page but nothing read it, so once you signed up it was gone. It is read now, and you land back on the invitation. Signing in has the same fix, for anyone who already had an account.
-
If the link is lost anyway, the invitation now finds you. Invitations were only reachable through the token in their link, so opening the mail on your phone and then signing up on your laptop lost it just as completely. When you arrive with nowhere to go, we now look for an invitation addressed to your verified email and take you to it, instead of offering to create a workspace. You still choose whether to join; nothing joins you to somebody's workspace on your behalf.
-
Accepting an invitation when your account is already in another workspace now tells you so. It used to appear to work: the invitation was marked as used, you were sent to a dashboard, and you were still in your original workspace, with the link now spent. An account belongs to one workspace, so this is a real conflict and it now says so, and the invitation stays valid for you to use with a different address.
-
The share dialog now tells you when an admin has turned off sharing by link, instead of letting you choose it and then failing. A workspace admin can stop members from making pages and presentations openable by anyone holding the link. The rule was being enforced, but nothing in the sharing dialog knew about it: "Anyone with the link" and "Anyone with the link + password" sat there looking available, and choosing one and pressing Done gave you "Something went wrong.", which is what we say when something has actually broken, not when you are not allowed to do something. Both are now shown greyed out with the reason underneath, and they are treated as one rule, because a password on an open link is still a link that leaves the workspace. They stay on screen rather than disappearing, so it is clear that public sharing exists and who turned it off. If a page or presentation was already open to anyone with the link when the rule was switched on it stays that way, because switching the rule on deliberately changes nothing that is already shared, and the dialog now says so: you can see that it is still open, and pick something else. Before, that page was a dead end, since even pressing Done without touching anything was refused. The same options and the same explanation now appear on the page settings screen too.
-
The default audience for new pages no longer offers an option your workspace forbids. If you had set "Anyone with the link" as your default and an admin later turned off sharing by link, every upload was refused with the same unhelpful message, and there was nothing on the settings screen to suggest why. That choice is now greyed out with the reason, and a default left over from before falls back to private, so uploading works again.
-
A new workspace now shows you how to add your first page and your first presentation, instead of two cards you did not make and nothing explaining them. Pages and Slides each lay out the ways in: choose an HTML or Markdown file, or let your AI assistant publish for you; describe a deck, bring a PowerPoint across, or start from a blank slide. The demo page and the demo presentation we hand you are still there and still yours to edit or delete, but they no longer stand in for an explanation. They used to do exactly that. Because they sat in the list like anything else, both tabs counted as occupied, and the guidance meant to greet you never appeared at all. The page limit had always known the difference, which is why a brand new workspace could read "0 of 5 pages used" in the header while showing a card right underneath it. Now the rest of the screen agrees with that header. The guidance retires itself the moment you publish something of your own on that tab, and none of it ever blocks you. The demo page's own writing has been tidied up too, in both English and German.
2026-08-11
-
A page's own script can now reach the built-in storage from its very first line, so a page you write yourself keeps what visitors put into it. Every page has a small store for that, and a hand-written page reaches it through
window.smp. It was switched on at the very end of the page, after every script the page itself ships had already run, so a script that checked whether it was there was told no, every time. A script written to fall back on the browser's own storage then fell back for good, and browser storage does not exist inside a page: it is switched off deliberately, so that a page can never reach your account or anybody else's pages. Asking for it does not quietly do nothing, it fails outright, and a fallback written the usual way swallows that failure without a word. So the page would say it had saved each entry and be empty again after a reload. A contraction tracker built here lost every contraction that way, which is the kind of thing that has to be right the first time. The store is now in place before any of the page's own code runs, so a check at the top of a script gets a truthful answer. Polls, forms, checklists and reactions are unaffected and still appear exactly when they did. Separately, a request that gets no answer, which happens on a poor connection, is now retried twice and then given up on rather than leaving the page waiting forever for a reply that is not coming. -
The free plan now fits a small team, and the limit moved from who you are to what you have made. It used to allow one contributor, which meant the wall arrived at the second person: you could share a page with a colleague to read, but you could not put them in your workspace or let them edit anything, and if they signed up with the same work email they were quietly given a workspace of their own instead. Nobody was shown an error, so neither of you found out it had happened. The free plan now allows up to three people in the same workspace, so a small group can work on the same pages together without anyone paying. In exchange the free plan holds five pages rather than an unlimited number. Reading and commenting are still free and unlimited for as many people as you like, on every plan, and the welcome page we seed for you does not count. Nothing is taken away when you reach five: your pages stay live, shared and editable, you simply cannot add a sixth until you upgrade or delete one. Solo and Teams both have unlimited pages, and Teams still has no contributor limit at all.
-
The message you see when you reach the contributor limit now names the plan that actually lifts it. It said "upgrade", and the next plan up is Solo, which has the same three-person limit, so following the advice could have cost you five dollars and changed nothing. It now says Teams, which is the only plan with no contributor limit. The Solo plan card also lists its contributor limit, which it previously did not mention at all.
-
Slides written by an assistant are now checked against your own theme's colours and type scale, and say so when they drift. We already checked that a slide only used the layout classes your theme defines, and warned when one was invented. We never checked the two things you actually notice looking at the finished deck: a colour that is not in your palette, and text that has been shrunk to make it fit. The design guidance we hand the AI has always said not to do either, but nothing read what came back, so on the occasions it ignored that guidance nothing said so. Two warnings now come back with the slide. The first is for a colour that is not one of your theme's own, so a hard-coded value is caught while a colour you have defined passes however it was written. The second is for a font size, font family or width set directly on something the theme already sizes, which is the "make the headline smaller until the paragraph fits" move that leaves one slide looking wrong standing next to the rest. Both are read from your theme rather than ours, so if you have built a brand theme it is your palette and your type scale being checked, not ours. Shadows are left out of it, because a soft grey shadow is ordinary and nobody defines one as a brand colour. These are warnings rather than refusals: the slide is still saved and you are told what drifted. Small targeted edits report them too, which they never did before. Adding a slide and replacing one outright have always returned warnings, but patching a slide, the find-and-replace edit an assistant makes when it is changing one line rather than rewriting the whole thing, returned none. That is the one way of working where drift builds up quietly across a long session instead of arriving as a single obviously wrong slide, so it was the worst place to be saying nothing.
-
Every new workspace now starts with a presentation, not only a page. Slides opened empty for anyone who had not built one yet, which is a strange first impression from the part of the product whose whole job is to show what it can do. New workspaces are now given a short deck called "A quick tour of Slides": eight slides covering presenting from the keyboard, choosing who can open a deck, leaving a comment on the slide it is actually about, and changing a slide by describing the change instead of clicking through it. It is built from eight different layouts in the standard theme, so it doubles as a look at what a deck here can look like before you have made one of your own. It is private to you, it does not count towards anything, and it does not count as a presentation you made, so the setup card on Home still asks you for your first one. Edit it, present it to someone, or delete it: nothing depends on it staying.
-
Home now opens with a short setup card instead of a welcome screen you had to click through before you could reach anything. The card sits at the top of Home, waits, and goes away for good the moment you dismiss it or finish. If the workspace is yours it shows four steps: open the demo page we made for you, publish your first page, connect your AI assistant so Claude, ChatGPT or Gemini can publish straight into the workspace, and invite a teammate. If you joined somebody else's workspace it shows three different ones, because arriving in a workspace that is already full of pages is not the same as starting an empty one: see what your team is sharing, leave a comment, and put something of your own in. Each step ticks itself off from what you have actually done rather than from what the workspace happens to contain, so joining a busy workspace no longer starts you at finished, and the steps you have left stay in front of you until they are done. "Publish your first page" opens a file picker from the card itself, so an HTML or Markdown file you already have is one click from being a page.
-
The old five-step welcome screen is gone from Pages. It was superseded by the setup card now on Home, but the code that showed it there had been left in place, so a brand-new account would see the new card on Home and then still get stopped by the old modal on the very next click into Pages. The setup card on Home is now the only first-run welcome.
-
Finishing sign up now always takes you to Home. Creating your workspace used to send you to the Pages index instead, a leftover from when Home was still being tried out with a handful of accounts; every other way of arriving at ShareMyPage has landed on Home for weeks. There is nothing to notice about this beyond arriving in the right place.
-
Our product analytics now also records how many pages and presentations you have made. A count and nothing else: no titles, no content, no file names. It is there so that when we ask a question inside the product we can ask the people who actually use ShareMyPage, rather than everyone who once signed up, and so that stays true on its own instead of being a list somebody keeps by hand. The welcome page every new workspace is given does not count towards it, since being given something is not the same as making it. The subprocessor list has been updated to say so.
-
Our product analytics now records a little about the account behind a session: which plan the workspace is on, whether you are an admin of it, when you joined, and the workspace id. It records no name and no email address. This is so that when we ask a question inside the product we can tell a paying customer's answer from a free one, and tell our own accounts apart from yours. Previously we could do neither: the last time we asked people how they were getting on, three of the four replies turned out to be from accounts we own, and nothing in the data said so. The subprocessor list has been updated to spell out what is now sent. Nothing about your pages changes. Their content is still never sent to our analytics provider, and the product is still cookieless, so there is still no banner to dismiss.
2026-08-10
-
The pricing headline says what you get rather than what you owe. It read "Free for what you make. Pay for your brand, and your team.", which set out the terms of a deal in the one line that should be putting you at ease, and the only verb aimed at you was an instruction to pay. It now reads "Your pages are free. Your brand and your team are the upgrade." Same offer, same plans, same prices: the paid part is something you move up to rather than something you are told to do. The line appears on the homepage and in search results too, and all three have been changed together.
-
The pricing page is easier to read, and now tells you where to go if a word on it is new to you. The headline was set in a column narrower than the rest of the page, so it broke into four short lines with empty margin either side, and it broke immediately after the full stop in the middle, which is the worst place to split two sentences. It now has the width the sections below it have always had, and breaks where the first sentence ends. The section explaining the AI allowance priced presentations without ever saying what they are or linking anywhere you could find out, which was no use if you arrived from a search engine rather than from inside the product, so there is now a link to Slides in it. The link about connecting your own AI sat at the end of a paragraph and read like the tail of that sentence rather than something to click, and now stands on its own line. The note about buying an extra pack was set as a bordered box with a price in it, which looked like a button that had stopped working, and is now written the same way as the two notes above it.
-
Starting a subscription works again for workspaces whose payment record had gone stale. Every workspace remembers a customer record on the payment provider's side, created the first time somebody opens checkout, and reused from then on. If that record stopped existing, which can happen if it was created against a test account or removed at the provider, checkout had no way to recover: it kept sending the same record back, the provider rejected it, and all you saw was "Could not start checkout. Please try again." Trying again did the same thing, so the workspace was stuck for good. Checkout now notices when the remembered record is gone, quietly creates a new one and carries on to the payment page. Workspaces with a working record are unaffected and keep the one they have, so nothing about an existing subscription, invoice history or payment method changes.
2026-08-09
-
The slide editor now shows how much of this month's AI you have left, and gives you somewhere to go when it runs out. That number only existed on the subscription page before, which meant the first you heard about a limit was an edit that would not run. There is now a small marker beside the AI box. It stays grey and out of the way for most of the month and turns amber once you are down to roughly a quarter of your allowance, so the end of it is never a surprise. You cannot dismiss it, because a warning you can dismiss is one you will have dismissed by the time it matters. When the allowance does run out, the box you type into is replaced, where it stands rather than in a pop-up, by three ways on: move up a plan, buy a one-off pack for this month, or connect your own AI over MCP, which is free on every plan including the free one and never counts against anything. The plan option tells you how many more presentations it would give you this month in particular, worked out from what you have already used, rather than a monthly figure you would have to do the arithmetic on yourself. Nothing else stops: your deck is untouched, and you can still write slides by hand, present and share. The request you were part-way through is kept, so whichever route you take you come back to the same sentence instead of retyping it, and once the allowance is back it runs on its own.
-
Refining a slide with AI now counts against your monthly AI allowance. This is a new cost on something that used to be free, so here is exactly what it is: the allowance has always counted presentations generated with AI and never counted the edits you made afterwards, even though an edit runs the same model and costs us real money every time. One refinement now counts as a quarter of a presentation, which is roughly what it actually costs, so four refinements use up about the same as one new deck. What you get for it is a single pooled allowance rather than two separate budgets: the same number covers generating and refining, and you decide how to spend the month, whether that is all new decks, one deck polished until it is right, or any mix in between. Nothing is taken unless the edit lands on your slide. If the model fails, if it declines because you asked for something it cannot do, if it decides nothing needed changing, or if somebody else saved over that slide while it was working, the refinement is free. One instruction costs one quarter however many passes the assistant makes internally to get it right, so the price never depends on how hard your request turned out to be. Editing slides by hand, presenting and sharing are not part of this and never run out. Neither is your own AI connected over MCP, which runs on your model and your bill rather than ours, and stays unmetered.
-
The pricing page no longer asks you to do arithmetic before you can compare two plans. Every plan card used to carry a line like "15 built-in AI slide decks / month", which meant that to work out whether the $5 plan or the $10 plan suited you, you first had to learn what a deck was worth and then hold four numbers in your head. Four of the eight questions in the FAQ existed only to explain that vocabulary. The cards now describe what you actually get, pages, your brand, and your team, and every AI number has moved into one section of its own further down, where it is explained once next to the numbers that use it. The plans and the allowances are unchanged; only where the numbers live has changed. The same section now also says plainly that connecting your own AI over MCP is uncapped and free on every plan, including Free, which was previously a small note off to one side.
-
The free plan now includes six AI presentations a month instead of three. Three is enough to try it once and see that it works, and not quite enough to find out whether it fits the way you actually work, which is a strange place to stop someone. Six gives you room to build something real, get it wrong, and build it again before deciding whether any of this is worth paying for. It applies to every free workspace from today, with nothing to do and nothing to claim. Everything else about the free plan is unchanged, and presentations built by your own AI connected over MCP still do not count against the allowance at all.
-
Your AI allowance now shows what you spent it on, not just how much is gone. It was a single solid bar and one running total, which was accurate while the only thing drawing on the allowance was building a whole deck, and stopped being enough once refining an individual slide came out of the same pot: one bar had to stand for two quite different kinds of work, and there was no way to tell from it whether you had built four decks or refined sixteen slides. The bar is now in two parts, decks built on one side and slides refined on the other, with a legend underneath that names both and how much is left. Everything is still counted in decks, because four refinements come to the same as one new deck and there is no sense in making you learn a second unit to work that out: the page says "4 decks' worth left of 15" and means exactly what it says. What leads is still the number left rather than the number used, since that is what you opened the page to find, and the reset date, the time it resets in UTC and the count of anything still generating are all where they were. Two things are new along the bottom: a reminder that building with your own AI over MCP is unlimited and never counts against any of this, and a shortcut to buy a pack, which takes you to the same purchase that was already there, confirmation box and all. A pack is added to the month you buy it in and resets with everything else.
-
There is now a daily ceiling on how many AI slide edits one workspace can make. There was already a limit on how fast a single person could edit, ten a minute, but nothing at all on how many a workspace could make in a day, which meant a stuck retry loop or a leaked token could quietly spend the entire month's AI budget in an afternoon. The ceiling is set at two hundred a day, roughly six times the most anyone here has ever done in a single day, so ordinary work will not come near it. It is the same on every plan, because it is there to stop runaway usage rather than to sell you anything, and if you do hit it in normal use the message says so and we will raise it.
-
Building and editing slides with AI is faster, because we stopped sending the model the same instructions from scratch every single time. Every AI call carried a long set of design rules describing how a slide in your theme is allowed to look, and those rules are identical on every call, yet they were re-read and re-charged for each one. They are now cached: the first slide of a deck pays to store them and the rest of the deck reuses them, which is roughly nine tenths of what each of those calls was reading. Nothing about the decks themselves changes. It is mostly a cost change on our side, and the visible part is that there is less for the model to chew through before it starts writing.
-
The homepage now says what it is in the first line you read. It opened with "Share the page, not the file.", which is a fine line once you know what this does and tells you nothing if you do not, and most people arriving have never heard of us. There is now a short line above it naming the thing: access-controlled hosting for the pages and decks you make with AI. The headline itself has not changed.
-
The annual saving on the pricing page is now shown as a percentage rather than a figure from the largest plan. It read "Save up to $158", which is what the biggest plan saves and tells you very little if you are looking at the smallest. It now says up to 35%, which is the real best case and applies to the cheapest paid plan.
-
The security post now lets you test its central claim without leaving the page. It explains that a page you share runs quarantined, in a sandbox with no origin of its own, and then closed by suggesting you go and publish something to check. That meant leaving an article you were part-way through, landing on the front page, and starting again. There is now a box at the end of it: drop an HTML file, get a live link in seconds without an account, and open your browser's dev tools on the result. If you are reading on a phone, where picking a file is awkward, there is a link to an already-published page to inspect instead.
2026-08-08
-
An AI asked about our prices was being told about a plan that no longer exists. The homepage has a second, plain-text version of itself that AI assistants and agents read instead of the rendered page, and its pricing section had been left behind by the move to the current four plans. It was still quoting a single "Pro" plan at $4 a month, so anyone whose assistant compared us against something else got a figure that had not been right for months, while the pricing page, the homepage and our machine-readable summary all said something different. Prices in that version now come from the same place the pricing page reads, in the right language, and a check runs with the tests that fails the build if a second set of prices is ever written down beside the first.
-
The homepage now tells search engines which address is the real one, and says when the site last changed rather than when somebody last remembered to update that date. The freshness date was typed in by hand and had already drifted three weeks behind; it now follows this changelog, which cannot fall behind because every change has to be written here.
-
The homepage says "beta" once instead of five times. It was on a badge above the headline, on a second badge in the footer, in the copyright line, above the customer quotes, and in a question near the bottom. Nothing about the product changed, and the answer explaining what beta means for you is still there in the questions, which is where it is useful. Saying it five times before you have even read what this does was not honesty, it was just noise on a page whose starting price is nothing at all.
-
Two headings on the homepage now say what they are about. "See it in action" and a line describing our own architecture have become a description of what actually happens and what you get to decide, so both the page and anyone searching for this problem can tell what the sections contain. The line under the customer quotes now points out that everyone quoted is named, with their job and a link to their profile, so you can go and check.
-
Pasting a link to a document into Create with AI now tells you it cannot be opened, instead of quietly building a presentation without it. Nothing here fetches anything: a Google Slides or Docs address in the box was never read, so the deck was written from the title line alone and came out looking finished and confident while being entirely invented. That is the worst kind of failure, because there is nothing on screen to tell you it happened. A brief that is a link and little else is now refused before it costs you an AI presentation, and the message says what does work: paste the text, upload the file, or pick a ShareMyPage page as the source. If you would rather not copy anything across, your own AI connected over MCP can read the document itself and build the presentation from it.
-
When the slide AI says it cannot do something, it now shows you what can. Asking it to add a few more slides, delete the one you are on, reorder them, or go and fetch a logo gets a polite refusal, because it edits one slide at a time and cannot reach the internet. All of those are ordinary things to want, and all of them are things your own AI can do through MCP, but the pointer to that was only ever shown on an untouched slide, so it had disappeared by the moment you actually needed it. It now appears with the refusal itself, and goes away again as soon as your next instruction works.
2026-08-07
-
Links on a page you share now work when it is opened from inside another app. Tap a link in a LinkedIn message, an Instagram profile or a Facebook post and the page does not open in your browser, it opens in a small browser built into that app, and those have no tabs. A link on a shared page that asks to open in a new tab was being dropped there silently, with no new tab, no error and nothing on screen, so a button that works everywhere else looked broken to whoever you sent the link to. Those links now open in place instead, and the back arrow returns to your page. Nothing changes in a normal browser, where a new tab is still a new tab. Found on a page sent through a LinkedIn message, which is how most shared links get opened.
-
You can now write to support inside the app instead of being handed off to your email program. Support opened a dialog whose main button assembled an email and passed it to whatever mail client your device has configured, which is fine if you have one and does nothing visible at all if you do not. Anyone reading their mail in a browser tab, and most people on a phone, pressed it and watched nothing happen, and we never found out they had tried to get in touch. There is now a box to write in and a Send button, and the message arrives without leaving the page. You only type the question: which workspace you are in, which plan you are on and which page you were looking at are attached for you, so there is no need to describe your setup before getting to the point. You get a copy of what you sent by email, and you can reply straight to it. Writing from your own inbox is still offered next to it for anyone who prefers that.
-
Cancelling or withdrawing is now written down before anyone is emailed about it. Until now the record of your cancellation was the email it sent, and that turned out to be too thin a thread: our email provider stopped delivering to the address those notifications go to, and kept reporting every send as successful, so four submissions were accepted and confirmed while nothing arrived on the other end. Nobody lost a real cancellation, it was caught during testing, but a form with a legal deadline attached should not depend on a mail queue nobody is watching. Each submission is now stored the moment it arrives, and the emails are only a notification on top of that. If a notification fails to go out, that is now visible as a gap in the record rather than invisible in an inbox. The one case where you are told something went wrong is now the one case where it genuinely did.
-
The cancellation form no longer refuses you because somebody else on your network used it. It allowed five submissions an hour per internet address, and an address is not a person: everyone in one office, or on one home connection, shares it. That is not a limit that belongs on a form you are legally entitled to reach at any time, and it was found the only way these things get found, by being turned away while trying to use it. The allowance is now four times higher, which is still far too low to be useful to anyone sending junk and far above anything a real person will hit.
-
On the cancellation form, the reason box is now labelled for the kind of cancellation you picked. Choosing "at the earliest possible date" still showed a box headed "good cause", which reads as though you have to justify yourself. You do not: an ordinary cancellation needs no reason at all, and the box now says so and calls itself a message. It still asks for a good cause when you pick the extraordinary option, where one is genuinely required.
2026-08-06
-
The slides editor loads about 316 KB less code. One line in the theme editor was reaching into a file that also holds the rules used to check a theme is valid, and pulling in a validation library along with it, together with that library's JSON converter and its error messages translated into every language it supports. All of it went to the browser so that a dropdown could list ten font names. The font list now lives on its own and the rest stays on the server where it belongs. The editor behaves exactly as before, it just has a good deal less to download and parse before it opens.
-
You can now cancel a paid plan, or withdraw from one entirely, without signing in. Both live at the bottom of every page, next to the imprint. Until now the only way out was the billing portal inside the app, which is behind a login, so somebody who had lost access to their account had no way to end what they were paying for. The cancellation form asks which plan and which email address, and whether you want it to end at the next possible date or on a day you choose; withdrawal is the separate, stronger right you have in the first fourteen days, which ends the contract as though it had never happened and gets your money back. Either way you get an email straight away that repeats what you sent and the exact time it arrived, which is the thing worth keeping if there is ever a disagreement about when you cancelled. There is also a written explanation of the withdrawal right, including the one case where it ends early, at the bottom of every page.
-
Anyone can now report content on a page hosted here that they believe is unlawful, whether or not they have an account. The form asks for the address of the page, what kind of problem it is, and why, and it goes straight to a monitored address. Reports about the safety of minors can be sent without leaving a name. Everyone else gets a confirmation and, once it has been looked at, an answer with the reasoning behind it. There was no way to report anything before, which meant the only route was finding an email address and hoping.
-
Buying a plan or an AI credit pack now asks you to confirm that you want it to start right away. This is a new checkbox and the buy button stays greyed out until it is ticked, which is deliberate friction: for the credit pack in particular, confirming immediate delivery is what lets you use the credits the moment you have paid, and it is also the point at which the fourteen day cooling-off period stops applying to that purchase. Saying so plainly beforehand seemed better than letting people discover it afterwards. Nothing about prices, plans or what you get has changed.
-
Pages with a live checklist, poll or reaction row now ask the server once instead of once per block. A checklist is really three of these things stacked together, the list itself, the items readers add, and the votes on them, and each one was fetching its own updates every seven seconds, each fetch doing three separate lookups in the database. That is nine trips to the database every seven seconds for a page sitting open, to read a handful of rows. The page now asks for all of its live blocks together, and the server answers them in three lookups no matter how many blocks there are. Everything updates exactly as before and at the same speed. Pages left open in a tab that has not been reloaded since this shipped carry on the old way until they are next opened, which still works.
-
Every page now sends your browser only the text it will actually use. The app is translated into English and German, and the whole translation file for your language, all sixteen sections of it, was being embedded in every single page. Someone reading the pricing page was downloading the wording of the slide editor, the settings screens and the dashboard along with it, none of which that page can show. It came to roughly two fifths of what the page weighed. Each part of the site now carries its own sections and nothing else, which takes about 20 KB off every public page. There is no visible change; pages simply arrive with less to download and less for the browser to work through before it can show them. A check now runs with the tests that reads the code and fails the build if a screen ever asks for wording its section does not include, so this cannot quietly come undone later.
-
The homepage now shows the product working next to the headline instead of below it. The demo that walks through making a page with AI, publishing it, choosing who can open it and collecting comments was previously a full width panel underneath the opening copy, which meant you had to scroll before anything showed you what this actually is. Most people did not: on average visitors got about two thirds of the way down the first screen, and the single most clicked thing in the whole opening section was the link to go and look at a real example. So the example comes to you. The demo now sits beside the headline on a wide screen and still runs by itself through the same five steps. On a laptop narrower than about 1280 pixels, and on tablets and phones, the copy and the demo stack instead of sitting side by side, because squeezing the demo into half a narrow window would have shown its small screen layout on a desktop, at which point it stops being a demonstration of anything.
-
The homepage buttons are in a different order. "Get started for free" is now the main button, "See a live example" is beside it, and uploading a file without an account has moved to a plain link underneath. Before, uploading was the big button and signing up was a small grey line of text below it, which had it exactly backwards: over three months four people clicked that grey line. Nothing has been removed. Uploading a file without an account works exactly as it did and is still one click away.
-
Blog posts now end by pointing you somewhere useful. Until now a post finished and simply stopped, with at most a single link buried in the last paragraph, so the only way on was the back button. Each post now closes with a next step, and posts that have earned a more specific one say so: the two about how the security model works send you to the full security review rather than to a signup form, and the one about building the AI integration sends you to its documentation. Two of them also carry a short prompt part way through, at the point the post has made its case.
-
A page shared with you now offers a way to make your own. If you open somebody's public page while signed out, the header has a "Publish your own" button. Previously the only mention of ShareMyPage on a shared page was the small badge in the corner, which almost nobody used, and there was nothing at all in the header. Pages belonging to a paid workspace are untouched: those deliberately carry no ShareMyPage branding, and this follows exactly the same rule as the badge, so nothing new appears on a page a customer shares with their own audience.
-
The dashboard fetches everything it needs at once instead of one thing after another. Opening it involved seven separate trips to the database and to our sign-in provider, run strictly in sequence even though most of them had no bearing on each other: the folder list waited on the page count, which waited on your profile, and so on down the line. Each trip is its own request over the network, so the wait for all of them added up end to end. They now go out together in two rounds, ordered only by what genuinely depends on what. Nothing on the page changed, and it shows exactly the same folders, pages and counts as before.
-
The public pages now load from a cache instead of being rebuilt for every visitor. The pricing page, the blog, the examples gallery, the about page and all the legal pages were being assembled from scratch on our servers on every single request, including for two people opening the same page a second apart. The cause was two lines in a shared layout file: one read the address the request came in on, to decide whether a workspace on its own subdomain should see its own name and logo, and the other looked up who was signed in so analytics could attribute the visit. Either one is enough to tell the framework that no page underneath it can ever be reused, and they sat above every page on the site, so a good deal of work that had already been done to make these pages cacheable had quietly been doing nothing at all. Both have moved to the pages that actually need them. Nothing about the pages changed, they simply arrive faster now, and a workspace on its own subdomain still gets its own name, logo and home screen tile. One narrow exception: opening a marketing page such as pricing on a workspace subdomain and adding it to your home screen from there now labels the tile ShareMyPage rather than the workspace name. Doing the same from the workspace's own front page or from inside the app is unchanged.
-
The notification bell no longer keeps working in tabs you are not looking at. A tab left open in the background checked for new notifications once a minute for as long as it stayed open, which was enough on its own to keep the database running around the clock: one forgotten tab overnight and nothing ever got to idle. The bell now stops entirely while a tab is hidden, and in a tab you are looking at but not touching it checks less and less often the longer the count stays the same, easing off to once every five minutes. Returning to the tab, or clicking back into the window, checks immediately, so the number is correct at the moment you actually look at it. The honest tradeoff is that a badge can now sit up to five minutes out of date if you leave a window focused and untouched, where before it was one minute. Everything else about notifications, including when they are created and what they link to, is unchanged.
-
Presentation and page thumbnails, the app icon and the home screen tile are all served from a cache now instead of being rebuilt on demand. The icon is drawn on our servers rather than shipped as a file, because a workspace on its own subdomain gets its own logo on the home screen tile, but nothing was telling browsers or our network to hold on to the result, so an identical image was drawn from scratch for every single request. Thumbnails had a smaller version of the same problem: each one already cached the picture correctly and only ever redrew it when a page actually changed, but reading that cache took two round trips where one would do, on every card in your dashboard. Nothing looks different and no thumbnail changed, so this is purely a speed and cost change; screens with a lot of cards should settle slightly faster.
2026-08-05
-
You can now sign in with a Microsoft account. Google and a magic link to your email were the only ways in, which is a strange gap for a tool made for work: a great many companies run on Microsoft 365, and for people there the Google account is the personal one they would rather not use for this. The button sits next to Google on both the sign in and the sign up screen, and it takes a work or school account as well as a personal one. Two of our own public pages had been listing Microsoft as available for weeks. That was not quite a lie, it was on in the environment we develop against and off in the live one, so it worked for us and existed for nobody else. It is on in the live one now. Joining a workspace by email domain works the same way through Microsoft as through Google, because we accept a Microsoft address only when Microsoft states it has verified that address itself, rather than taking the word of whoever set up the account.
-
Pages: searching now finds folders, not just pages. Typing a folder's name returned nothing unless some page happened to be titled the same way, so there was no way to send somebody a search link that lands them on the right folder. Matching folders now appear above the matching pages, and the search lives in the address, so a link like
/dashboard?q=finopscan be pasted to a colleague and opens on the FinOps folder together with everything else named after it. Suggested by a reader who wanted exactly that and found the search could not do it. Which folders you can see has not changed: one that holds only somebody else's private pages stays out of the results however precisely its name matches, and a folder result still says how many pages are in it rather than how many of them matched. Pages filed inside folders were already being searched; it was the folders themselves that were missing. -
Pages: escaped characters in a title or a card summary now read as the characters they stand for. A page whose heading contained a non-breaking space, a long dash, curly quotes, an accented letter written as a code, or any of a dozen similar escapes showed the raw escape instead, so "per transaction · per store" appeared as "per transaction · per store". Only five escapes were being translated, and none of the common typographic ones. Found while reading the summaries generated for existing pages, where a designed page's separators made the line look like markup. Text that genuinely spells out an escape, because the author escaped it on purpose, is still left exactly as written.
-
Pages: a page card now shows the first couple of sentences of the page under its title. Until now that line was only filled in for pages whose author had written a summary into the file, which almost nobody does: Markdown carries one only if you add a front matter block for it, and pages written by an AI rarely include one at all. So most cards were a title floating above a large blank space, and the title alone often does not tell two documents apart. The summary is now taken from the beginning of the page itself when there isn't one written. A summary you did write still wins, and the page's own opening heading is skipped so the card does not simply repeat its title back at you. Pages that genuinely have no text to draw on, an app or an image with no words in it, are left as they were rather than shown a stray fragment. The same line is what a shared link shows when someone pastes it into a chat or an email, so those previews now describe the page instead of saying "A page shared with you on ShareMyPage". Link previews remain off entirely for workspaces that have turned them off.
-
Pages: trying to export a page you cannot open now says why, instead of "Couldn't export the page. Try again." A password-protected page cannot be exported to PDF or an image at the moment, because entering the password does not carry over to the export request, so it is refused, and the old message made that look like a temporary glitch you could retry. It now tells you the page cannot be exported here and points you at your browser's own print-to-PDF, which works.
-
Workspaces: an admin can now stop members from sharing content by an open link. Until now the person who created a page or presentation decided its visibility alone, so any member could set something to "Anyone with the link", and an admin had no way to prevent it. There is a new setting in Settings under General, admin only, that restricts the whole workspace to "Only you", "Everyone at your workspace", and inviting specific people by email. With it on, "Anyone with the link" and link-with-password are not offered, from the web app and over the API alike, so there is no way around it. Turning it on does not change anything that is already shared, since that would break links people are relying on; instead the setting shows how many pages and presentations are currently reachable by a link so you can open and restrict each one. Off by default, so nothing changes until an admin turns it on.
-
Security: deleting a presentation is now written to the audit log. Deleting a page always was, and deleting a presentation was not, so the record of who removed what had a hole in it exactly where the content is largest. The entry names the presentation, who deleted it, and whether it went through the app or a connected AI tool. Deletions that the system performs on its own are deliberately left out: when a duplicate or a PowerPoint import fails half way, it removes the unfinished presentation it just created, and logging that would fill the record with deletions of things you never saw. Found while auditing stored files, where the absence of these entries made it impossible to tell from the log alone whether a presentation had been deleted at all.
-
Every dialog in the app now scrolls when it is taller than the screen. On a phone, a dialog longer than the display hung off the top and bottom edges with no way to reach either end: the panel is pinned to the middle of the screen, so the page behind it does not scroll and the panel itself did not either. The top of it was simply gone. Reported on the analytics modal, which grew tall enough to cross that line when it gained the breakdown section, but it was never specific to that one screen and a handful of other dialogs had each been working around it separately. The fix is in the dialog itself, so anything that opens in one is covered, including whatever gets built next. The viewer list inside the analytics modal also stops being its own separate scrolling area on narrow screens, where two nested scrolling regions meant a drag starting over the list moved the list and left the dialog stuck behind it.
2026-08-04
-
Slides: changing one thing about a custom theme no longer changes its typeface as well. Updating a theme with a single token, say turning off the glow behind covers, quietly reset the heading font to the default, so a brand theme built on Archivo became Geist and every deck using it redrew in the wrong face. Nothing warned, and the only way to notice was to look. The cause was that the one token with a default was being filled in with that default before the change was applied, so a value nobody sent was written over the value that was already there. Sending a token still sets it and clearing a token still returns it to the default; leaving one out now genuinely leaves it alone, which is what the rest of this API already did.
-
Slides: asking AI to go and fetch a logo now gets an honest answer instead of a broken image. The slide editor cannot reach the internet, and nothing in it said so, so a request like "pull the Slack logo from Google and replace it" ended either in nothing happening or, worse, in an invented image address that renders as a broken image and looks like the edit worked until somebody opens the slide. It now says it cannot do that and says what will: paste the image's address into the prompt, or use the Add image button beside the prompt box, which uploads a file and fills the address in for you. An address you have already given it is used exactly as before.
-
Slides: replacing a slide's content now updates the slide's name. A slide replaced wholesale kept the name it was born with, so an overview still read "Cover" and "Thank you" long after those slides had become something else, and the stale name was written back over the correct one every time the deck was rebuilt. The name is now re-read from the new content, the same way it already was when a slide is first added. Setting a name explicitly still wins, and content that carries no name leaves the existing one alone rather than blanking it.
-
Slides: the design guide the AI works from named the container for a row of chips but not the class that styles the chips inside it, so a deck built on that instruction came out with plain text where the pills should have been. It now names both. Every other component in that list already named its parts; this was the one that did not, and a guide that is wrong is worse than a guide that is short.
-
For assistants: tool calls no longer fail over which word an id is spelled with. Half of last week's failures on the agent interface were an assistant passing
pageIdto a tool that wantedid,deckIdto one that wantedid, orslideIdwhere the parameter isslide. That is an easy mistake to make, because the same page is calledidby one tool andpageIdby its neighbour, and the assistant only found out after the call had already failed. Those spellings are now understood and translated to whatever the tool actually declares. An argument you gave correctly is never overwritten by a guessed one, and the tools that genuinely take a presentation id keep taking it. -
Pages and presentations: the viewer list now tells you how each named person found the thing you shared. Under someone you can already see the name of, the report now shows the site they first arrived from and the kind of device they last read it on, so "Melisande opened it from your email, on her phone" is answerable without reading it out of a chart. Someone who visited from three different places shows the first and a count of the rest, because one label cannot honestly stand for three visits. Visitors who are not signed in are unchanged and will stay that way: their row shows no source and no device, because on a page with a handful of readers those two facts together would identify the person the row is careful not to name. Country is not shown per person for anyone, only in the totals, since where somebody was is a fact about them rather than about your link. Rows recorded before this was collected show nothing rather than claiming a visit was direct.
-
Pages and presentations: the view report now shows where your readers came from, which country they were in, and whether they were on a phone, a tablet or a desktop. Until now a view told you a count and, for people who were signed in, a name. It could not answer the question most people actually have after sending a link, which is whether the thing got opened from LinkedIn or from the email you sent. All three of these are worked out on our servers from the request your reader's browser already makes, so nothing is stored on their device, there are still no cookies, and there is still no consent banner to click past. Three things are deliberately thrown away rather than kept: the city, the full address of the page they came from, which can carry the title of somebody's private document, and the browser's identifying string. They show up as totals only, never next to a name in the viewer list, and only once at least five different people have opened the item. Below that a breakdown of three or four readers is not a statistic, it is a description of a person, so we do not calculate one. Visitors who are not signed in are now recorded as a hashed key rather than their IP address, which was previously kept in readable form for up to a year. What we keep, and for how long.
-
Trust: several things we said were available were not built, and they have been taken back. Customer-managed encryption keys were listed as available on enterprise plans on the security page, in the data processing agreement, as a feature on the Enterprise pricing card, in the plan comparison, in the billing settings and in two FAQs. They are not built. There is no key management anywhere in the product, and our own reviewer documentation had said so, correctly, the whole time. Single sign-on was described the same loose way: SAML is real and available as a per-customer add-on, but configuring it makes it available to your users rather than required of them, and that difference matters if you are planning around it. Every one of those claims has been corrected or removed. Capability status now lives in exactly one place, the table of known gaps in For security reviewers, and no other page states what is or is not available. Two pages of ours contradicting each other is worse than either page alone, and the fix had to be structural rather than a change of wording.
-
Trust: the AI features send your content to a model provider, and we now say exactly when. Anthropic was missing from our subprocessor list even though creating a deck with AI, editing a slide, changing a layout, suggesting a theme and importing a PowerPoint all send that content to a model. Importing a PowerPoint is worth calling out on its own, because it re-authors by default, which hands every slide to a model unless you choose faithful mode. AI and your content sets out which actions do this, what is sent, which models run and where, and what is kept afterwards, including the fact that the instruction you type is recorded in our product analytics. Hosting, sharing, viewing and commenting on a page never call a model at all, which is the case most people are actually in.
-
Trust: what happens to your content if we stop, and how to report a vulnerability. The reviewer documentation now answers the question every assessment of a small vendor asks and ours never did: this is run by one person, that is a real concentration risk, and what we can do about it is make sure it never costs you your content. Nothing is stored in a format that needs our software to read, every page exports as HTML, Markdown, PDF or an image, and if the service were ever to wind down there is 90 days' notice with the export paths staying up. Security researchers now have an address, security@sharemypage.app, a published disclosure policy, and a security.txt. The subprocessor list has moved into the documentation at Subprocessors, where adding a vendor is one line rather than nine edits across three files, on the page most likely to go out of date. The old address redirects.
2026-08-03
-
Slides: the limit on how fast AI edits can be requested now actually holds. There has always been a cap of ten AI edits a minute per person, on editing a slide with AI and on changing its layout, and a similar cap on asking AI to suggest a theme. That cap was counted inside a single server, and requests are spread across however many servers are running, so each one counted its own tally and the limit was looser in practice than it looked, by a factor of however many were awake. All of these now count against one shared tally, so ten a minute means ten a minute. In normal use nobody comes close to this. It matters because each of these is a billable call to a model, and a cap that does not bind is not a cap. Found during a security review of our own cost controls.
-
Slides: a presentation can now be duplicated. The card menu on a deck gets a Duplicate item that makes a full, independent copy, with its own slides, its own image files, its own theme, description, logo and folder. Comments, invites and view history are never copied over. The copy is private and set to only you can edit, no matter how the source was shared, so duplicating never hands anyone access they did not already have. This is aimed at the recurring deck, a monthly review, a status update, where only a few numbers change between runs, and the only options before were rebuilding it from scratch or overwriting last month's and losing the record of what was actually shown.
2026-08-01
- Mobile: pull to refresh now works on a shared page, and it reloads the whole thing. Two problems, reported from a phone. It did nothing on a shared page because the content of a page renders inside its own sealed frame, and that frame is what scrolls, so the app around it never saw the gesture at all. The frame now recognises the pull itself and hands it to the page around it, which draws the dial and reloads. Presentations are deliberately left out: a vertical drag there already means moving between slides. The second problem was that a pull refreshed the data on screen but not the app itself, so an app open on your home screen since before an update kept running the old version no matter how often you pulled. A pull is now a real reload, which is what the gesture means everywhere else.
2026-07-31
-
Product updates: the monthly email now tags itself, so we can tell how a given month's note actually did. Every send carries a campaign tag and every link in it says which email it came from, which means the numbers for the monthly note are separable from the welcome and comment mail that goes out the same day, and a visit that starts in the email is no longer recorded as if you had typed the address yourself. The unsubscribe link is deliberately left untagged: it is a control, not a call to action, and it should behave identically no matter where it is clicked from.
-
Pages: version history can now show you a version before you restore it. A row listed only when a version was saved and how big it was, so the one way to find out what was in it was to restore it, which overwrites the content you still have. Every earlier version now has a Preview that opens it full screen, exactly as the page looked, with Restore in the corner once you have seen enough. The preview is strictly read only: a form inside an old version cannot be submitted from it, and a poll or a checklist shows how it looked without a click counting against the live page.
-
Slides: previewing an earlier version of a slide is now something you can find. History could already put a version on the canvas, but the only way to ask for it was to click the row, which looked like a label rather than a control, so people restored a version to see what was in it. Each earlier version now has its own Preview beside Restore, it says when it is loading, and the version you are looking at is marked. A row that lit up as if it were previewing when there was nothing to preview into no longer does.
-
Mobile: pull down at the top of any screen in the app to refresh it. Added to the home screen on an iPhone, ShareMyPage runs without browser chrome, and iOS gives an installed web app no pull-to-refresh of its own, so a window left open for a few days had no way to load anything new short of force-quitting it. The gesture refreshes the page in place, keeping your scroll position and anything you had open, rather than reloading from scratch. It stays out of the way of normal scrolling, and it is switched off in the slide editor so a stray drag cannot interrupt work in progress.
-
Mobile: Home, Pages and Slides now sit in a bar along the bottom of the screen on a phone, in reach of your thumb, instead of behind the menu button in the corner. The menu keeps Settings, Support and your account. Nothing changes on a laptop.
-
Mobile: a square brand logo now fills the home-screen icon edge to edge. A square upload is already icon-shaped, usually a full-bleed mark with its own background, so centring it on a white tile put a white border around an icon that did not need one. Your square logo is now used exactly as you uploaded it, with whatever padding you gave it. Nothing changes if you have only a wide logo: that one is still centred on white, because cropping a wordmark to fill a square would cut it in half.
-
Mobile: adding ShareMyPage to your home screen from your own workspace address now uses your workspace name and your logo for the app icon, so it sits on the home screen as your app rather than as one more identical tile. Your square logo is used if you have uploaded one, otherwise your wide one, centred on a white tile. Available on paid plans, alongside the rest of the branding. Two notes: iOS takes a copy of the icon at the moment you add it, so an app already on your home screen needs removing and adding again to pick up the logo, and this fixes a bug that was affecting everyone, where the icon iOS asks for was returning nothing at all and iOS fell back to a picture of the page.
-
Security: over the MCP connection, a workspace member could read a colleague's private or password-protected page in the same workspace by asking for it by id, even though opening the same page in the browser correctly refuses. The read and comment tools checked only that the page belonged to the workspace, not who was allowed to see it. They now apply the same visibility rules the website does: a private or password page is readable over MCP only by its owner, a workspace admin, or someone invited to it, and a member who cannot see a page can no longer read it, screenshot it, download its contents, read or post its comments, or build a presentation from it. Pages shared with the whole workspace are unchanged. Found during a security review of the MCP endpoint.
-
Product updates: ShareMyPage now sends a monthly email about what changed, built from the same Releases page you can read at any time, so the email and the page can never tell you two different stories. It goes to everyone with an account, once a month, and never for anything else. Unsubscribing from it is its own switch: the link in that email stops the monthly note and leaves the emails your pages depend on, comment notifications and invitations, exactly as they were. Keeping those apart is why it needed a record of its own rather than reusing the existing mute, which is scoped to a single page and would have silenced your comment mail as a side effect.
-
Releases: the July entries on the Releases page are now four themes rather than thirteen separate headings. Grouping by the order things shipped meant four different sections each said that slides had got better, and the page's own contents rail ran to thirteen rows before you had read a word. It now reads as the story of the month, while the changelog you are reading stays the complete per-change record. One claim was corrected on the way through: the page implied a PowerPoint export, which was taken out of the Export menu when it was not good enough to keep. That menu offers PDF, a ZIP of images, and self-contained HTML.
-
Docs: polls, forms, checklists and reactions are now one page, Live pages, instead of four. Each of the four repeated the same shared rules, that ids are permanent, that everything is anonymous, that broken markup degrades to plain text, how to close or reset a block, and how the styling hooks work, so those are written once now and each block section only covers what is particular to it. It also means someone reading about polls can see that reactions exist, which four separate pages made unlikely. The old addresses redirect to the matching section.
-
Pages: a new
<smp-reactions>block puts a row of emoji with live counts on any page, which answers the question you have every time you share one: did anyone actually read it. It counts one row per person per emoji, so a reader can pick several, clicking again takes one back, and the number is a headcount rather than a click count. You can see which ones you picked yourself. Set your own withemoji="👍,🤔,🎉"or leave it off for a default set. Anonymous, like the other live blocks. -
Pages: the
mode="multi"attribute on a poll is gone. It was read, sent, and did nothing: a poll stores one row per person, so clicking a second option always moved your vote rather than adding one. It was never documented, so nothing that worked has stopped working, but it read like a feature. For picking several things at once,<smp-checklist allow-vote>does it properly. -
Pages: a long item on a checklist with statuses no longer disappears when you add it. An item's status is stored in front of its text, and the room allowed for the pair was the same as the room allowed for the text alone, so anything close to the 200 character limit was refused and the card vanished with no reason given. Short items were never affected.
-
Pages: a checklist can group its items by status. Give it
statuses="todo:To do, doing:In progress, done:Done"and it renders one group per status, with a chip on each item that opens a dialog to re-file it. That turns a single list into a board without three separate lists to keep in step: status is an attribute of the item rather than a place it lives, so re-filing is one write to the row already there and the item keeps its ticks and its votes. Your CSS decides whether the groups read as columns, sections, or a colour per card. Leave the attribute off and a list renders flat exactly as before, and items stored before a status existed read as the first one. -
Pages: items can be moved between checklists in one click. Give a list
move-to="other-list:Label"and each item gains a button per destination, which turns a set of lists into a board: To do, In progress, Done. A move keeps the item's identity, so with a sharedvote-blockits score travels with it instead of starting over. Items you wrote into the page's HTML stay where they are, since removing one would only last until the next reload; for a board where everything can move, start the lists empty and let them fill through their own input. -
Pages: a page's own script can now write a named bucket through
window.smp.append. It always sent an empty one before, so a custom widget could add to a total but never to a tally the built-in blocks read back, which made the documented escape hatch weaker than the blocks it sits beside. It now takesbucket,blockIdandmodealongside the existingdedupeKey, and defaults to exactly what it did before. -
Pages: items on a shared checklist can now be upvoted. Add
allow-voteand every item gets a vote control with a running tally, one vote per person, click again to take it back. Pair it withallow-addand you have a board where readers suggest things and everyone else says which of them matter, which is the missing half of a poll: a poll can only ask about options you thought of in advance. Addsort="votes"to keep the most-backed at the top. Unlike a poll, you can also see which items you personally backed, so picking a list back up a week later is not guesswork. Several lists can share one tally withvote-block, which is what lets an item keep its votes as it moves across a To Do, In Progress and Done board.
2026-07-30
-
Pages: a shared checklist can now let readers add their own items. Until now the items had to be written up front, which suits a launch plan but not a todo list, a shopping list or an agenda, where the whole point is that people add to it. There was no way to build that: a form's answers are private to you and never appear on the page, so "type a task, it shows up in the shared list, then anyone ticks it off" needed your own backend. Put
allow-addon an<smp-checklist>and it grows an input. Items appear for everyone, oldest first, can be ticked like any other, and anyone with access can remove one. Note that anything a reader types there is visible to everyone who can open the page and is anonymous, which is the opposite of a form, so it is off unless you ask for it. -
Slides: updating a theme no longer wipes the tokens you did not mention.
update_themereplaced the whole token set, so changing just the accent colour silently dropped the brand font, the canvas colours and the text colours, and reset the heading font. Nothing warned at the time, the theme simply drifted back toward the default look, and the usual next step was to go hunting for a CSS problem that was never there. Tokens are now a patch: what you send is applied, what you leave out is kept, and sending nothing but a colour changes nothing but that colour. To clear a token, set it to null. The tool also hands back the theme's full token set afterwards, so you can see exactly what it holds now. -
Slides: a theme for a light brand no longer ships a dark title slide by surprise. The built-in catalog renders the cover, section dividers, quotes and the big-number slide dark, which is right for some brands and wrong for anyone whose own site is white. The switch that turns it off,
darkSlides, existed but was described nowhere, so the only way to find it was to read our source. It is now named in the theme tools, both design guides, and the theme documentation, the AI theme suggester proposes it for a light brand, and a theme you create with a light background and dark text gets it automatically. Existing themes are untouched. PassdarkSlides: trueif you want dark title slides on a light brand. -
Slides: a brand stylesheet can now mention
@importin a comment. The check that blocks the rule, which does not work in that position, was matching the word anywhere in the text, including inside a comment explaining why the rule cannot be used. It now only looks at CSS the browser would actually act on, and the error says where@importis allowed instead. -
Slides: if a presentation fails to pick up a theme change, you now get told. A theme edit refreshes every presentation using it, and any that could not be refreshed were skipped in silence, leaving them showing the old look with no way to tell that from a display that had simply not updated yet.
update_themenow reports how many were refreshed and names any that were not. A screenshot of a whole presentation also comes back stamped with the version it rendered, so two screenshots can be compared.
2026-07-29
-
Slides: deleting a presentation now also removes the logo you uploaded for it, and deleting a workspace removes its brand and presentation logos. The earlier fix today freed a presentation's slides and images but left every uploaded logo behind in storage, counting against your quota with no way to see it was there and no way to reclaim the space. A logo you pointed at by URL instead of uploading is left alone, and so is one that another presentation is still using.
-
Slides: the "Shared with ShareMyPage" badge on a shared presentation moved to the bottom-left. It sat in the bottom-right, directly on top of the slide navigation, so on a free-plan deck the badge covered the next-slide button. Pages keep it on the right, where nothing else lives.
-
Privacy: viewer names and email addresses are now removed from page and presentation view history after twelve months. The view counts stay, so your analytics are unchanged; only the identity attached to each old view goes. Until now that information was kept indefinitely with no way to age it out.
-
Slides: deleting a presentation now removes its stored files, not just its records. Until now the presentation vanished from your dashboard while the files behind it stayed in storage indefinitely, counting against your quota with no way to see they were there and no way to reclaim the space. Deleting a presentation now frees it, the same as deleting a page already did.
-
Slides: the ShareMyPage logo in the presentation viewer's header sits on one line again. The name had dropped underneath the icon and was cut off by the bottom edge of the header, so the first thing you saw on a shared presentation was a broken-looking logo.
-
Pages: you can finally upload a page up to the full size your plan allows, from every place you can drop a file. Large files used to be sent to us in a way our hosting refuses above roughly 4.5 MB, and it refused them before the request even arrived, so a 6.8 MB page failed with a bare "Upload failed." and no reason given, even on plans that allow 10 MB. Big files now go straight to storage from your browser instead of passing through us, so the size your plan promises is the size you can actually upload. That now includes the dropzone on your home screen and dropping a file onto a folder, not just the one on the pages list. The first version of this fix only reached the pages list, so a large file dropped on the home screen, which is where most people land after signing in, still failed exactly as before. If a file really is over your plan's limit, you get told that instead.
-
Pages: dropping an HTML file together with a folder of images now tells you when the whole bundle is too big, instead of failing with a bare "Upload failed." and no reason.
-
MCP: an image uploaded before its page exists now gets cleaned up properly once that page is deleted.
request_image_upload_urllets an agent upload an image first and reference it increate_pageright after, which is the normal way to use it, but deleting that page later used to leave the image's file behind forever, quietly using up your storage with no way to reclaim it. The page now claims the image as its own as soon as it is created (or as soon as an edit references it), so deleting the page removes the image too, the same as any other image on the page. -
MCP: a new
delete_page_imagetool lets an agent undo its own image upload. Before, an image uploaded withadd_page_imageorrequest_image_upload_urlthat never made it into a page, for example because the page creation failed or was abandoned, had no way back. It just sat there counting against your storage limit forever. Now the agent can delete it directly and get back how many bytes were freed.
2026-07-28
-
MCP: large pages and images now have a direct upload path the agent can drive itself.
create_pageandupdate_pagepoint atrequest_upload_urlbefore suggesting the browser, a newrequest_image_upload_urltakes a local image file over a signed PUT, andadd_page_imageno longer needs the page to exist first.screenshot_pagenow renders live blocks, so a form's fields and submit button show up in the image. Tool calls also accept the parameter names agents actually guess, such aspresentation_idfordeckId. -
Pages: live blocks keep working on a page you leave open. A page hands your browser a pass that expires after half an hour, and nothing renewed it, so a tab left open longer than that quietly stopped syncing: a shared checklist no longer showed other people's ticks, and your own ticks were rejected and sprang back. The pass now renews itself in the background, so a checklist you keep open all day stays live. If your access to the page has genuinely ended, the page now stops asking instead of retrying every few seconds for as long as the tab is open.
-
Pages: Settings is now a modal with tabs instead of a panel sliding in from the edge. It used to be one long scroll where replacing the file, renaming, version history, live responses, the folder and delete all queued up behind each other, so anything below the fold meant scrolling past everything above it. The same controls are now grouped into Content, Versions, Responses and Manage, and version history gets a tab of its own so a long history stops pushing the rest out of reach. Responses only appears when the page actually has live blocks on it. On a phone the whole thing opens full screen. Comments still open in their side panel next to the page, and sharing and view counts keep their own windows.
-
Homepage: the quote under the hero is now a named reference. Erik Holm, Chief Product Officer at Tadavo, gave permission to use his name, photo, and profile link, so the strongest piece of social proof on the page is checkable instead of anonymous. It reads the same way in the testimonial grid further down. The rest of the beta feedback stays role-only.
-
Slides: a deck card only shows who can edit when it is a deck you can edit. The edit-status chip is written from the editor's side ("Only you"), so on a presentation you can only view it described someone else's setting while reading like a statement about you. Cards that open the read-only presentation now just show who can view it.
-
Slides: "Only you" now means only you, even to a workspace admin. Being an admin used to carry edit rights over every deck in the workspace, so opening a colleague's restricted deck dropped you into their slide maker. Admins now get the read-only presentation there, the same as anyone else, and the Edit button is only offered when you can actually edit. Admins keep everything that is genuinely administrative: they can still delete any deck, change its sharing, and see its view report.
-
Slides: the Edit shortcut in the deck viewer now appears whenever you can edit the deck, instead of only for owners and admins. If a deck is set to "Everyone at your workspace", any teammate viewing it can jump straight into the slide maker.
-
Slides: exporting a large deck to PDF, images, or PowerPoint no longer fails partway through. Every slide is rendered in a real browser, and on a long deck that could run past the export's time budget and get cut off before the file was ready. Slides now render several at a time and the export has a lot more headroom, so downloading a full deck finishes reliably.
-
Slides: the deck's edit and view status are now color-coded and shown on the deck card too. Who can edit a deck (Collaborate) always reads in its own magenta with a pencil, kept deliberately clear of the blue "workspace" colour so the two never blur together; who can view the presentation (Share) keeps the visibility colours (grey private, blue workspace, green public). Both now appear on each deck card in your Slides list, not just in the editor header.
-
Slides: the shared deck viewer's header now matches the page viewer's exactly, so opening a deck and opening a page feel like the same product. Comments carries its count badge, the export menu reads "Download" with a caret like pages do, Share is the single filled button, and the owner tools (views, Edit) sit to the right of a divider. The extra keyboard-shortcut hint that used to crowd the bar was removed (the shortcuts still work).
-
Slides: Collaborate now lets you choose who can edit a deck. A new deck starts as "Only you and people you invite", so it is yours to edit until you deliberately open it up; "Everyone at your workspace" makes it collaborative so any teammate can edit. The restriction is enforced everywhere editing happens, not just in the menu.
-
Slides: the deck editor header now makes both states crystal clear and keeps them apart from the actions. Two small read-only chips show who can edit the deck (a pencil) and who can view the finished presentation (an eye), sitting to the left of a divider; the buttons you press to change things (Export, Collaborate, Present, Share) sit to the right, with Share as the one filled button.
-
Slides: sharing a deck no longer says you are granting editing. Because who can edit is now a separate Collaborate choice, the Share dialog's "Everyone at your workspace" option now says people can open and view the presentation, not "view and edit". Share is purely about handing over the finished presentation.
-
Slides: a deck you can only view now opens as the presentation, not the editor. Decks still live only under Slides (never mixed into Pages), and everyone with access sees them there, but the card opens the slide maker when you can edit it and the read-only presentation when you can only view it. View-only decks also drop their manage menu, so the card is just "open and present".
2026-07-27
-
Slides: opening a shared deck now looks like opening a page. The deck viewer used to be a bare bar with just the title; it now carries the same header a shared page does, with your workspace's logo and branding, the folder it lives in, its visibility, a Share button, and a Download menu (PDF, images, or HTML). Presenting or sharing a deck now clearly hands someone a page, which is what it always was underneath.
-
Slides: deck owners can now see how many times a shared deck has been opened. A "N views" count sits in the deck's header, the same way pages count reads, and selecting it opens the full report with a 30-day trend and the list of who opened it and when. Your own views of your own deck are not counted. Owners and admins also get an Edit shortcut from the viewer straight into the slide maker.
-
Sharing: the share dialog now shows who already has access, not just a box to add more people. Each invited person is listed with their access level, and you can remove any of them in one click. This applies to both pages and decks.
-
Slides: Collaborate now shows that everyone in your workspace can already edit the deck, alongside the option to invite specific editors from outside, so it is clear who can change a deck versus who you are handing the finished result to.
-
Slides: sharing a deck is now two clear actions instead of one. The deck editor separates Collaborate, the small circle of teammates who edit the deck with you in the slide maker, from Share, which hands someone the finished deck as a page they can view, present through, and comment on. Share is the primary button in the header, because handing a deck to a client is the thing people were missing and working around by exporting a PDF. When you share, inviting people by email is the main path, and choosing a public "anyone with the link" now shows a note suggesting email invites instead for client or confidential decks.
-
Slides: a deck someone shares with you from another company now waits for you in your own workspace. When you are invited to a deck by email and sign in, it appears under "Shared with me" on your dashboard, read only, alongside shared pages, so you no longer have to keep the link to find it again. Opening it takes you to the deck on the workspace that owns it.
2026-07-26
-
Slides: fixed uploading a PDF or PowerPoint failing with "The upload failed". The browser was blocked from sending the file to storage by the site's own security policy, so the upload never left the page. Uploading now works from the Create-with-AI dialog.
-
Pages: your page analytics now open in their own window, laid out like the Analytics view on Home. Selecting "128 views" in the page header gives you the totals, the trend over the last 30 days, and the full list of who opened the page and when, instead of sending you into the settings drawer to scroll for it. The report is only loaded when you ask for it, so pages you never check analytics on open a little quicker.
-
Pages: fixed the views chart showing an English sentence to German users. When a page had no views in the last 30 days, the chart's message was never translated, including on Home.
-
Pages: the Manage page panel is no longer one long list. Its sections were a flat run of nine, all looking equally important, so finding anything meant scrolling and reading. They are now gathered into three labelled groups, Content, Sharing and activity, and Manage, and the panel is a little wider so the views chart and the list of who read your page have room to breathe. The views report has also moved further down: it is the tallest thing in the panel, and now that "128 views" in the header jumps straight to it, nothing needs it near the top.
-
Pages: the Manage page panel no longer asks who can see the page. Visibility and invites lived both there and in the Share dialog, so there were two places to set the same thing and they could disagree. Sharing is now Share's job alone. The standalone page settings link, which has no Share button, keeps its sharing controls.
-
Slides: you can now build a deck by uploading a file instead of only picking a page or typing a brief. Choose Upload in the Create-with-AI dialog and drop in a PDF to get a deck grounded in its real content, the same way a page source works, or a PowerPoint to have its existing slides rebuilt faithfully in your chosen theme, with no separate import step needed.
-
Slides: Upload now also takes a Markdown or plain text file, and the separate "Attach .md or .txt" control next to the brief is gone, so there is one upload door instead of two that behaved differently. A Markdown file is sectioned by its real headings, the same way a page or PDF source is, so the resulting deck is grounded in real content rather than one long pasted block. When your upload is a PowerPoint, the brief fields that would not apply (Topic, Audience, Tone, Number of slides) are hidden instead of sitting there doing nothing.
-
Pages: the page header now tells you what matters. Its five actions used to be five identical pieces of grey text, so nothing stood out and "Make slides from this" ran nearly three times the width of its neighbours. Each action now has an icon, Share is the one filled button, and a divider separates what any visitor can do (Comments, Download, Share) from what only your workspace can do, so a link you send out visibly carries a shorter row. "Make slides from this" is now just "Make slides", and Settings is a gear.
-
Pages: your read count is no longer buried. The number of times a page has been read used to be reachable only by opening Settings and scrolling past a stack of unrelated sections; it now sits in the header as "128 views", so you can see whether anyone opened the page without a single click. Selecting it still opens the full report. Only the page's owners and admins see it, and the count shows on every plan.
-
Pages: the Comments button no longer moves. It used to swap between "Comments" and "Hide comments", which changed its width and shunted every button beside it sideways each time you opened or closed the panel. It now keeps one label, shows an unread count, and highlights while the panel is open.
-
Pages: you can now turn a page into slides from the page itself. "Make slides from this" sits in the page header next to Download, and in the menu on narrow screens, so you can start a deck from the page you are reading instead of going back to your list to find it. Only members of the page's own workspace see it, so anyone you share the link with sees exactly the header they see today.
-
Slides: a deck generated from a page now ends properly. The closing slide was sometimes filled with content pulled from the end of the page, so a deck could finish on a dense list of caveats or open questions rather than a clean ending. The cover and closing slides are now always kept clear of page content, so the deck opens and closes the way it should.
-
Slides: you can now generate a deck from an existing page. Pick a page as the source in the Create-with-AI dialog, or use "Make slides from this" on a page, and the deck is built from that page's real content, section by section, instead of being invented from a short topic and summary.
2026-07-25
-
App: the signed-in app now sits on a soft grey background instead of white. Your cards (on Home, Pages, Slides, and Settings) stay white, so they lift off the page and read as distinct panels rather than being outlined only by a thin border on white. Loading screens follow suit: while a page or deck list is fetching, each placeholder is drawn as a white card, so you see the shape of the cards about to arrive instead of grey blocks. The header stays white, and dark mode is unchanged. The marketing site and your shared pages are untouched.
-
Pages: a shared page now shows the folder it lives in, as a clickable crumb with a folder icon, just before the title in the header on wider screens. Opening a page from a folder used to be a one-way trip: the logo always took you back to the top of your dashboard, so returning to the folder you came from meant navigating down again. Now one click takes you straight back to it. Only members of the page's own workspace see the crumb, so anyone you share the link with (including a guest invited to edit) sees exactly the header they see today, and your folder names stay private.
-
Slides: the deck editor now shows the folder a deck lives in, as a clickable crumb with a folder icon, between the "Back to decks" link and the deck title on wider screens. Opening a deck from a folder used to be a one-way trip: "Back to decks" always landed you at the top of Slides, so getting back to the folder you came from meant navigating down again. Now one click takes you straight back to it, and a deck that is not in a folder keeps exactly the header it has today.
-
Home: the "What's new" card now shows a preview image for each release. The three most recent releases each get a small illustrated preview on the left, with the title and summary beside it, so you can see at a glance what shipped. Each row links straight to the Releases page.
2026-07-24
-
Pages: you can now add a shared checklist to any page. Drop an
<smp-checklist>block into your HTML and each item becomes a checkbox that everyone with access can tick off, so a page like a launch plan turns into a live board where the team checks things off together and the remaining work shrinks in front of everyone. Checks are shared and anonymous (it shows what is done, not who did it), other people's changes appear without a refresh, and your page CSS fully styles it (withdata-smp-checked-count/data-smp-totalhooks for a "3 / 8 done" progress readout). Owners can Close or Reset it from the page's Responses panel. See Live checklists. -
App: your browser tab now shows what you have open. When signed in, the tab used to read the generic site name everywhere; it now shows the open deck's name in the slide editor, and the section name (Pages, Home, Slides, Settings, and each settings page) elsewhere. Private decks still read "Shared presentation" in the tab, matching their share link.
-
Slides: fixed some deck PDFs still showing grey shadow boxes even after the shadow fix. The fix only changed how new exports render; a deck whose PDF had already been made kept serving the older, cached copy. The export version is now bumped, so every deck re-renders with the fix on its next export and comes out clean.
-
Slides: you can now export a deck as images. A new "Download slides (images)" option in the Export menu gives you a ZIP with one high-resolution PNG per slide (slide-01.png, slide-02.png, …), with the same progress bar as the PDF. Because each slide is captured as a picture, the images look exactly like the live deck, shadows and gradients included, so they are handy for dropping a slide into a doc or another deck.
-
Slides: fixed gradient headline words and big stat numbers turning into solid blocks in deck PDF exports. The PDF engine can't paint gradient-filled text, so those elements (like an accent word or a large percentage) came out as a solid rectangle with the text hidden; in the PDF they now render as clean, solid, readable text. On screen the deck is unchanged.
-
Slides: the deck export dialog now shows real progress. Instead of a plain spinner, a PDF export shows a bar and "Rendering slide 3 of 8" as each slide is drawn, so on a longer deck you can see it is working and how far along it is.
-
Slides: deck PDF exports no longer show hard grey boxes behind cards and device mockups. The PDF renderer draws soft shadows as solid rectangles, so shadows are now dropped in the PDF (cards stay defined by their thin borders). On screen and in the app, decks look exactly as before.
-
Slides: exporting a deck now shows a progress dialog. Because the PDF renders each slide, it can take a few seconds; instead of a silent wait (or a raw error page if it fails), you now see an "Exporting your slides" spinner, and a clear "Export failed, try again" if something goes wrong.
-
Slides: fixed deck PDF export failing on larger decks. If one slide referenced an image that was slow or unreachable, waiting for it timed out and the whole export errored; each slide is now rendered so a single stuck image no longer fails the rest of the deck (that image may just be missing from its slide).
-
App: dropdown menus no longer open partly off-screen on phones. A menu whose button sits near the left edge (like a deck's Export menu when the header wraps on a narrow screen) used to push its panel off the side; menus are now kept within the screen so every option stays visible.
-
Slides: the deck editor's Export menu is back. From a deck you can now download a PDF (one page per slide, full 16:9, with selectable text) or the self-contained HTML. It was hidden while we fixed the PDF, which used to capture only the cover slide.
2026-07-23
- Slides: exporting a deck to PDF now includes every slide, not just the cover. Because a deck is a one-slide-at-a-time viewer, Download, PDF used to capture only the first slide; it now renders each slide and combines them into a single multi-page PDF, at full 16:9 size and with selectable text, that you can hand to a customer.
- Pricing: hosted images (on pages and decks) now count toward a per-workspace storage limit, 100 MB on Free, 1 GB on Individual, 5 GB on Startup, 25 GB on Business, and unlimited on Enterprise, shown on every plan. Each image can still be up to 4 MB, and your pages and decks themselves stay unlimited. An upload that would go over the limit is declined with a clear message; nothing is ever deleted for you.
- Pages: the upload box now says you can include images. Its hint used to read "single self-contained HTML or Markdown file", which hid the new ability to drop an HTML file together with its images (or a whole folder) and have them hosted automatically. The wording now makes that clear.
- Branding: you can now upload a separate logo for dark mode. In Settings under Branding, add a dark-background version of your landscape or square logo, and it shows on dark headers (in the app and on your shared pages), falling back to your main logo if you leave it empty. This fixes logos designed for light backgrounds looking wrong on a dark header.
- Branding: the sign-in screen shown for a page that needs access now uses your dark-mode logo when it renders in dark mode too, matching the rest of the shared-page chrome, instead of always showing the light logo.
- App: fixed section headings and labels that showed as near-black, and hard to read, in dark mode (most visible on a shared page's Manage panel). Text that took its color from the page default now follows the theme like everything else.
- App: dark mode now covers your Home. Following the header and dashboard, the Home screen (the greeting, the springboard, "Needs you", "Jump back in", your top pages, and "What's new") now follows your Light, Dark, or System choice too. More app surfaces are still to come.
- App: dark mode now covers the slide editor. The deck maker's rails, toolbars, inspector, and its dialogs follow your Light, Dark, or System choice. Your slides themselves still render in their own theme, unchanged.
- App: dark mode now covers the rest of the signed-in app. Settings, page and folder management, sharing, comments, and members all follow your Light, Dark, or System choice, completing the rollout across the app. The marketing site stays light as before.
- App: fixed a light strip that showed below the content on shorter pages (like Settings) in dark mode. The dark background now fills the whole screen.
- App: dialogs, menus, and pop-ups now follow dark mode too. They render in a separate layer that the theme wasn't reaching, so things like the "Create a presentation" dialog stayed light on a dark page. They now match your Light, Dark, or System choice.
- Shared pages: the viewer now supports dark mode. When you are signed in it follows your Light, Dark, or System choice; for anyone you share a link with, it follows their device's system setting. Your page's own content still renders exactly as you designed it, only the surrounding chrome (header, menus, comment and manage panels) changes.
2026-07-22
- App: a dark mode for the signed-in app. A new Appearance setting under Settings lets you pick Light, Dark, or System (which follows your device), and your choice is remembered in your browser. It is rolling out surface by surface, starting with the app header, navigation, and your dashboard, with the rest of the app to follow. Shared pages and the marketing site are unaffected.
- Navigation: signing out from the mobile menu now works. On phones the account control was Clerk's own popover, which opens outside the menu, so tapping "Sign out" was read as tapping away and just closed the menu instead of signing you out. The mobile menu now has a direct "Sign out" item that works on the first tap. Desktop was unaffected.
- Auth: if your session has expired or you open an app page (your home, dashboard, or a deck in the editor) while signed out, you're now sent to sign in instead of hitting a generic "An error occurred" page. A lapsed session during navigation used to surface a render error rather than a clean redirect.
- Slides: presenting a deck full-screen now works in Safari. The F key and the fullscreen button relied on a browser API that only Chrome and Firefox expose, so on Safari (and other WebKit browsers) nothing happened; they now use Safari's prefixed equivalent, so Present-mode fullscreen works there too.
- Slides: a frosted-glass panel style for decks. Add
glassto a card, table, or chart card on a dark slide and the slide's background blurs through it, so a data table can sit on a translucent panel instead of a solid white block. The AI editor can now apply it too. - MCP: a new set_presentation_theme tool switches an existing presentation to a different theme (a builtin or your workspace's own brand theme) and re-skins every slide with it, no re-authoring. Until now the only way to change a deck's theme was to rebuild it slide by slide; the deck keeps its content and its shareable link, and you can switch back at any time.
- MCP: a new delete_presentation tool lets a connected AI assistant delete a whole slide deck by id (owner or workspace admin), the deck counterpart to delete_page. Until now a presentation created over MCP could only be removed from the app.
- Sharing: opening a page that was shared with you from another workspace now works from your "Shared with me" list. The open-link used your own workspace's address instead of the address of the workspace that owns the page, and a page opened on the wrong workspace address returns a "Page not available" 404. The link now points at the owning workspace, so shared pages open correctly for people outside that workspace.
- Slides: the AI editor's prompt box no longer locks while an edit is applying. It stays live so you can start drafting your next instruction during the wait, instead of clicking a greyed-out field that won't accept input.
- Slides: changing a slide's layout is more reliable. If the AI's first transpose comes back malformed or the model call blips, it now retries instead of failing outright, the same self-repair "Create with AI" already uses, so a layout change that used to error just works.
- MCP: create_page and update_page no longer risk saving a page as "Untitled" when a title is sent together with a large HTML body. The title and the other small settings are now sent ahead of the content so a long document can't crowd them out.
- Sharing: a link that uses the wrong prefix for its content no longer dead-ends. Pages live at /p/ and presentations at /s/, and because the two share the same link format, one wrong letter used to show a misleading "Page not available" even though the content was fine and the link still active. Now a /p/ link that actually points to a presentation quietly forwards to the presentation (and a /s/ link that points to a page forwards to the page), so a mistyped or mis-copied prefix just works.
- Slides: the AI editor's composer is tidier. Now that the Apply button narrates what the assistant is doing, the separate "Claude is editing this slide" line is gone, and the starter prompt suggestions (and the "edit over MCP" hint) show only on a fresh slide, clearing out once you have started a conversation so the panel below the input stays uncluttered.
- Slides: when you ask the AI editor to change a slide, it now tells you what it is doing while it works, "Looking at the slide", "Thinking about the change", "Making the change", and "Checking the result", instead of a single unchanging "Applying" spinner. On visual edits, where it renders the slide and verifies its own work, this makes the extra time it takes understandable rather than a mystery.
- Home: the "What's new" card now shows the three most recent releases instead of two, so more of the recent story is visible at a glance without opening the Releases page.
- Slides: the AI editor now recognizes more requests as visual ones, so it renders the slide and checks its own work on them. Asking it to make something "wider" or "less cramped", to "add space" between elements, to "rearrange" or "redesign" a slide, or to just "do better here visually" now goes through the same see-and-verify loop as moving or resizing an image, rather than editing the layout blind. Plain text edits stay on the fast path.
2026-07-21
- Slides: the AI editor can now SEE the slide it is editing. For visual changes (moving, resizing, aligning, cropping, or arranging images) it renders the slide, looks at the result, and checks its own work before finishing, instead of editing the underlying code blind. This fixes cases where it confidently claimed a layout was right when it was not, like turning four images into a 2x2 grid. Visual edits also now run on a stronger model, and you can build a true image grid with a single container. Plain text edits are unchanged and just as fast.
- Slides: asking the AI to place two or more images "at the same size" now actually makes them the same size. Previously it sized each image independently, so photos with identical dimensions could still come out different sizes and land unevenly. The editor now lays same-size images in an equal, centered row, so they match and sit equidistant from the middle of the slide, without cropping.
- Slides: the AI editor's "Apply" button now shows a spinner and "Applying…" while the assistant works on your slide, so it's clear the request is being processed instead of looking like nothing happened.
- Slides: you can now reorder slides by dragging them in the left rail, with a drop line showing where the slide will land. The "Move up" and "Move down" menu items still work for keyboard and precise moves.
- Docs: a new Releases page (/docs/releases) tells the story behind each batch of updates, grouped by month, with a link to the full changelog for the detail. The App Home "What's new" card now features the latest release instead of the raw daily log.
- Slides: you can now resize and crop an image in the editor by hand, no AI prompt needed. Click any image on a slide and a small toolbar appears: switch between Fit (show the whole image, never cropped) and Fill (crop to a tile), make it larger or smaller in steps, replace it, or reset it. In Fill mode you drag the image to choose exactly what stays in frame, so getting two photos to the same size or keeping people from being cut off is now a direct click-and-drag instead of a back-and-forth with the assistant.
- Slides: the AI slide editor is much better with images. It no longer crops or cuts people out of photos when you ask it to place or resize an image, it keeps the whole picture visible by default, and it handles tall (portrait) photos and two images side by side without squashing them into a fixed box. A real photo dropped into an image slot now fits inside the frame instead of being clipped.
- Navigation: the plan badge next to your workspace name now names your actual tier (Solo, Startup, Business, or Enterprise) instead of a generic "Pro". Free workspaces still show a "Free" badge that links to billing, and grandfathered accounts keep their "Pro" badge.
- Pricing: the plan cards are cleaner. Each plan now leads with its contributor and built-in AI allowance as plain checklist items, worded the same as the billing settings ("Up to 25 contributors", "75 built-in AI slide decks / month"), instead of the boxed tiles that over-emphasized the numbers, so the allowance is clear even if you're new to the product. Prices now spell out "/ year" and "/ month" in full rather than "/ yr" and "/ mo", and the billing toggle now starts on Monthly so you see the smaller monthly price first (Annual, with its discount, is still one click away). All four cards are the same height and sit flush in one row, with their "Get started" buttons aligned; the recommended plan stands out with a brand outline and badge rather than a raised, shadowed card. The page itself is also lighter: the hero is a clean headline (the mock billing screenshot is gone), the Monthly/Annual toggle is centered above the plans, and "The short version" is now an expandable FAQ that matches the one on the homepage. The FAQ answers more of the real questions too (what a built-in AI slide deck is, exactly what uses one, top-ups, switching between monthly and annual, and downgrades) and drops the internal word "credit" in favor of the plain "AI slide decks" the plans already use.
- Slides: the /slides page hero now carries an "AI slide decks" label above the headline, matching the pricing and about pages, and the gap between the hero and the animated demo below it is tightened so the demo comes into view sooner.
- Navigation: "Security" no longer takes a slot in the top navigation. The security overview is still on the homepage and linked from the footer, so the nav stays focused on the main destinations.
- Polls and forms: the page owner now gets an email when responses come in, right away for the first one and then at most once an hour with a running count, so you never miss new results. Every email links straight to the results and has a one-click unsubscribe.
- Forms:
<smp-form>fields can now be dropdowns, single-choice, multiple-choice, numbers, or email, not just text. Addtypeto a<smp-field>and list choices as<smp-option>children. Perfect for RSVPs (attending, party size, meal choice) and structured intake. Answers still export to CSV, one column per field. - Forms: the CSV export now lists its columns in the same order as the fields on your form, instead of an internal ordering, so the spreadsheet reads the way you built the form.
2026-07-20
- Slides: "Create with AI" is more reliable and handles bigger decks. A detailed brief could fail with "The AI had trouble building your presentation" because one off-spec slide in the plan was rejecting the whole deck; the planner now repairs those instead of failing. You can also pick up to 20 slides (was 12), and if your notes mention a slide count that differs from the dropdown, the form now points it out with a one-click way to match it.
- MCP: the
get_docstool can now read an individual documentation page again. Asking for a specific page (for example the security or live-polls docs) previously failed with a file-not-found error, so connected AI assistants could only see the page index; they can now read the full text of any page. - Slides: new presentations are now private by default (only you), matching how pages work. You change who can see a deck from the Share dialog, the same one pages use. Existing presentations keep their current visibility. The visibility dropdown that used to sit next to the Share button is gone; a small label there now just shows the current setting.
- Slides: the embedded deck previews on the homepage and /slides now render as faithful, scaled-down miniatures of the real deck instead of an oversized crop, so the slide and its controls no longer overlap inside small cards. Every deck preview, the featured one and the gallery examples, now opens the real deck in a new tab on click.
- Slides: sharing the /slides link (iMessage, Slack, etc.) now shows a proper preview image instead of a blank card.
- Home: "Jump back in" now shows real preview thumbnails of your pages and decks instead of plain colored tiles, and on phones the preview cards stack one per row. The mobile layout no longer runs off the side of the screen. "Needs you" now lists genuinely unresolved comments on your pages and decks (so a comment awaiting your reply no longer disappears just because you glanced at the notification bell).
- Home: "Jump back in" opens a deck straight in the editor, and "Needs you" now tracks whole comment threads: resolving a comment clears it from the list instead of leaving a reply behind. The footprint now shows your total page views instead of a folder count, matching the analytics modal.
- Home: a visual polish pass, the dashboard is wider, "Needs you" items now have a type icon, a timestamp, and a Reply/Review action, "Jump back in" cards carry a Page/Deck tag, and the Create panel and footprint stats gain small icons. The analytics modal also fits its content correctly.
- Home: the "Your footprint" numbers are now clickable and open an analytics modal, with a You / Workspace toggle showing total views, unique viewers, a 30-day views trend, and your top pages by views.
- Home: the Create panel now works. "New presentation" opens the deck picker (template or Create with AI) right there instead of jumping to another page, and the file tile creates a page from an .html or .md file you drop on it or click to choose. Home also now appears in the mobile menu.
- Slides/Pages: new
<smp-form>block lets a hosted page collect free-text submissions from many people (an intake form), not just poll votes. Authors choose whether someone can submit once or many times, and you read the responses from the page's Export CSV, with one column per field. Available on Living Pages workspaces.
2026-07-19
- Pages: images now upload as hosted assets instead of inline base64. Drop an HTML file together with its images (or a folder) in the browser and relative image references are rewritten to hosted URLs automatically, or add one over MCP with the new add_page_image tool.
- Home: opening the app now lands on a personal home page that shows what needs your reply, your recent pages and decks, a few quick stats, and what shipped recently. New accounts get a short guided setup to create a first page, make a deck, and invite a teammate.
- Pricing: the "built-in AI slide decks" allowance now links to the /slides page, so anyone unsure what slides are can see how they work.
2026-07-18
- Slides: now a first-class part of the homepage, with a dedicated /slides page showing how to build slides with AI, import PowerPoint, and share one link.
2026-07-17
- Slides: fixed importing a presentation onto your workspace's own brand theme. Importing could error ("couldn't use the template") or fall back to the generic theme when a workspace had a custom brand theme; imports now apply the brand theme correctly, whether it's chosen automatically or named explicitly.
- Pricing: the pricing page is redesigned. Every plan card now shows a two-metric strip (contributors and built-in AI per month) so the model reads at a glance, plans align on a shared baseline with a clearer recommended tier, annual prices show a per-month equivalent, and the Enterprise band lists its controls as compliance chips. The homepage teaser gains a labeled tier legend.
- Billing: a failed renewal no longer instantly removes a plan; entitlements stay while Stripe retries a past-due subscription and only drop when it actually ends. An unrecognized subscription price can no longer silently upgrade a workspace, and checkout now rejects an invalid billing period instead of defaulting to annual.
- Billing: top-up credits are now granted only after confirmed payment, subscription checkout prevents accidental duplicate plans, and Stripe portal plan changes stay in sync with the workspace.
- Billing: workspace settings now show live built-in AI usage, monthly allowance, top-ups, UTC reset, all self-serve plans, and admin-only checkout controls.
- Billing: Stripe checkout now supports Individual, Startup, and Business subscriptions plus idempotent +25 AI-deck top-ups for the current UTC month, while existing Pro subscriptions remain grandfathered.
- Pricing: a dedicated, bilingual pricing page now compares Free, Individual, Startup, Business, Enterprise, monthly/annual billing, top-ups, and unlimited bring-your-own AI; the homepage links to the full comparison.
- Billing: monthly built-in AI presentation limits are now enforced per workspace; retries count once, fully failed generations release their credit, and MCP/BYO-AI remains unlimited.
- Billing: contributor limits now count workspace members and unique page/presentation editors, never viewers; concurrent invites are checked safely and existing member/editor identities are deduplicated by verified email.
- Billing groundwork: the new Free, Individual, Startup, Business, and Enterprise plan model is defined, while existing Pro customers keep their current legacy entitlements.
- Billing groundwork: AI deck-generation credits now have a durable, retry-safe monthly usage ledger; limits are not enforced yet.
- Slides: Create with AI keeps the stronger model for deck planning and uses a faster model to fill each slide, with token usage logged for cost measurement.
- Docs: the homepage navigation and footer now link directly to the documentation, with Docs placed after About in the main navigation.
- MCP: a get_docs tool and a docs pointer in the server instructions, so a connected AI tool can read the ShareMyPage documentation (the access model, importing, themes, comments, endpoints) when it needs to check how something works.
- Docs: shared links to a docs page now show a branded social preview image with the page's title, matching the rest of the site.
- Docs: the sidebar is now consistent, every section is a flat group (the MCP section is no longer a dropdown), and no section header repeats its first page's name.
- Slides: once your workspace has its own brand theme, the New deck picker no longer offers the generic ShareMyPage theme, so a new deck can't accidentally start on the generic template.
- Docs: a step-by-step guide to connecting Claude and other AI tools (web, CLI, and other clients), and a dedicated "Import a PowerPoint" page.
- Docs: new pages for creating decks with AI, deck themes and branding, comments, and an endpoints reference (the raw, llms.txt, and download URLs).
- Slides: delete an element right in the editor, hover a text block, image, or button and click the ✕ to remove it, no AI needed.
- Docs: new pages on security and containment (how sandboxed pages are isolated, EU hosting) and on workspaces and members (membership, join links, vanity subdomains).
- Slides: Create with AI is more reliable, the outline step now retries a failed model call instead of giving up, so real briefs generate a deck rather than erroring.
- Slides: Create with AI takes more grounding. Paste much more context, or attach a Markdown or text file, so the draft is built from your real material instead of guessed. (To turn a PowerPoint into a deck, use Import a presentation.)
- MCP: get_layout suggests the closest layout id on a typo ("did you mean?"), so an agent recovers instead of retrying blindly.
- MCP: edit_comment and delete_comment let you rewrite or remove a comment you posted (a page or presentation owner/admin can delete any on their content; deleting a thread's first comment removes its replies).
2026-07-16
- Pages: live polls. Drop an
<smp-poll>block into any page and it renders as an interactive vote with results that persist and tally across everyone who opens the link, no backend of your own. Optionally require a voter name, and manage tallies, close, pause, reset, or export from the page's Responses panel. See Live polls. - Slides: resize text right in the editor, a smaller/bigger font-size control in the formatting toolbar, no AI needed.
- Slides: 12 more layouts, including true two-column and trio layouts, plus animated proof stats.
- Slides: @mention teammates in slide comments, with a notification.
- Slides: content animates in automatically as you advance, and tall slides scale to fit instead of clipping.
- Slides: deck-level layout planning, so re-authored imports vary their layouts.
- Slides: new decks and imports prefer your workspace's brand theme, and imported cover and closing slides use its branded layouts.
- Slides: deferred slides are now explicit and clearly marked.
- Slides: the dashboard and builder load faster (loading skeletons and parallel fetch).
- Slides: fixed PPTX run spacing and run-together titles, image overflow in cards, dark-slide contrast, and AI editor errors on newer models.
- Docs: a documentation site at /docs with search and dark mode, a machine-readable /llms-full.txt, an MCP section, and the changelog moved to /docs/changelog.
- Fixed app-wide "Something went wrong" errors from notification polling and other hot paths overloading our sign-in provider's rate limit.
2026-07-15
- Slides: import a PowerPoint (.pptx) into a native, editable deck, with any-size upload and a grounded re-author mode (the default) that redesigns each slide with your theme.
- Slides: three new layouts, logo wall, device showcase, and quote-with-evidence.
- Slides: the maker splits into Edit and Review modes.
- Slides: the in-editor AI editor now makes targeted edits with visible reasoning, conversation memory, and clear success or failure outcomes.
- Slides: AI decks always get a branded cover and closing slide, with clearer errors and per-slide retry so decks no longer come out blank.
- Slides: hardened image fetching and theme-logo validation, and fixed a folder count that could be seen across workspaces.
2026-07-14
- Slides: renamed from Decks across the app, the routes (/slides, /s), and the MCP tools, with redirects from the old paths.
- Slides: per-slide comments, including highlight-to-comment right in the editor.
- Slides: share a presentation like a page, with a Share dialog, password, per-person viewer or editor invites with emails, and branded, unfurl-ready share links.
- Slides: inline text formatting (bold, italic, theme colors), readable image asset URLs, and a reworked theme editor.
- Slides: change a slide's layout while preserving its content, delete images, and replaceable placeholders.
- Slides: the deck cover uses the brand logo, presentation cards match page cards, and the dashboard hides others' private decks.
2026-07-13
- Slides: nine more layouts (timeline, steps, compare, bento, table, line chart, donut, team, progress), with variety guidance, and Create with AI enforcing layout variety.
- Slides: custom brand themes from a brand canvas (tokens, brand CSS, fonts), plus a freeform mode for fully brand-custom slides.
- Slides: a deck logo decoupled from the theme, uploadable in the editor and as a workspace default, shown on the cover and closing slides only.
- Slides: separate deck folders from page folders, light-only themes that flatten dark slides, and a mobile burger nav.
2026-07-12
- Slides: change a slide's layout and have AI move the content across.
- Slides: deck folders, a maker pass (undo, metric editing, image ergonomics, clickable covers), and a browse-layouts gallery in the theme manager.
- Slides: a get_design_guide MCP tool so external AI designs slides like the in-app AI.
- Slides: sturdier AI edits (they survive canvas edits and reject truncated fragments) and thumbnail retries.
2026-07-11
- Slides: native slide decks arrive, a deck maker beside Pages with a scaled, click-to-edit canvas.
- Slides: Create with AI generates a whole deck from a brief, and the Add-slide picker shows visual layout previews.
- Slides: version history, a neutral default theme, and custom themes (from your branding, with AI, or by hand), also over MCP.
2026-07-10
- Pages: edit rights are decoupled from visibility, with one unified share model (general access plus specific people).
- MCP: request_download_url to read large pages back, and proactive feedback prompts.
2026-07-09
- Pages: a per-page editor role, invite people as a viewer or an editor.
- An /about founder and team story page.
- Fixed shared /p links not unfurling for social crawlers, the comments panel now auto-opens only for unresolved threads, and page titles decode correctly.
2026-07-08
- MCP: first-class Markdown support, get_page outline and range, a screenshot_page tool for visual self-QA, list_pages with folder names and sizes, anchor-based inserts, and guidance for uploading large pages.
- Viewer: links in your page (mailto, tel, sms, and external CTAs) now work inside the sandbox.
- Pages: host large AI-generated pages via browser upload, and reject truncated HTML instead of saving a corrupt page.
2026-07-07
- Pages: replace a page's content by uploading a new Markdown file.
- Fixed a sign-in loop for invited guests without a workspace.
- Faster public thumbnails via CDN caching.
2026-07-06
- Examples gallery: richer detail pages with categories, related examples, an upload loop, and which-AI logos.
- Pages: per-page social images with the right title on every public page.
2026-07-05
- A redesigned centered hero with a full-flow product demo, now the default.
- An Examples gallery of live-embedded exhibits with copy-the-prompt, plus more exhibits and bilingual copy.
- A /brand page with a downloadable logo kit and colors.
- German localization across the flow demo, examples, and homepage.
2026-07-04
- Pages: download a page as Markdown, with the source preserved.
- MCP: a send_feedback tool that emails the team, with a usage-based feedback nudge.
2026-07-03
- Anonymous instant hosting: publish a page without an account, then claim, replace, or delete it.
- Pages: host Markdown files that render as clean web pages.
- MCP: patch_page and resolve_comment for lighter, comment-driven editing, plus status and comment_on_page.
- Dashboard: card action menus and folder rename, and clickable URLs in comments.
2026-07-02
- A polished interface across the app (dashboard, settings, members, comments, and the shared-page viewer), on a new component foundation, with surfaced errors and styled confirmations.
2026-07-01
- Dashboard: your public pages now show up, and the homepage copy was humanized.
2026-06-30
- A blog at /blog (MDX) with RSS and scheduled publishing.
- Workspace membership moved into our database, removing the 20-member cap.
- Branded link-preview images for Pro pages and workspace roots.
- Mobile fixes (portrait gutter, viewer scroll) and visibility icons on cards.
2026-06-29
- Pro vanity subdomains (yourname.sharemypage.app) with a branded workspace landing.
- Workspace member invites and a shareable join link.
- Mobile: fixed iOS input zoom and added Add-to-Home-Screen install.
2026-06-28
- Broad AI-readability: JSON-LD, llms.txt, a sitemap, and an API catalog with OAuth metadata so agents can discover the service.
- A flagship "Q3 Launch Brief" example and a landing-page restructuring.
2026-06-27
- A /mcp marketing page and a sharpened security section.
- A landing-page conversion pass (hero CTAs, pricing, video).
2026-06-26
- Machine-readable
/raw/<slug>so public pages, and normal public links, are readable by AI tools. - An in-app notification center.
2026-06-25
- Onboarding: a starter demo page and an OAuth-first "Connect AI" step.
- White-label shared pages (Pro): your logo and brand color on the viewer.
- Cookieless, EU-hosted analytics, with user content masked in session replays.
- Folders: drag pages into folders, upload straight into one, and move a page from its settings.
- Link previews that show the page title (opt-out), and plan limits surfaced as upgrade prompts.
2026-06-24
- MCP Connectors Directory readiness: tool annotations and Clerk OAuth.
- Landing-page social proof.
2026-06-23
- Highlight-to-comment (inline) feedback on shared pages.
- Free plan gates (5 pages, a page-size cap, an API token limit) and expanded Pro analytics (an over-time chart, first and last seen, the full viewer list).
- Enterprise readiness: DPA and subprocessors pages, an SSO and SAML setup runbook, and real branded emails.