Free during the betaVersion 0.4.4macOS & Windowsproprietary licenceRead what to expect
Changelog

What's new in Prompt to Page.

Notable changes to each release, newest first, plus the work in progress on main that hasn't shipped in a build yet. This project follows Keep a Changelog and Semantic Versioning. Downloads are on the releases page.

Unreleased

In progress on main

Work on main that has not yet shipped in a published build.

0.4.4

2026-08-25

A generation-quality release for the two newest packs. Scored 20-case and 16-case live batteries were run against the NSW Design System and Bootstrap Italia packs, and the failure patterns they surfaced — models copying markup a static prototype cannot use, or inventing class names where the bundled guidance only listed them — are fixed in the prompts and component corpora this release ships. Also picks up a dependency security update.

Changed

  • NSW pack: JavaScript-enhanced components now generate usable markup. The live battery showed that where the bundled component guidance only listed class names, models invented GOV.UK-shaped nsw-* BEM tokens that match nothing in the design system's CSS. The corpus now carries the real pre-enhancement HTML trees for the JavaScript-backed components (tabs, accordion, side navigation and friends), the repeatedly-invented tokens are dropped from the guidance, and the class validator recognises the added markup — so generated NSW pages render with the design system's actual styles instead of unstyled invented classes.
  • Bootstrap Italia pack: confirmation and journey pages now use static-friendly patterns. The live battery showed models copying the corpus's JavaScript notification toast (which never fires in a static prototype), the modal primary-action snippet, and Italian button labels (Continua) into English-language prototypes. The prompt and corpus now teach a visible alert-success confirmation panel, "Start now" journey links, and data-field review rows, with class-grammar examples written in English.
  • Both packs now ship with a scored evaluation battery, with multi-seed medians recorded in the in-repo eval records. Pack quality scores in the model catalog are unchanged in this release.

Security

  • Updated DOMPurify from 3.4.12 to 3.4.14, clearing GHSA-55q2-fjhq-7xh7 (moderate): in the affected versions, removing an IN_PLACE hook could leave a detached subtree executable. The app was not exposed to this — the sanitizer has a single call site that sanitizes to a string, and registers no hooks — but DOMPurify is the seam that scrubs model-generated markup before it reaches the preview and the export, so it is kept current on principle rather than on reachability. Shipped builds up to and including 0.4.3 carry 3.4.12.

0.4.3

2026-08-23

A reliability release. Generated pages are no longer thrown away when the follow-up quality check runs out of room, quitting the app no longer leaves the model server running, and local backends work on machines with a corporate proxy configured.

Fixed

  • A generated page is no longer discarded when the quality-repair turn fails. The repair pass sends the whole generated page back to the model along with the issues to fix, so it is always a larger request than the generation that just succeeded — on dense packs (Scottish Government most of all) that could overflow the context window. The page you had just watched stream in was replaced by a raw backend error. The un-repaired page is now kept instead. Stopping a generation still stops it.
  • Quitting no longer leaves the model server running. On macOS, Cmd+Q delivers a shutdown event the app was not listening for, so the local model server kept running after every quit — holding several gigabytes of memory and port 8080 until the next launch swept it up. Cmd+Q, logout, restart, shutdown, and Activity Monitor's “Quit” now all shut the server down. A force quit still leaks it; the next launch reclaims it as before.
  • Local backends no longer break behind a corporate proxy. The app's local HTTP connections — the built-in model sidecar, the Apple Silicon MLX sidecar's readiness and health checks, and Ollama / LM Studio connection checks and generation — were silently routed through HTTP_PROXY-style environment variables and explicit system proxy settings. A proxy asked to reach the machine's own 127.0.0.1 refuses, so running local servers looked unreachable (and MLX could sit at “starting” indefinitely) on proxied machines. Local connections now bypass proxies entirely; model downloads keep full proxy support.
  • Wrong-server errors are no longer misreported as “not running”. When something answers at the configured Ollama / LM Studio address but does not return the provider's model list (wrong port, a proxy or another app on that port), connection checks now say so — with the address to check — instead of telling you to start a server that is already answering. First-run setup labels that provider “Unexpected response” rather than “Not running”, and drops the “go start the server” steps that contradicted it. The copied diagnostics report includes the raw probe cause, so connection-refused, timeout, and wrong-service failures are distinguishable in support threads.
  • The “Ready” status chip no longer overflows the status bar at the bottom of the window, where it spilled past the border and the rounded window corner.
  • When the app is terminated by a signal it now reports the conventional exit status (128 + signal number) instead of 0, so scripts and supervisors can tell a terminated app from a clean quit.

