What's new

Every release of Gestalt Publisher DS, newest first.

Gestalt Publisher DS

Open Gestalt Publisher DS

Version 0.103.0

  • Docent now answers inside Help: type a question in Help's search box ("how do I add a page") and the best answer from Help shows above the results, with the article it came from. Search also finds articles for questions in plain words.
  • The Ask Docent button is put away until Docent can do more than Help search.
  • Help now opens below the top bar, so the Help button stays in view.

Version 0.102.1

Bug fixes and code cleanup.

Version 0.102.0

  • Meet Docent, your guide to Publisher DS. In the admin, choose Ask Docent just left of Help in the top bar (or press Ctrl+J, ⌘J on a Mac) and ask how to do something. Docent answers from the admin's Help, shows which article the answer came from, and suggests others worth a look. Nothing you type leaves your browser.

Version 0.101.0

  • New in the page editor: Insert > VectorCanvas embed. Paste a VectorCanvas file's Share link to show the file on the page, view only. It stays up to date as the file changes.
  • Settings > Connections now lists "Design sources (Figma and VectorCanvas)" and explains both.

Version 0.100.1

  • Important fix: the site's theme link (/api/theme), which Specimen, Gestalt System PM, UXR and Docs read to pick up your colors, now sends real colors on every design pack. Before, sites that don't use the ODS pack sent blank colors. Colors you set in Settings > Theme colors are sent too.

Bug fixes and code cleanup.

Version 0.100.0

  • Sections now open as a list of names only, so they're easy to drag into order on a big site. Open one with the arrow on its right to rename it, remove it or manage its pages; "Show all pages" opens them all.
  • Site Content: each section folds away to its name (with how many pages it has), "Close all sections" folds them all, and "Top-level pages only" hides sub-pages so the pages around them are easy to reorder. The list stays the way you left it in this browser.

Version 0.99.1

  • Important fix: setting up a new site no longer stops at Branding with a "Minified React error". The setup page sent you to sign in as soon as your account existed, even mid-setup, and saving the site name there also switched off every Settings checkbox. Now you stay in the setup and the Branding step changes only the name.

Bug fixes and code cleanup.

Version 0.99.0

  • In the admin, the side menu folds to a narrow strip of icons, so pages get more room. Use Collapse menu at the bottom of the menu, or press Ctrl+B (⌘B on a Mac). On smaller laptop screens it starts folded until you choose, and your choice is remembered. In the strip, each icon's name shows beside it when you point at it, and new counts show as a dot.

Version 0.98.1

Bug fixes and code cleanup.

Version 0.98.0

  • The public site is laid out like Gestalt Publisher Docs. Both sites now share one frame: the header, the side menu, the search, the page area and the home page are built the same way, while your design pack and the branding set in Admin still decide how it looks.
  • Phones. On a phone the header no longer overlaps or runs off the screen: your site's name, Feedback, Theme and Sign in share the top row and the search sits on its own row under them. The menu button opens the same side menu, including the Tools section (Design System Scanner).
  • Footer. Every public page now ends with the footer text and links you set for the home page in Admin, followed by "Gestalt Publisher DS by Phantomnaut".
  • The search box has a button to clear it while you type, and its results stay under the box when the page scrolls.

Version 0.97.0

  • The admin works like the other Gestalt System apps. Its screens are now listed in a side menu on the left, grouped into Content, People and Setup, like PM, PM Base, Forms and UXR. On a phone the menu button opens the same list. New messages and Curator results waiting for review show as small numbers beside their screens.
  • Back to site. The header shows Admin with the version, a Back to site link, Quick find, the Gestalt apps button, Help and your picture, in the same order as every other Gestalt System app.
  • The same user menu. Your picture opens a menu with your name and role, Theme Mode, View site, Account, About, Release notes and Sign out, laid out as in the other apps.
  • A shared sign-in card. The admin sign-in page uses the same card as the other Gestalt System apps, with your site's name on it.
  • Every admin page ends with "Gestalt Publisher DS by Phantomnaut", and a Skip to content link helps people who use a keyboard.