0.4.2

2026-08-23

A fix release for the two backend problems reported against 0.4.1: the MLX backend could not start on macOS 14 or 15, and LM Studio would not connect unless CORS was switched on. Troubleshooting reports now carry the app version.

Fixed

  • macOS 14/15: the MLX backend could not start on 0.4.0 and 0.4.1 (it failed with “Failed to load the default metallib … language version 4.0”). The bundled MLX runtime was built for macOS 26 because pip chose the build host's wheel platform and the interpreter came from Homebrew. The MLX bundle is now built from a pinned, checksum-verified standalone CPython and macosx_14_0_arm64 wheels regardless of the host, and the release gate verifies every library and wheel tag in the bundle against the app's macOS 14.0 floor. The llama.cpp backend was not affected. Requires installing this release (or updating in-app); there is no workaround on the affected versions.
  • LM Studio showed as “Could not reach LM Studio” even when its server was running. LM Studio's local server has CORS off by default, so the app's in-WebView connection check was blocked while generation (which already ran natively) worked. Connection inspection and model discovery for Ollama and LM Studio now go through the Rust side as well, so LM Studio connects without enabling CORS. The LM Studio setup and recovery steps now name the Developer tab and the default server address.
  • Copied troubleshooting reports said “App version: <unknown>”. The connection screen, first-run setup, and Settings all omitted the version when building the redacted report, which made support triage unable to tell 0.4.0 from 0.4.1. All three surfaces now stamp the running app version.

0.4.1

2026-08-23

A compliance maintenance release. No new features: the GOV.UK header and footer are removed from the bundled component corpus and the generation prompt, a content-aware brand-compliance check now gates every build, and the export wording on public surfaces is corrected.

Changed

  • Protected GOV.UK furniture is no longer bundled in the component corpus. The header and footer entries — whose reference markup carries the crown logotype and the OGL licence and copyright marks — are removed from the component database the app ships and retrieves from, from the scraped example corpus, and from the class list in the GOV.UK generation prompt. The app's own unbranded shell (a header bar carrying only the service name, the prototype phase banner, and a footer with no licence sentence or Crown copyright link) already supplied page furniture in preview and export, so generated pages look the same; what changes is that the protected markup is no longer on disk inside the app or shown to the model. The corpus builders now strip these entries at source so a future re-scrape cannot reintroduce them.
  • Export wording corrected on public surfaces. README, the website docs and feature tour, and the marketing spec now say what the testable ZIP actually contains — local, font-stripped frontend assets — and that Prototype Kit and Nunjucks hand-offs use the receiving project's own dependencies; restricted fonts and protected marks are never bundled.

Added

  • Content-aware brand-compliance check in CI. The source tree is scanned for protected-mark SVG signatures (GOV.UK crown logotype, NHS logo, MOJ crest, USWDS official banner/identifier) and for embedded restricted-font payloads (GDS Transport, Frutiger, NTA), and the macOS and Windows build jobs run the same check against the packaged app. Class names and selectors alone are allowed — they are MIT-licensed frontend code.

0.4.0

2026-08-22

Three new design systems join the chooser — the NSW Design System, Bootstrap Italia and the Scottish Government Design System — taking the app to seven built-in base packs.

Added

  • NSW Design System as a generally available base pack. The Design system chooser now offers NSW alongside GOV.UK, NHS.UK, Abstract, and USWDS. Preview uses a de-branded header (no Waratah, no masthead). Generation quality is not yet evaluated, so Settings shows the existing caveat. Pinned to nsw-design-system v3.26.0.
  • Bootstrap Italia as a generally available base pack. The Design system chooser now offers Bootstrap Italia (bootstrap-italia 2.18.3, BSD-3-Clause) for Italian public-service prototypes. Generated pages use the framework's own markup with its pinned stylesheet, single bundled script and functional SVG sprite, served entirely offline; the Titillium Web and Lora (SIL OFL 1.1) and Roboto Mono (Apache-2.0) faces are embedded under their own licences, and the neutral shell carries only your service name and the prototype marker — no Italian public-administration logos are bundled. Generation is grounded by a dedicated system prompt and component manifest because the 2026-08-22 capability probe found local models produce no Italia-specific markup unprompted. Generation quality is not yet evaluated on the repeated-seed battery, so Settings shows the existing caveat. Pinned to the v2 line; the upstream v3 is still in beta.

Scottish Government Design System pack (beta)

  • Scottish Government Design System is selectable as a base pack (@scottish-government/design-system 4.1.1, MIT). Generated pages use the system's own ds_ markup and its pinned CSS and JavaScript; the bundled Roboto faces (SIL OFL 1.1) are inlined, and the Scottish Government logo and crest are never bundled — the shell carries only your service name plus a “not a real Scottish Government service” marker.
  • Grounded in official reference markup. The component corpus is curated from designsystem.gov.scot (OGL v3) and class-verified against the pinned stylesheet; six components the docs publish no markup for are deliberately left out rather than guessed.
  • Measured, not assumed. Seven built-in GGUF models were run through a 20-case Scottish Government battery (five seeds each): all seven scored at or above their GOV.UK rating — six at 4 of 5 and one at 3 of 5 — with no GOV.UK class leaking into any of the 700 generated pages. The model picker shows the measured rating per model; the MLX entries and the 32 GB-class models are not yet measured on this pack and show no rating, which is why this pack ships as a beta. GOV.UK and NHS.UK generation was re-measured on the same build and is unchanged.
  • Licence and brand facts are recorded in the assurance manifest with a primary-source URL and retrieval date for each, and CI refuses a build without them.
  • Quality report: class residue from another design system is reported as an error in evaluation, and every automatic repair stays visible in the per-page report.

0.3.2

2026-08-21

A second 32 GB-class model joins the catalogue for side-by-side comparison, and the app can now launch thinking-by-default models with reasoning switched off.

Added

  • Qwen3.6 35B-A3B — a 3-of-5 comparison entry in the 32 GB bracket. A mixture-of-experts model with 3B active parameters, measured at a five-seed GOV.UK median of 82 (quality 3). That is below Qwen3-Coder 30B-A3B's 89 (quality 4) at the same RAM tier, so the coder remains the recommended choice; this entry is offered so testers can compare the two side by side. 19 GB download; it appears in the model picker only on 32 GB machines. As with every rating, this comes from Prompt to Page's own internal evaluation set — a guide to relative model performance, not an independent benchmark.
  • Thinking-by-default models can be launched with reasoning off. Catalogue entries can now declare launch-time reasoning suppression, and the bundled llama.cpp server is started with thinking switched off for them so a generation spends its whole page budget on markup instead of deliberation. Only the new entry uses it; every existing model launches exactly as before.

0.3.1

2026-08-17

Usage statistics are now off unless you switch them on, the model catalogue gains its highest-rated model yet, and a group of 8 GB Windows PCs that couldn't get through setup can now install and use the app.

Added

  • Qwen3-Coder 30B-A3B, the highest-rated model in the catalogue. The first model to reach four of five on the headline quality rating. It's a mixture-of-experts coder, so although it's a 30B model only a small part of it runs for any given token and it answers faster than its size suggests. It needs 32 GB of RAM and appears in the model picker only on machines that have it. As with every rating, this comes from Prompt to Page's own internal evaluation set — a guide to relative model performance, not an independent benchmark.