Version 0.96.0

  • The admin matches the other Gestalt apps more closely. Its text is set in Inter on every computer (before, only where Inter was installed), and every icon in the admin is a Material Symbols icon, like the rest of the suite. The public site keeps the icons of its design system.
  • Your account in the admin. Account in the admin's menu now opens inside the admin, with its header, Help and look. Members, who have no admin, keep their account page on the site.
  • Buttons, icons and small controls follow the shared sizes: buttons as tall as the text boxes beside them, icons at 18px (24px for the menu button), drag handles and small buttons at least 28px. Back links, Sub-page, the contrast checks and fold-out sections use icons instead of typed arrows and symbols, and the page behind a dialog dims the same way everywhere.
  • Gestalt apps button. The admin header has the shared Gestalt apps button just left of Help, like every other Gestalt app, to open PM, UXR, Publisher CP and Docs and the Gestalt Studio apps.
  • The Help button in the admin header looks like Help in every other Gestalt app: a plain question mark icon, without the circle around it.

Version 0.95.3

Bug fixes and code cleanup.

Version 0.95.2

Bug fixes and code cleanup.

Version 0.95.1

Bug fixes and code cleanup.

Version 0.95.0

  • Your site's name on the sign-in page. The sign-in page now reads "Sign in to" and the site name set in Admin > Settings, instead of a fixed name. A new site starts as Gestalt Publisher DS until you change it.
  • A home-screen icon out of the box. When someone adds the site to a phone's home screen, it now shows the Gestalt Publisher DS icon until you upload your own Apple touch icon in Admin > Settings.

Version 0.94.0

  • One web address. Once the site has a new address, every visit to an old one opens the same page on the new one, with the address bar updated. Links people saved, shared or bookmarked keep working. Nothing changes until the address is set.
  • Action: to move a site, add its new address in your hosting (for example ds.thegestaltsystem.com), then set CANONICAL_HOST to it and redeploy. People sign in again once on the new address.