Changed

  • Usage statistics are now off until you switch them on. From 0.2.4 the two lifecycle events were on by default with an opt-out. They now require you to turn them on yourself in Settings → Privacy. Updating sets them to off for everyone, including anyone who had deliberately left them on — a genuine earlier choice can't be told apart from the old default, so the app doesn't assume one. Nothing else changed about the data: still only "app started" and "app exited", and never prompts, prototypes, project content, model names or file paths.
  • More careful claims about what the app does. Copy across the site, the docs and the app itself no longer describes the built-in axe-core checks as establishing WCAG conformance. They catch common defects; user research, manual accessibility testing, content review and security review are still yours to do. System requirements now point to the per-model figures in the setup model picker rather than quoting one universal RAM minimum, because the available models span 8 GB to 32 GB.

Fixed

  • 8 GB Windows PCs are no longer turned away at setup. Windows reports the memory available to programs rather than the memory installed, and the difference — reserved for firmware and integrated graphics — was enough to put a nominal 8 GB machine just under the 8 GB floor. Installed memory is now read directly from the system, and both memory checks allow a small margin for measurement. The 16, 32 and 48 GB tiers are unchanged.
  • The "device not supported" screen is no longer a dead end. It appeared with no buttons and no way to close it, and because setup remembers where you got to, restarting the app — or even reinstalling it — went straight back to the same screen.

0.3.0

2026-07-30

The measured-quality release: every design system now has evaluation evidence behind it, the model picker shows what was measured, and generations got faster on the models that earned it. Plus: the macOS install is now notarized — no more Terminal step.

Added

  • Edit the generated code. The HTML code view is now an editor — change the markup directly and apply it verbatim, with per-page drafts and a heads-up when your edits conflict with a newer generation.
  • Per-page quality report. Issues the validator finds at generation time are shown on each page, instead of being fixed or recorded silently.
  • Per-design-system quality ratings. The model picker shows measured quality for each design system a model has been evaluated on — for example "Also measured — NHS.UK ●●●○○ · USWDS ●●○○○" — alongside the headline rating. These ratings come from Prompt to Page's own internal evaluation set; they are a guide to relative model performance, not an independent benchmark.

Changed

  • The macOS install is now warning-free. Builds are signed with an Apple Developer ID and notarized by Apple, so the app opens straight from Applications — the first-launch Terminal command is gone.
  • NHS.UK is now quality-evaluated. Six models measured at or above their GOV.UK level, and the "quality has not been evaluated" caveat is gone for NHS.UK projects.
  • Faster responses on eight models. Prompt sizes were reduced only where a per-model quality gate proved no loss — including the Qwen2.5-Coder 7B and 14B lines and both Gemma 12B models.
  • Better USWDS pages. Fixes from a full field review: proper prefix/suffix inputs, input masks, complete state lists, card containers, and consistent step indicators.
  • Hallucinated class repair. The validator now automatically corrects two systematic model mistakes — wrong-number component families (like a singular NHS checkbox class) and overlay components written under the base system's prefix — so more pages render correctly first time.
  • The bundled MLX runtime's prompt cache is now capped, preventing memory exhaustion in long generation sessions on Apple Silicon.

Fixed

  • Devstral Small 2 24B is no longer offered on 24 GB Macs: loading it could crash the whole machine, so it now requires 32 GB.
  • The validator catches more generation defects found in review: bare typography, misattached hints, duplicate headings, malformed forms, summary-card structure, and broken journey routes.

0.2.5

2026-07-19

A fix for a startup crash in 0.2.4, plus limited, opt-out beta usage insights on by default.

Fixed

  • The app opens again. On macOS, 0.2.4 could quit the moment you launched it, before its window appeared. 0.2.5 corrects the startup sequence so the app opens normally. If you're on 0.2.4 and it won't open, download 0.2.5 and reinstall — the in-app updater can't reach an app that never finishes launching.

Changed

  • During the closed beta, two limited Aptabase lifecycle events are enabled by default to measure aggregate use and improve the app. They never include prompts, prototypes or project content and can be turned off in Settings → Privacy.

0.2.4

2026-07-19

Limited usage analytics — on by default for the closed beta, with an opt-out — plus a preview fix.

Added

  • Usage analytics (Aptabase). A limited, privacy-preserving measure of aggregate use during the closed beta — on by default, opt out any time in Settings → Privacy.

Changed

  • During the closed beta, two limited Aptabase lifecycle events are enabled by default to measure aggregate use and improve the app. They never include prompts, prototypes or project content and can be turned off in Settings → Privacy.

Fixed

  • Closing the block-action menu in the preview now clears the highlighted block selection.

0.2.3

2026-07-18

Deterministic block actions, NHS generation refinements, and accessibility fixes.

Added

  • Deterministic block actions. Delete, move and duplicate individual blocks on a page directly from a popover in the preview, without regenerating the page.

Changed

  • Refined the NHS.UK generation prompts and evaluation set for better, more consistent NHS output.

Fixed

  • Linked-page exit selection now resolves the correct target when choosing where a linked page's exits should go.
  • The accessibility panel's AI remediation is now actionable — its guidance is usable and links to external Design System / WCAG guidance open in your browser.
  • Clicking into the chat composer while the tools rail is open now focuses the composer instead of first dismissing the panel.

0.2.2

2026-07-18

Multi-page working gets much sharper: pages keep their own conversations, prompts can reference other pages, and Settings is reorganised around what you're actually doing. macOS build available now; the Windows build follows shortly.

Added

  • Page-scoped conversations. The Transcript now follows the active page — chat and generation happen per page, so refining one page no longer tangles with another's history.
  • @page references. Mention another page in a prompt (e.g. @Check your answers) and its content is included in the request, so you can ask for a page that builds on or matches one you already have.
  • Journey replacement guard. Generating a new journey asks for confirmation before it replaces one you've already built.
  • Reorganised Settings. A two-pane Settings with Local AI, Appearance, Updates and Help & feedback sections, per-section apply and discard, a keyboard-shortcuts reference, and plainer language throughout.

Changed

  • Every panel now shows the same page label (title plus path), so a page is called the same thing everywhere.
  • Page-list thumbnails render in the project's active design system rather than defaulting to GOV.UK styling.

Fixed

  • A newly created blank page opens genuinely blank — with an invitation to describe it — instead of showing the previous generation.
  • The journey map draws branches in the order the journey plan intended.
  • Dragging a page somewhere it can't go now explains why instead of silently snapping back.
  • Prototypes that mark their main content with div[role="main"] now export and refine correctly, including pages without a container.
  • In the accessibility panel, the selected component stays selected when you click away from the panel.
  • Page validation no longer penalises header and footer furniture that the app shell provides.

0.2.1

2026-07-16

The Abstract design system is generally available, and the beta's commitments are now written into the app.

Added

  • Abstract base pack. A neutral, unbranded design system for prototyping services that aren't GOV.UK, now generally available in the design-system picker after a full visual pass over every component, style and spacing.
  • Beta terms in the app. A plain-English summary of the beta commitments — what's free, what happens when the beta ends, and the 30-day notice promise — in Settings → Help & feedback.

Changed

  • App copy now describes public service prototyping generally rather than GOV.UK-only, reflecting the switchable design systems introduced in 0.2.0.

Fixed

  • Back-link interception in exported prototypes now works for every design-system pack, not just GOV.UK.

0.2.0

2026-07-15

Switchable design systems, an app-managed project library, deeper exports, and in-app updates.