Version 0.93.0

  • Connected libraries. Trove UI (Gestalt Studio's asset library) can now show this design system's icons and its light and dark logos: add the docs site's address in Trove UI's Settings, under Connected libraries. People can browse and search them there and copy the ones they need into their own library. Nothing here changes.

Version 0.92.0

  • Release notes. The new version card has a Release notes link, and the admin's account menu has Release notes under About. Both open the release notes for Gestalt Publisher DS, newest first: the six latest versions, then View more with a search box at the top. Opened from the new version card, they show what is waiting and offer Refresh. Fix-only versions just say "Bug fixes and code cleanup."
  • What's new. After an update with real news, a small card in the corner says so once, with a link to the release notes.
  • The admin's colors come from the Gestalt visual language 0.48, now copied here.

Version 0.91.0

  • DesignGuard 1.11.0. Its About link now opens the About card the Gestalt apps share: DesignGuard by Phantomnaut, its version, "Part of Gestalt System", the Phantomnaut Software credit and the License, Privacy and Terms links. The copy in public/vendor/design-system-scanner/ is updated.

Version 0.90.0

  • Design System Curator 0.7.0. Its About link now opens the About card the Gestalt apps share: the plugin's name, "by Phantomnaut", what it does, its version, "Part of Gestalt System", the Phantomnaut Software credit and the License, Privacy and Terms links. The copy in public/vendor/design-system-curator/ is updated.

Version 0.89.2

Bug fixes and code cleanup.

Version 0.89.1

Bug fixes and code cleanup.

Version 0.89.0

  • About card. About in the admin's account menu opens the About card the Gestalt apps share: the Publisher DS icon, name and purpose, “by Phantomnaut”, the version and build, “Part of Gestalt Publisher” (the logo is a placeholder for now), who makes it, and the License, Privacy and Terms links. It names the product, not your site. Who makes it and the suite live in lib/brand.ts.
  • The admin's colors come from the Gestalt visual language 0.47, now copied here.

Version 0.88.1

Bug fixes and code cleanup.

Version 0.88.0

  • New version notice in the admin. When a new version of the site goes live while someone has the admin open, a card in the bottom-left corner says so, with Refresh and Later. Nothing reloads by itself. Open tabs ask the new /api/version (never cached) every 5 minutes, when you come back to the tab and when the connection returns, and compare it with the build they loaded: the commit on Vercel, the deployment id for a Vercel CLI deploy, else git or the version. This follows the Gestalt visual language 0.21 (Update available), now copied here.

Version 0.87.1

Bug fixes and code cleanup.

Version 0.87.0

  • The Help panel closes when you go back to your work. Click or tap anywhere outside it, or press Escape, to close it; before, only its close button did. It also closes when you move to another screen, so it no longer shows up still open when you come back (a link inside an article still keeps it open on the screen it opens). This follows the Gestalt visual language Help panel pattern (0.18).

Version 0.86.0

  • Gestalt System PM can tell a project when a page it follows changes. When your company also runs Gestalt System PM and connects this site there, a PM project can follow the pages it relies on. Its people are notified when one changes, and the project's Design tab lists the latest changes, with a link back here. PM asks through the MCP tools what_changed and search_docs, which now take publishedOnly, so PM only ever sees published pages, even with a token that may see drafts. Nothing needs setting up on this site.

Version 0.85.1

Bug fixes and code cleanup.

Version 0.85.0

  • Gestalt System PM can import this design system into Design Check. A new MCP tool, get_scanner_spec, returns a scanner spec in full: this design system's own tokens when you leave specId out, or a saved spec by id. Gestalt System PM uses it when its Super Admin connects this site under Settings → Configuration → Gestalt apps, so its DesignGuard: Design Check scans against the published system instead of a copy kept by hand. It follows the same rules as list_scanner_specs: open unless Require a token for MCP is on, in which case PM sends a personal token.
  • Help for companies that run more than one Gestalt app. Two new Help articles: One Okta sign-in for your Gestalt apps (setting up the same company sign-in in Gestalt System PM, Gestalt System UXR, Publisher Docs and this site, and the role a first Okta sign-in gets in each) and One AI tool for all your Gestalt apps (connecting one AI tool to each app with your own tokens).
  • The AI tool settings on the Account page are now named `gestalt-publisher-ds`. They used to say design-system, the same name Publisher Docs used, so adding both to one AI tool replaced the first. If you added this site before, remove the old entry and add it again.

Version 0.84.0

  • New MCP tool `scan_page`: check a live page against the design system. Give it an address and it opens the page in a hosted browser, runs its JavaScript, and lists what is off the design system's scale with the nearest token to use. Choose a width and a scheme for other views, or a saved specId. Each call costs a browser session, so it is limited to 5 per person per 10 minutes, counted from the MCP call log; past that it points at the CI runner and the DesignGuard app. Action (optional): set BROWSERLESS_API_KEY to turn it on; without it the tool says it isn't set up and scan_markup keeps working. See docs/ai-tools.md.

Version 0.83.0

  • The scanner now says which token to use (plugin 1.10.0). A result that used to say "closest: 12px" now says Use `var(--space-3)`, with a Copy button, when a design token stands for the closest allowed value (the nearest token, which can be a slightly different value, so review it). On the CSS / code tab, Apply fixes replaces each fixable value with its token and Copy patch gives a git apply-able diff; font families, shadows and negative values are suggested but never edited. Specs generated from the design tokens now carry the token names, so a regenerated spec gets this automatically.
  • `scan_markup` (MCP) now works on the live site. It used to forward CSS to a scanner server at http://localhost:5173, which only exists on a developer's machine, so it failed in production. It now runs inside the app with the vendored scanner engine. By default it checks against this design system's own tokens (generated from the same tokens list_tokens reports, so nothing to set up); pass specId for a saved spec. Results carry the file and line and the token fix; pass fixes: true to also get a unified diff. A saved spec that doesn't name its tokens borrows this design system's token names. HTML and page scanning are not offered through MCP yet.
  • The vendored scanner engine is brought up to date (vendor/scanner-engine/, now with a shared/ folder), from an October 7 copy to the current one, so spec generation and the Curator use the same engine as the plugin.

Version 0.82.0

  • Updates: see what's new and update with one click. A new Updates screen (Super Admins only, in the menu next to Admin) shows which version the site runs, whether a newer one is out and what changed since yours. When one is out, an Update pill appears beside the version in the header and the Dashboard shows a notice you can skip. Update Now brings the site's copy of the code up to date on GitHub (it asks GitHub to sync the fork), waits while Vercel builds the new version, and reloads. Set it up once by pasting a GitHub access key under Set Up One-Click Updates; without it, Update by Hand lists the steps. Other copies read the list of versions from the original site's new /update-feed.json, made from this file.
  • The database updates itself during a production deploy. npm run build now runs prisma migrate deploy first on a Vercel production build (scripts/migrate-on-deploy.ts), so a new version's database changes arrive with it. If a migration fails, the build stops and the site keeps running the old version. Preview builds and local builds skip it. Action: none for most sites. Set MIGRATE_ON_BUILD=0 to keep running migrations by hand, MIGRATE_ON_BUILD=1 to run them on a non-Vercel host that builds in place, and DIRECT_URL if your DATABASE_URL goes through a connection pooler that migrations can't use.

Version 0.81.0

  • Help and your user menu sit together at the top right. The ? Help button is now just left of your picture, on every screen size. View Site and the light/dark switch moved out of the header into your user menu, on a computer as well as a phone. The switch is the Theme Mode row: a floor lamp, the label, and a sun/moon toggle where the filled one is the mode showing.
  • "Theme" is now "Theme Mode". On a phone, the light/dark toggle in the account menu (admin and public site) is labeled Theme Mode, matching the other Gestalt apps.
  • Account menu polish. The View Site globe and the Sign out icons now come from the icon library instead of the fallback icon font (the floor-lamp icon for Theme Mode and the arrow that marks a link opening in a new tab have no library icon yet, so they still use the font), the light and dark buttons stay 36px on a phone (28px from the medium breakpoint up), and the event that carries the switch to the admin theme is named once, in app/admin/admin-theme-mode.ts.

Version 0.80.0

  • The Design System Scanner has a new layout (plugin 1.9.0). The loader (URL, Paste HTML, Upload file, CSS / code) now runs across the top, and below it the page preview sits beside a results panel with the Scan button, summary, filters and findings; the results panel scrolls on its own. Before, the loader and the results were stacked in one narrow column beside the preview. The two columns stack when the space the scanner is given is narrow, so it works in a docs column. What is scanned, and how results look, are unchanged. No action needed.

Version 0.79.1

Bug fixes and code cleanup.

Version 0.79.0

  • The pack's Toast is now built on Radix, and nothing in the pack uses Base UI any more (the @base-ui/react package is removed). The Toast looks the same (pixel-identical for all five types, with and without a description, a button or the progress line; the stack of three sits in the same places), keeps its props (type, title, desc, ctaLabel, onCta, duration, withIndicator), and still pauses while the pointer is over it or focus is in it. What the library now supplies: urgent announcements for failures, swipe to dismiss, and Escape dismissing one toast at a time once focus is in the notifications area (F6 still jumps there). The enter and exit are now animations, because Radix waits for an animation to finish before it removes a closed toast. Sixth step of building the pack on shadcn/ui (see docs/spikes/shadcn-radix-pack.md); Checkbox, Radio group and Select wait for the designers.

Version 0.78.0

  • The pack's Popover and Tooltip are now built on Radix. Same look, same props. The Popover opens at the point the caller gives it, slides along the edge to stay on screen, closes on Escape, and a click outside it closes it without pressing what is underneath; it is pixel-identical at the middle, bottom and tall positions, and in the Scheduling grid's event editor the position is the same. One improvement: near the right edge the old panel hung off the screen and the new one flips to the other side of the point. The Tooltip is pixel-identical, opens on hover and focus, can be moved into with the pointer, closes on Escape (new), and is now announced to screen readers as a description of its element (new). One difference: pressing the element the tooltip is on now closes it, as Radix tooltips do. Fifth step of building the pack on shadcn/ui (see docs/spikes/shadcn-radix-pack.md).

Version 0.77.0

  • The pack's Segmented control and Dropdown are now built on Radix. The Segmented control keeps its tab semantics (one tab stop, arrows, Home and End select) and is pixel-identical in all three sizes with icons, in light and dark. The Dropdown keeps its look, its props (anchor, placement, offset, matchWidth, onClose) and its behavior: focus lands on the first item, arrows, Home, End and typing move between items, Escape asks the caller to close it, an outside click does not, and choosing an item leaves the menu open for the caller to decide. Positions and sizes are identical in all four layouts (below, above and end-aligned, as wide as its anchor, and inside its own container). One small difference: arrow keys now skip a disabled item instead of stopping on it. The Dropdown uses Radix's Menu parts directly (@radix-ui/react-menu), because Radix's ready-made DropdownMenu needs its own trigger and this menu is opened by whoever uses it. Fourth step of building the pack on shadcn/ui (see docs/spikes/shadcn-radix-pack.md).