Added

  • Switchable design-system packs. The prototyper is no longer GOV.UK-only — a base design system can be selected per project, with retrieval, class validation, page furniture, prompts and export all following the active pack.
  • U.S. Web Design System (USWDS) pack with a curated component corpus and service-pattern guidance.
  • Early NHS.UK pack. Initial support for generating prototypes against the NHS design system (nhsuk-frontend). Quality is early and still being tuned.
  • Ministry of Justice overlay. An optional MOJ Frontend overlay layered on top of GOV.UK — early support, with a quality caveat in the design-system picker.
  • App-managed project library with a per-project saved design system, so prototypes and their chosen pack are preserved and reopened together.
  • In-app updates. The app checks for new versions on launch (toggle in Settings) and installs only with your consent. One-time note: 0.1.1 can't auto-update to 0.2.0 because the update signing key was rotated — download 0.2.0 manually once, and automatic updates resume from there.
  • Deeper exports. Download a runnable GOV.UK Prototype Kit project (Nunjucks views plus wired routes, using the receiving project's dependencies), or an evidence pack that embeds each page alongside a fresh axe-core accessibility scan run at export time. Standalone testable ZIPs include local font-stripped frontend assets; restricted fonts and protected marks are not bundled.
  • Retarget from the preview. Point a page's links and form actions at a different page without regenerating, and journeys heal their links automatically when pages are renamed.
  • Feedback and error reports, on your terms. A once-ever feedback prompt and per-incident error reports — nothing is sent without an explicit Send press, and you always see exactly what would be shared.
  • A "lite" model tier for low-spec Windows machines, plus clearer model guidance in the picker: quality dots, hardware tiers, and steering away from models that would run slowly on the device.
  • Per-pack licensing and asset handling: dependency licensing audits, pack asset sync tooling and NOTICE coverage so each design system stays correctly attributed.

Changed

  • Retrieval, validation, prompt assembly, preview and export now read from the active pack rather than hard-coded GOV.UK data, without changing GOV.UK output.
  • Refinement is now structurally scoped: edits splice into the exact blocks you selected, with per-page version history, replacing the legacy whole-page Refine.
  • Model downloads use parallel ranged HTTP as the primary transport for faster, resumable downloads (Windows keeps BITS as a fallback for managed-proxy networks).
  • Stopped redistributing the GDS Transport font and GOV.UK crown assets, which aren't licensed for reuse outside GOV.UK services.
  • Interface polish: grouped preview toolbar, a simpler Share & Export panel, progressively disclosed backend settings, and text-contrast fixes to WCAG AA.

Fixed

  • Preview interactivity and confirmation dialogs now behave correctly in the packaged app (both worked in development but broke under the packaged app's stricter security policy).
  • Stopped the first-run setup retry loop, and hardened generation against slow first tokens on CPU-bound machines.
  • CI, build and test-hardening fixes across the pack and project-library work, including stricter pack/version consistency guards.

Security

  • Remediated the July 2026 security review findings: stricter export path handling, a hardened LAN share server, and checksum verification for downloaded runtime components.

0.1.1

2026-06-26

Added a Windows build to reach macOS + Windows parity.

Added

  • Windows (x64) build shipped as an MSI installer alongside the macOS Apple Silicon DMG, with the bundled local-LLM backend, retrieval and validation at parity with macOS.
  • Honest model "warmth" (Cold / Warming / Warm) surfaced in the UI so a slow first token no longer looks like a hang.

Changed

  • Expanded the Windows model catalogue and applied each model's own chat template.
  • Model downloads on Windows fall back from BITS to a direct HTTP transport when BITS can't reach the download host.
  • Re-scored the model catalogue for more trustworthy quality guidance in the picker.

Fixed

  • Bundled the Visual C++ runtime so the local-LLM backend starts on a clean Windows install.
  • Enabled retrieval on Windows via an embedded corpus self-load, reported free disk space correctly on first run, reaped orphaned LLM sidecar processes and hardened model-switch and startup recovery.
  • Shipped a Windows installer packaging hotfix.

0.1.0

Initial release

Initial closed-beta release (macOS, Apple Silicon).

Added

  • Generate GOV.UK Design System prototypes from natural-language prompts using fully local LLMs — a bundled llama.cpp sidecar, an MLX sidecar on Apple Silicon, and optional external Ollama / LM Studio backends. Nothing leaves the machine.
  • Multi-page journeys with automatic reconciliation, so linked pages, back links and form-action exits stay consistent as pages are added, renamed or removed.
  • Section-scoped refinement with per-page version history, to iterate on part of a page without regenerating the whole thing.
  • Built-in accessibility checks (axe-core run inside the live preview, targeting WCAG 2.2 AA) and GOV.UK class validation with quality scoring.
  • Export and share: ZIP or clipboard export of the generated prototype, plus a LAN share server to open prototypes on other devices on the local network.
  • Guided first-run setup that recommends a model for the device and manages downloads.

Grab the latest build.

Downloads for macOS and Windows are on the releases page.