Skip to content
ESC

Searching...

Quick Links

Type to search • Press to navigate • Enter to select

Keep typing to search...

No results found

No documentation matches ""

Changelog.

Release history for VoxelSite. Every update, every improvement, every fix.

Mar 26, 2026

Changelog

A quick star rating helps more people discover VoxelSite and directly supports continued development. ⭐️⭐️⭐️⭐️⭐️

Version 1.27.0

March 26, 2026

Manage your site structure directly from the Site workspace — rename pages, change URLs, move pages between parents, and delete with automatic reference cleanup. Plus nested pages in the Editor, a redesigned form success state, and email notification reliability improvements.

New

Page management in the Site workspace

The Site workspace is no longer read-only. Select any page in the hierarchy diagram and use the action bar to manage it:

  • Rename — change a page title inline. The title updates in the database and page tree immediately
  • Change URL — rename the page slug with live validation, a reference preview showing every file that links to the old URL, and an armed Apply confirmation. On apply: the file moves, all cross-references across the site are rewritten, and a safety snapshot is created
  • Move — reorder a page within its parent or move it to a different parent. Parent changes are a two-step transaction: structural move (file + slug + all references rewritten) followed by nav reorder to place the page at the chosen position
  • Delete — remove a page with full disclosure of affected references. After deletion, dead links are neutralized, navigation entries removed, and empty containers cleaned up automatically. A safety snapshot is created before deletion

Improved

  • Nested pages in the Editor — the code editor file explorer now discovers and displays pages in subdirectories (e.g. services/consulting.php) as expandable tree nodes with proper indentation
  • Actions Bar description — action descriptions are now shown as a subtitle below the form title in the Actions Bar, giving visitors context about what the form is for
  • Actions Bar button labels — the Actions Bar now uses the configured button label instead of the action name, so internal naming and visitor-facing text can differ
  • Form success animation — the success state after a form submission is redesigned with a theme-adaptive animation: circle scales in, checkmark draws, and message fades up. Uses currentColor to match any site design — dark backgrounds, light backgrounds, or anything in between
  • Submissions terminology — "Records" is now "Submissions" across all action-facing surfaces: card counts, column headers, search placeholders, export buttons, and purge controls
  • Email notification fallback — when a form's notification recipient template resolves empty (e.g. {{site.contact.email}} on a site without site.json), the mailer falls back to the configured From address in Settings instead of silently skipping the notification. Submission page URL is now included in notification emails
  • SMTP test emails — the Settings → Email test button now sends through the standard mailer pipeline, ensuring From address and name are applied correctly. Connection errors show clearer messages
  • Demo Mode — the Site workspace's Move, Rename, Change URL, and Delete actions show friendly demo toasts instead of raw 403 errors. The Move panel sees consistent demo data derived from the same source as the site graph

Version 1.26.0

March 23, 2026

Explore your site's structure in a new Site workspace, animated hamburger menus on generated sites, and polished form error messages. Plus shipped script cache busting so browser updates are instant.

New

Site workspace (beta)

A read-only structural explorer for inspecting your entire website as a connected graph. Two tabs:

  • Structure — page tree with a hierarchy diagram showing pages, partials, routes, design tokens, and assets. Expand any node to see its relationships
  • Impact — entity browser with relationship cards, blast-radius queries ("what breaks if I change this file?"), and URL migration preview

Desktop-only. Available to owners and editors. Shows a Beta badge in the navigation.


Improved

  • Animated hamburger menu — the mobile toggle button on generated sites is now a CSS-animated hamburger that morphs into an X when the menu opens. Four variants match the site's personality — Classic (three equal bars), Minimal (two clean bars), Asymmetric (descending widths), and Refined (middle bar shorter and centered). The animation uses currentColor to match the nav's text color automatically
  • Mobile menu padding safety net — the shipped navigation.js measures the header height at page load and applies matching top padding to the mobile menu. Links no longer hide behind the sticky header
  • Auto-close on viewport widen — if the mobile menu is open and the viewport widens past the desktop breakpoint, the menu closes automatically. Prevents a stuck overlay after device rotation or window resize
  • Form error messages — inline validation errors now show the field name in bold (e.g., "Email Address is required") with a red dot indicator. On validation failure, the page scrolls to the first invalid field. Errors inherit the site's typography and are placed below their fields with proper spacing
  • Editor tab bar — file tabs now fill the full 44px bar height instead of floating with dead space. Explorer sidebar icons are larger and easier to hit
  • Shipped script cache busting — the engine appends a content-hash version query (?v=XXXXXXXX) to all shipped script tags (navigation.js, form-handler.js, icon-resolver.js) on every generation and publish. After updating VoxelSite, browsers load the new scripts immediately — no manual cache clear needed

Fixed

  • Shipped navigation.js missing after generation — the engine did not always deploy navigation.js to assets/js/ after AI generation, causing MIME-type errors on Nginx when the browser requested the missing file. The shipped copy is now deployed unconditionally after every generation and every publish

Version 1.25.3

March 22, 2026

Improved

  • PHP string escaping in AI generation — the system prompt now enforces single-quoted PHP strings with escaped apostrophes, preventing the AI from producing broken array syntax when copy text contains contractions like "don't" or "it's"

Version 1.25.2

March 22, 2026

Improved

  • Interactive UI patterns in AI generation — the AI now wires up working JavaScript for filter buttons, tabs, and accordions on every generated site. Portfolio filters use data-filter/data-tags attributes with flat grid layouts so individual items show and hide independently. Previously, these controls could render as visual-only elements without interactivity
  • Refreshed demo preview site — the Studioform demo site was regenerated.

Fixed

  • Mobile navigation toggle icons not switching — the hamburger and close icons on generated sites could both remain visible or fail to toggle because navigation.js cached icon elements at page load, before the icon resolver replaced <i> placeholders with <svg> elements. Icons are now queried by ID at toggle time so they survive hydration
  • CSS specificity conflict hiding navigation icons.icon { display: inline-block } rules in generated sites could override Tailwind's .hidden utility class. The engine now injects .icon.hidden { display: none } as a specificity safety net into every generated site's stylesheet
  • Demo Board cards linking to wrong pages — the Board's demo cards referenced page slugs (work, studio) that did not match the actual demo site pages (portfolio, about), causing broken links in the demo Board view

Version 1.25.1

March 21, 2026

Improved

  • Typography fidelity on generated sites — the AI now uses semantic font classes (font-heading, font-body) that read directly from your design tokens instead of inline font names. Headings and body text render the correct font more reliably, and changing fonts via the Style panel updates every element automatically
  • Refreshed demo preview site — the Studioform demo site has a refined editorial design with new About and Portfolio pages

Fixed

  • Tailwind compiler dropping custom font classes — arbitrary font-family classes like font-['Playfair_Display'] were silently ignored by the built-in compiler. They now compile correctly to the expected CSS
  • Data-driven pages blank in preview — pages that read JSON data files (portfolio, menu, services) rendered empty in the Studio preview because the file path resolved to the wrong directory. The preview engine now ensures data files are reachable from all rendering contexts

Version 1.25.0

March 20, 2026

Smarter prompts, leaner context, and faster visual editor AI. The engine now sends the AI only the section it needs to edit instead of the entire page, enforces a strict Tailwind-first CSS strategy, and shows real-time generation phases in every editor surface. Icons on generated sites use a lightweight placeholder system that eliminates raw SVG from source files.

Improved

Snippet-based AI editing

The visual editor AI (section edit, add section, inline edit) now returns only a replacement snippet instead of regenerating the entire page. The engine extracts the relevant section, sends it to the AI with focused context, and performs a precise replacement in the source file — with whitespace-normalized and runtime-artifact-tolerant fallback strategies when exact matching fails.

This reduces output tokens by roughly 80% per visual editor AI edit, making section edits noticeably faster.


Tailwind-first CSS strategy

The system prompt now enforces a strict Tailwind-first constraint. Only seven specific categories are allowed in style.css:root tokens, @keyframes, [data-reveal] transitions, navigation structural CSS, mobile menu CSS, icon sizing, and prefers-reduced-motion. Everything else uses Tailwind utility classes in HTML. This produces cleaner, more consistent generated sites.


Real-time generation phases

The chat, visual editor, and code editor now share a unified full-page overlay during AI generation. The status shows four elements: elapsed time, current phase (reading, generating, writing, compiling), token count, and a Stop button. Phases persist to the database so a page refresh shows the last-known step instead of generic text. Stale-run detection uses the latest progress timestamp, not creation time.


Icon hydration system

Icons on generated websites now use <i data-lucide="icon-name"> HTML placeholders instead of inline SVG. A shipped icon-resolver.js fetches SVGs from /assets/icons/ and injects them inline at runtime — fully styleable via currentColor, cached per page load, with a circle fallback for missing icons. Icon name aliases are normalised on write, and unresolved names are logged as warnings after every generation.


  • Board card actions — the expanded card footer separates Archive (ghost button, left) and Delete (danger button, right) with inline icons and clearer visual hierarchy. Dropdown menu gains matching icons and a divider
  • Section divider safety — the + and ▲/▼ buttons between sections are hidden when any modal or panel is open, preventing accidental clicks through overlays

Fixed

  • Visual editor AI edits failing with "No changes made" — section edits could fail when runtime DOM state leaked into source files. The engine now sanitises both the AI input and output, and uses a three-strategy matching pipeline that heals contaminated files
  • Archive undo restoring card to wrong column — clicking Undo after archiving a card always placed it in the Done column. Cards are now restored to the column they were in when archived

Version 1.24.0

March 20, 2026

Voice input in the chat, a polished tooltip system, undo/redo in the visual editor, faster visual editor AI, and true server-side cancellation. Speak your prompts instead of typing, ⌘Z your way through visual edits, and cancel AI generation knowing it actually stops.

New

Voice input

Click the microphone button in the prompt toolbar to dictate your message instead of typing. The transcript is appended to the textarea — existing text is preserved. Click again to stop, or pause speaking and recognition stops automatically.

  • Browser-native — uses the Web Speech API (Chrome, Edge, Safari). No audio is sent to VoxelSite — transcription is handled entirely by the browser
  • Feature-detected — the button only appears in supported browsers. No disabled state, just absent
  • Active state — the button turns red and pulses while listening. Respects reduced-motion preferences
  • Error feedback — clear toasts for HTTPS requirement, missing microphone, and permission issues
  • Language — auto-detected from your browser's language setting

Custom tooltips

All tooltips across the Studio now use a consistent dark glassmorphic pill design. Keyboard shortcuts in tooltip text (like ⌘S) render as styled <kbd> badges. Tooltips auto-flip above or below the trigger element based on available viewport space.


Improved

Visual editor persistence layer

The visual editor now tracks every edit as a semantic operation — text changes, style changes, attribute changes, deletions, image swaps, and link edits all follow the same pessimistic save discipline. A per-session undo/redo stack lets you ⌘Z to undo individual visual editor operations without affecting the server-side revision history.


Visual editor source editor

The source editor now handles PHP-templated elements correctly. Elements containing PHP control-flow constructs (foreach, if, while) skip strict tag-balance validation — these create tag pairs that the static checker previously rejected as misnested. Security checks still run on all edits. When a source edit contains PHP, the preview reloads from the server instead of updating the DOM directly.


  • Faster visual editor AI — section edits and section additions now use a lightweight prompt with only the relevant page context, reducing response time significantly
  • True AI cancellation — clicking Stop or pressing Escape now halts generation on the server and rolls back any files already written. Previously, the AI could finish in the background after cancelling
  • Leaner AI context — the icon list no longer dumps all filenames into the AI context. The AI knows Lucide icon names natively — now it just gets the path format and a few examples, saving ~6K tokens per request
  • Visual editor generation timer — the overlay timer now shows 1m 23s instead of 83s
  • Visual editor polish — various small improvements to the visual editor:
    • AI edit panel opens centered above the selected element, aligned with the toolbar. Falls below only when there is not enough room above
    • AI panel header matches other floating panels — consistent style, no accent gradient
    • AI prompt textarea auto-grows as you type (up to 6 rows). Enter inserts a new line, ⌘Enter submits
    • AI generation shows a status badge on the element with animated stripes, elapsed timer, token count, and a Stop button
    • Escape key follows a layered dismiss chain: cancel AI → close panel → deselect element → deactivate editor
    • Image picker: Escape and close button restore the toolbar correctly. Selecting a new image deselects the element for a clean state

Fixed

  • Visual editor showing "Edit text" for images — images are void elements and cannot be contentEditable
  • Source button tooltip — now reads "Edit source code" instead of "View source code"
  • Visual editor AI not seeing the correct page — the focus page was not matched correctly, causing the AI to use a generic reference page instead of the page you were editing
  • Double "Generation cancelled" message — pressing Stop or Escape during AI generation no longer shows two identical cancellation messages

Version 1.23.0

March 19, 2026

Private notes, a kanban board for planning your site, and a redesigned Studio shell. Plus a centralized save indicator and reliability fixes for the visual editor's text and source editing.

New

Notes

A private scratchpad built into the Studio. Draft copy, collect ideas, plan content — everything stays local to your account.

  • Autosave — changes are saved automatically as you type, with debounced 800ms updates
  • Markdown preview — toggle between editing and rendered preview with Cmd+Shift+P
  • AI integration — send any note directly to AI Chat as a prompt, or use it as context for generation
  • Pin notes — keep important notes at the top of the list
  • Search — filter notes instantly by title or content
  • Per-user and private — each team member has their own notes. Notes are not shared between accounts

Board

A kanban-style task tracker for planning your website visually. Organize work into columns, create cards, and link them to pages.

  • Drag-and-drop — move cards between columns and reorder within a column
  • Inline editing — click a card to expand it in-place. Edit the title, body, column, and linked page without leaving the board
  • Linked pages — connect a card to any page on your site. Click the link to jump straight to the Chat panel scoped to that page
  • Auto-save — every change saves automatically with debounced updates and visual feedback
  • Three columns — To Do, In Progress, and Done
  • Role-based access — owners and editors can create and edit. Viewers see a read-only board

Improved

Global status indicator

The top bar now shows a compact save/loading indicator that appears only when something is happening — no always-visible "Ready" label. Every mutation (save, publish, delete) automatically triggers the lifecycle: Saving… with a pulsing amber dot → Saved with a green dot → fades out. Errors flash red. Silence means everything is healthy. This replaces the inline save status elements that previously appeared in Designs, Assets, and Snapshots with a single, consistent pattern.


Redesigned top bar

The top bar is split into three spatial zones: left (logo + status + demo badge), center (route tabs), right (actions). Route tabs are centered in the viewport, not pushed against the logo. The layout is cleaner at every window width.


Mobile navigation

The bottom navigation bar on mobile is now derived from the same navigation groups as the desktop layout, ensuring consistent page ordering. The status bar is hidden on mobile — the bottom nav takes its place.


Unified shell layout

All split-panel views (Notes, Code Editor, Assets) share the same header patterns, resize handle styling, and editor control positioning. Consistent spacing, typography, and interaction patterns across every Studio surface.


Visual editor link modals

The Insert Link and Edit Link modals are now draggable by their header, matching the style panel. The inline link modal (inside richtext editing) now shows Cancel + Apply buttons, pre-selects the link's existing CSS class in the Link Style dropdown, and handles edge cases where a custom class is not in the discovered list.


Fixed

  • Text edits not saving on elements with nested HTML — editing a heading or paragraph containing links, bold, italic, or other inline elements appeared to save but the changes were lost on refresh. The save needle contained data-vx-* instrumentation attributes injected by the preview renderer — attributes that don't exist in the source file. The bridge now normalizes innerHTML before using it as a save needle
  • Source editing failing with "source not found" — the PHP annotator counted all rendered tags including content from include statements, inflating the element's nodeKey index. The JS extractor counted tags only in the source file, where includes are single-line PHP statements. A re-numbering step now aligns the nodeKey indices with the source file's tag positions
  • Text edits corrupting wrong elements — when the old content.includes(innerHTML) strategy matched a different element with similar content elsewhere in the file, the replacement silently corrupted the wrong element. The save pipeline now uses nodeKey-based index extraction as the primary strategy, falling back to content matching only when the nodeKey is unavailable
  • Save failures silently swallowed — when the save pipeline couldn't find the needle in the source, it logged a console.warn with no user-visible feedback. Save failures now always show an error toast

Version 1.22.0

March 18, 2026

Edit raw HTML and PHP directly on the live preview. A new inline source editor lets you click any element, open a Monaco editor projected right over it, and modify attributes, structure, or template code — with live validation and a defensive save pipeline. Plus AI prompt execution via the Agent API and localized Actions Bar forms.

New

Inline source editor

Select any element in the visual editor and click Source (<>) to open a syntax-highlighted editor directly over the element. Edit raw HTML including PHP expressions — add attributes, restructure nested elements, modify <?php and <?= template code.

  • Live validation — HTML is checked as you type. Tag balance, strict nesting, missing closing brackets, dangerous content (<script>, <iframe>, inline on*=), and root element changes are caught immediately. Errors show the specific problem, line number, and a red squiggly marker in the editor
  • Pessimistic save — the source file is updated first. Only after a successful save does the live preview update. If the save fails (file changed externally, ambiguous match in source), the editor stays open with a clear error
  • Keyboard shortcuts — ⌘S to apply, Escape to cancel, ⌘E to open in Code Editor (from read-only toolbar)
  • Loading indicator — the diagonal hatch overlay animates with sliding stripes while the editor loads, then settles to a static pattern when Monaco mounts

AI prompt execution via Agent API (beta)

Run AI prompts programmatically through the Agent API. Prompts are executed asynchronously — submit a prompt, receive a poll URL, and check back for results.

  • POST /prompt to queue an instruction (e.g. "Create an About page with our team info")
  • GET /prompt/:id to poll status (queuedstreamingsuccess)
  • continue_from parameter to chain prompts into a conversation
  • Role-gated: requires prompt:execute scope, available to owner, editor, and agent keys
  • Works with all action types: free_prompt, edit_page, change_design, add_section, section_edit, optimize_aeo, inline_edit

Improved

Localized Actions Bar

Actions Bar translations are restructured from a flat /actions/i18n/{locale}.json to i18n/{locale}/actions.json — a namespace-aware layout that scales to future translation domains without inventing another i18n system. New namespaces (studio, site, forms) can be added as sibling files. The canonical source ships at _studio/static/i18n/, published to /i18n/ during deploy.


Visual editor element editability

All elements in partials (navigation, footers, headers) are now editable in the visual editor. Previously, partials containing PHP loops (foreach, for, while) were entirely blocked with a read-only toolbar — even for static wrapper elements like <nav> that are perfectly safe to edit. The pessimistic save pipeline handles any genuinely ambiguous loop-generated fragments by refusing to write when multiple matches are found.


Version 1.21.0

March 17, 2026

External AI agents, automation platforms, and custom scripts can now manage your VoxelSite installation programmatically via a new REST API. Plus a dedicated settings UI for API key management.

New

Agent API (beta)

A REST API surface at /_studio/api/agent/v1/ for external AI agents, automation platforms (Zapier, Make.com, n8n), and custom integrations. Disabled by default — enable in Settings → API Access.

  • 8 endpoint groups — pages (CRUD), assets (list and upload), compile, publish, settings (read and update), submissions, tools (list and invoke), and schema
  • Bearer token auth — API keys use a vxs_ prefix and are stored as SHA-256 hashes. Keys are generated from the Studio and can be revoked at any time
  • Role-based access — three roles (Agent, Editor, Viewer) with distinct scope ceilings. The Agent role covers full automation but intentionally excludes settings:write
  • Per-key rate limiting — enforced server-side (300 requests/hour for Agent keys). Every denied request is logged with IP and user agent
  • CORS support — configure allowed origins in Settings
  • OpenAPI 3.0 schema — public, no auth required. Import into any agent framework, Postman, or code generator
  • Works on Apache and Nginx — routing works automatically via the Studio router fallback. Nginx requires only fastcgi_param HTTP_AUTHORIZATION $http_authorization; to forward the Bearer token. See Nginx Configuration
  • Blocked in Demo Mode — the API cannot be enabled on demo installations

API Access settings card

A new card in Settings for managing the Agent API:

  • Feature toggle to enable/disable the API
  • CORS origin textarea for allowed origins
  • Generate Key modal with label, role selection, and instant key reveal with copy button
  • API key table with role badges, key prefix, last-used dates, and inline revoke
  • Link to the public OpenAPI schema

Fixed

  • Email settings spacing — the From Name field in Settings → Email & Notifications now has consistent bottom spacing before the divider

Version 1.20.2

March 16, 2026

Improved

  • Visual editor toggle deselect — clicking an already-selected element now deselects it, matching standard editor behavior (Figma, Sketch, Illustrator)
  • Visual editor Add Section button — the + button between sections is now perfectly centered. Previously the "section" label pushed the button group off-center
  • Actions Bar on the demo root site — the demo preview site at the root URL now shows the same interactive Actions Bar as the Studio preview. Visitors can open forms, fill in fields, and submit — submissions go to a safe demo stub

Fixed

  • Team member buttons unresponsive after adding — the Edit, Reset Password, and Remove buttons on newly added team members did nothing until a full page refresh. Event listeners are now delegated to the container, so dynamically added rows work immediately
  • Double-encoded HTML entities in page titles — AI-generated titles containing & showed as &amp; in the browser tab. The engine now decodes pre-encoded entities on file write
  • Phantom unpublished change after publish — the status bar showed "1 unpublished change" immediately after publishing because the preview footer was missing Actions Bar asset references. Both production and preview footers now stay in sync
  • Demo Mode logout not working on HTTPS — signing out on HTTPS-deployed demo sites (e.g. demo.voxelsite.com) did nothing. The session cookie was set with secure=true but cleared without it, and the logout handler crashed on deployments without a full database. Both issues are resolved

Version 1.20.1

March 15, 2026

  • Fixed Restored missing separator line between the Editor tab bar and code content
  • Fixed Demo Mode now works on fresh deploys without a database or completed installation

Version 1.20.0

March 15, 2026

Demo Mode upgraded from basic feature disabling to a full predefined demo layer — with a live preview site, fixture data across every Studio surface, and safe interactive elements. Plus redesigned toast notifications, a cleaner preview toolbar, and an optimized image library.

Improved

Demo Mode

Demo Mode is now a complete, self-guided showcase. Previously it only disabled write operations — now it presents a realistic workspace with pre-populated data so visitors can explore the full Studio experience without seeing an empty shell.

  • Live preview site — the root URL serves a complete, multi-page demo website with navigation, styling, and interactive elements. A subtle "Open Studio →" banner links to the Studio
  • Pre-populated data — Code Editor, Forms, Actions, Assets, Settings, Designs gallery, and Team all show realistic demo fixture data
  • Safe interactive elements — visitors can fill and submit the preview Actions Bar forms, open publish/unpublish modals, and explore the reference URL form. All write actions show friendly demo toasts instead of executing
  • Demo login — pre-filled credentials, a welcome banner, and an "Enter Demo" button. The real owner can still log in alongside demo sessions
  • Hide demo indicators — add hide_banner=true to the .demo file to suppress the DEMO badge, login chrome, and root site banner for clean screenshots while keeping all enforcement active

Optimized image library

All 132 images in the built-in image library (60 backgrounds + 72 gallery images) are converted from PNG to JPEG. This reduces the total library size by approximately 40% with no visible quality loss, resulting in faster installation uploads, smaller distribution packages, and quicker asset loading.


Redesigned toast notifications

Toast notifications now use four semantic types — success, error, warning, and info — each with a distinct icon, color, and design language. Toasts include a subtle progress bar showing time remaining, a dismiss button, and a smooth slide-out exit animation. Toasts stack when multiple appear simultaneously.


Cleaner preview toolbar

The Code button has been removed from the preview toolbar — code editing has its own dedicated Editor page. The Visual Editor button is renamed to Edit with a divider separating it from the preview actions (Refresh, Save). The button text stays stable in both active and inactive states to prevent toolbar width shifting.


Version 1.19.0

March 14, 2026

Paste any website URL as design inspiration. VoxelSite interprets the design language — colors, typography, spacing, layout — and builds a new site or restyles your existing one in that spirit. Plus an optional AI quality review after generation and intentional design saves from the preview toolbar.

New

Website references

Attach any public website URL as a design reference. VoxelSite fetches the page, interprets its visual language, and translates it into clean Tailwind CSS — regardless of what the reference site uses (Bootstrap, custom CSS, inline styles, or anything else). The result is an original interpretation, not a copy.

  • New sites — attach a reference and hit send. No text prompt required — the URL alone is enough. Optionally describe your business for customized content
  • Restyle existing sites — attach a reference to transform your site's design while keeping all your content. A safety backup is saved automatically before every restyle
  • Content modes — choose between generating new content (default) or preserving paraphrased content from the reference
  • URL validation — real-time checks for accessibility, robots.txt compliance, Cloudflare/CAPTCHA blocks, and JavaScript-only SPAs. Inline error messages below the URL field
  • History persistence — references are saved in conversation history and displayed as clickable globe badges on reload
  • Combine freely — attach a reference URL, images, and text instructions all in one message

Expert Review

An optional AI quality review that runs after each generation. When enabled in Settings → AI Provider, the AI reviews your generated site for potential issues — broken links, missing alt text, heading hierarchy, spacing, accessibility, and mobile responsiveness.

  • Results appear as a collapsible "Expert Review" banner below the generated files
  • Issues are categorized by severity: errors, warnings, and collapsed info-level suggestions
  • Each issue has an "Add to chat →" button that appends a targeted advisory prompt to the chat textarea
  • Fully advisory — does not auto-fix issues. The disclaimer reads: "These are heuristic suggestions — verify before applying"
  • Results persist across page reloads via conversation history
  • Off by default. Enable in Settings → AI Provider

Improved

Intentional Design Library saves

The Design Library is now a curated collection instead of an activity log. Automatic post-generation saves have been removed — designs are saved only when you choose to save them.

  • Save button in the preview toolbar — a persistent entry point between Refresh and the external link. Always available when a previewable site exists. Disabled when no site exists, grayed out during AI streaming and visual editing
  • Save to Designs shortcut in chat — appears after generation completes, below the file list. Opens the same modal as the toolbar button
  • Safety snapshots separated — automatic backups (before restyles, design switches, and workspace clears) are flagged as system backups and hidden from the main gallery. They remain restorable but don't clutter your curated collection

Context-aware generating overlay

The preview overlay during generation now shows different messages based on your site's state:

  • New sites: "Building your site — Generating a new website can take up to 10 minutes. Please be patient while the AI works."
  • Updates: "Applying your changes — Small changes can take a minute, larger updates can take up to 10 minutes."

Both include live elapsed time and token count — mirrored from the chat status timer.


Streaming status always visible

The chat timer, token count, and Stop button are now visible from the moment generation starts. Previously, the status section was hidden on the first token — making it impossible to see elapsed time or cancel the generation. The Stop button, timer, and token count now persist throughout the entire generation.


Version 1.18.0

March 13, 2026

Broader Tailwind CSS support, a redesigned color picker, and a more reliable visual editing workflow. The built-in Tailwind compiler now handles 3D transforms, advanced selector variants, and arbitrary CSS properties — validated against the real Tailwind CLI. The visual editor's Apply & Compile flow is more robust: color and style changes persist correctly, even on elements with JavaScript-added classes.

New

Expanded Tailwind CSS compiler

VoxelSite's built-in PHP compiler now supports significantly more Tailwind 4 utilities and variants:

  • 3D transformsrotate-x, rotate-y, perspective, backface-hidden, transform-3d, and translate-z
  • Selector variantsdata-[state=open], aria-expanded, has-[>img], not-[.hidden], supports-[display:grid]
  • Child selectors*:p-4 (direct children), **:text-sm (all descendants)
  • Arbitrary CSS properties[--scroll-offset:56px], content-[attr(data-label)]
  • Named max breakpointsmax-sm:, max-md:, and arbitrary max-[768px]:
  • Combined media + supportsmd:supports-[display:grid]:grid

All verified against the Tailwind CLI v4.1.18 with a 294-test suite (166 regression + 128 oracle tests).


Improved

Redesigned color picker

The color picker in the visual style panel is now a flat scrollable grid showing all 17 Tailwind color families × 11 shades at once. Pick any color in a single tap — no more two-step family-then-shade selection. Four rows are visible at a time with a thin scrollbar; the grid auto-scrolls to the active color when you open it and preserves scroll position when switching colors.


Visual editor style changes persist correctly

Apply & Compile now saves style changes reliably, including on elements where runtime JavaScript has added classes (e.g., is-visible from scroll animations, active from tabs, open from menus). Previously these runtime classes caused the save to fail silently. The editor now computes a targeted diff and applies only the intended additions and removals.


Accurate live style preview

The JIT preview engine ensures style changes are visually accurate during editing, even when the site's own CSS defines competing rules. Previously, a site's custom color: white could override a Tailwind text-red-600 you just applied, making the preview misleading.


Fixed

  • Tailwind utility classes overridden by site CSS — the generated CSS load order now places tailwind.css after style.css, giving Tailwind utilities correct cascade priority. Previously, custom CSS rules in style.css could override utility classes at equal specificity.

Version 1.17.0

March 12, 2026

Smarter AI context management, cross-file dependency awareness, and more reliable generated sites. The AI engine now understands its own context budget, tracks data dependencies between files, and produces mobile navigation that works correctly every time.

New

Context-aware AI generation

The AI engine now manages its context window as a structured budget. Instead of blindly concatenating site state until it runs out of space, it prioritizes essential information (current page, site structure, conversation history) and progressively trims lower-priority sections (icon lists, CSS tokens) when the budget is tight. The result is better AI output on complex sites where context pressure previously degraded generation quality.


Cross-file data dependency tracking

The AI now sees how your files depend on each other. When you ask it to edit a data file (e.g., rename a service in services.json), it knows which pages render that data, which form dropdowns reference it, and which AEO discovery files propagate it. This prevents the silent breakage that occurred when the AI updated one file but missed its dependents — form dropdowns going blank, pages showing stale data, or structured data falling out of sync.


Knowledge extraction verification

After each generation, the engine verifies whether the AI performed knowledge extraction — merging insights into Site Memory (memory.json) and Design Intelligence (design-intelligence.json). This ensures the AI's self-improving learning loop stays active across conversations.


Improved

Reliable mobile navigation on generated sites

Generated sites now produce mobile menus that work correctly every time. Three layers of defense ensure the close button is always reachable:

  • The engine moves #mobile-menu outside <header> if the AI nests it inside — backdrop-filter on the header traps fixed-position children, breaking the menu
  • A close button is auto-injected if the AI forgets one
  • The shipped navigation.js detects z-index conflicts at runtime and auto-corrects so the toggle button is never buried under the overlay

Fixed

  • Modals closing when dragging from inside to outside — clicking inside a modal, dragging the mouse to the backdrop, and releasing no longer closes the modal. Previously this made it difficult to select text in input fields without accidentally dismissing the dialog. Fixed across all 25 modals in the Studio.
  • AI usage resetting on every new design — starting a new design or resetting the website wiped all usage tracking (request count, tokens, cost). Usage data now persists across designs and site resets. Only "Reset installation" clears it.
  • AI usage undercounting partial generations — generations that completed with minor file warnings were excluded from the usage stats. All completed requests are now counted.
  • Team permissions showing "Manage snapshots" — the permission label now correctly reads "Manage designs" after the Snapshots-to-Designs rename in 1.16.0.

Version 1.16.0

March 11, 2026

Save your website as a named design, try a completely different direction, and switch back any time. A new Design Library gives you save slots for your website — explore without risk. Plus drag-free section reordering in the visual editor and a safer editing experience during AI generation.

New

Design Library

Save your entire website — pages, styles, scripts, data, forms — as a named design. Try a different direction, and switch back whenever you want.

  • Save designs — click Save Design, give it a name and optional description
  • Preview cards — the Gallery shows each design with its own colors, page count, and creation date, rendered using the design's actual CSS tokens
  • Load any design — click Load to switch instantly. A confirmation modal asks whether to save your current work first — the checkbox remembers your last choice
  • Start fresh — clear the workspace from the Chat page or Designs page and begin a new site. The same save-first option applies
  • Edit and delete — rename, update descriptions, or remove saved designs
  • Active tracking — the currently loaded design shows an amber "Active" badge

Images and fonts are shared across all designs — you only upload them once. Undo history starts fresh when you switch designs.

The Designs tab replaces the old Snapshots tab in navigation. Snapshots are still accessible from the History tab within the Designs page.


Section reorder in the visual editor

Rearrange sections on any page with ▲/▼ chevron buttons — no AI prompt needed, no waiting.

  • Click the up or down chevron on any section divider to swap it with its neighbor
  • The move is instant in the preview, then persisted to the PHP source file in the background
  • A diagonal-hatching highlight appears on hover to show which section the buttons control
  • A revision is created for every move, so you can undo any reorder
  • Tailwind CSS is recompiled automatically after each move

Improved

AI streaming lockdown

While the AI is generating your site, the Studio enters a protected state. The navigation bar, status bar (undo, redo, publish), preview toolbar, and prompt area are dimmed and disabled. The chat panel stays fully interactive — you can scroll the conversation and click Stop to cancel. This prevents accidental clicks that could corrupt the generation in progress.


Keyboard dismiss on all design modals

The Save Design, New Design, and Switch Design modals all close when you press Escape — matching the behavior of every other modal in the Studio.


Version 1.15.0

March 9, 2026

Accept file uploads through your action forms. Visitors drag and drop files directly in the Actions Bar — each upload is validated, virus-checked by content type, and stored securely. Plus duplicate submission control and a cleaner action settings layout.

New

File uploads in action forms

Add a File field to any action. Visitors upload files via drag-and-drop or click-to-browse directly in the Actions Bar. Configure allowed file types with group toggles (Documents, Images, Archives) or a custom extension list, and set a per-field size limit (1–50 MB).

Every upload is validated server-side in three layers:

  • Extension whitelist — only the types you allow
  • Magic bytes check — file contents are verified against the declared type. A .txt file that's actually an executable is rejected.
  • Size limit — enforced per field

Uploaded files are stored in a protected directory and served through an authenticated Studio endpoint — never directly accessible by URL. The records detail view shows download links with the original filename and file size. A subtle paperclip icon in the records list indicates which submissions include file attachments.

See Actions → File upload security for details.


Duplicate submission control

Prevent the same person from submitting a form twice. In the action's Submission Rules section, toggle "Same email can submit only once" and write a custom rejection message (e.g., "You've already registered for this event"). The duplicate check runs server-side against the email field.


Checkbox field improvements

Checkboxes now support two new settings:

  • Value — the value stored when the checkbox is checked (defaults to the field name if left empty)
  • Selected by default — pre-checks the checkbox when the form loads

Improved

Cleaner action settings layout

The action detail card is reorganized into three clear sections:

  • Action — name and description (clarified as internal/AI reference only, not shown to visitors)
  • Actions Bar — button label and icon, grouped together
  • Submission Rules — duplicate email toggle and rejection message

New blank action starts with Email

Creating a blank action now starts with a required Email field instead of "Full Name." Email is the universal key for duplicate detection, notifications, and record matching — it belongs first.


Cache-busting for the Actions Bar

Re-publishing your site now adds a version hash (?v=...) to the Actions Bar script and stylesheet references. Browsers always load the latest version after a re-publish — no more stale cached files.


Security

  • Hardened upload directory protection — the root .htaccess now blocks access to _data/ as a belt-and-suspenders defense alongside the existing inner .htaccess. Accidental deletion of one layer no longer exposes uploads or the database.
  • Updated Nginx configuration guide — the _data directory is now included in the recommended security blocks for Nginx servers.

Version 1.14.0

March 7, 2026

Check in on your site from your phone. A new mobile layout lets you review form and action submissions, browse assets, view snapshots, and access settings. Site creation and editing remain desktop and tablet features. Plus the publish button now tracks changes to CSS, JS, and JSON files.

New

Mobile layout

The Studio adapts to your screen size. On phones (≤ 767px):

  • Bottom navigation bar with Forms, Actions, Assets, Snapshots, and a More menu
  • More sheet — a slide-up panel with Settings, Profile, Team, theme toggle, Publish, Download, and Sign Out
  • Touch-optimized — 44px touch targets, full-width modals, horizontal-scrolling tables, always-visible remove buttons
  • Safe area support for notched devices (iPhone home indicator)
  • Role-aware navigation — Snapshots is only visible to owners and editors

Site creation and editing (Chat, Code Editor) require a desktop or tablet — on mobile, a clear notice explains this and links to the available views.

On tablets (768–1023px), the full Studio is available with a narrower conversation panel, compact status bar, and condensed spacing.


Improved

Publish button tracks CSS, JS, and JSON changes

The publish button now detects unpublished changes to stylesheets, scripts, and data files — not just PHP pages. Previously, editing a CSS or JS file in the code editor and saving it would not activate the publish button. Asset changes now count toward the unpublished change total and show the correct count.


Modular Studio architecture

The main application file has been split from into focused, self-contained view modules with shared utilities. Zero behavior changes, bundle size unchanged.


Actions Bar style feedback

Switching between Bottom Bar, Floating FAB, and Minimal Pill now shows a confirmation toast, matching the feedback for color scheme and brand color changes.


Version 1.13.0

March 6, 2026

Define structured interactions — reservations, signups, inquiries, feedback — that work as polished on-site forms for visitors and as structured tools for AI agents. One definition, two channels. Actions explained →

New

Actions — forms for visitors, tools for AI agents

Create actions in the Studio to capture leads, bookings, registrations, and more. Each action becomes two things at once:

  • A form in the Actions Bar — a sleek bottom toolbar on your live site where visitors fill out fields with real-time validation, mobile-optimized layout, and support for 31 languages detected from the visitor's browser
  • An MCP tool — AI assistants discover your actions via tools/list, understand every field's type and constraints from the schema, and submit data with tools/call

Both channels share the same field definitions, validation rules, and submission storage. Every change you make in the Studio is live instantly — no publish step needed.

13 field types — text, email, phone, number, date, time, select, multi-select, radio, checkbox, textarea, URL, and hidden. Each with type-specific validation (email format, future-date enforcement, min/max ranges, character limits).

Capacity controls — cap daily submissions and enforce unique fields (e.g. one booking per email) to prevent duplicates.

Submission management — filter by status (new, confirmed, completed, cancelled), view full details with metadata, update statuses, export to CSV, delete individual records, or purge old submissions in bulk.


9 ready-made templates

Start from a template instead of building from scratch: contact form, newsletter signup, table reservation, appointment booking, event registration, callback request, quote request, feedback form, and waitlist. Each comes with sensible fields, validation, and descriptions pre-configured.


Agent Preview

Every action's detail page includes a collapsible Agent Preview card showing the exact MCP tool schema that AI agents receive — tool name, endpoint URLs, active status, and the full JSON schema with a copy button.


Actions Bar visibility

Control where the Actions Bar appears: all pages (default), homepage only, or hidden.


Version 1.12.0

March 4, 2026

Downloaded sites now have working forms. Both PHP and HTML exports include a standalone form handler when your site has forms.

New

Working forms in exports

When you download your site, a self-contained submit.php is included in the ZIP. It reads the same form schemas your site already uses, validates fields, runs honeypot spam checks, and stores submissions as JSON files in a protected _submissions/ directory. Email notifications use your server's mail() function.

No database, no Composer packages, no VoxelSite installation. Works on any PHP host.

The HTML export includes submit.php too — if you host the HTML files on a PHP-capable server, forms work out of the box.

Submissions are stored as individual JSON files, one per entry:

_submissions/
  contact/
    2026-03-04_072300_a1b2c3d4.json
    2026-03-04_091500_e5f6g7h8.json

The _submissions/ directory is protected from web access by .htaccess and a rewrite rule — submissions cannot be downloaded or crawled.

See Forms and Download & Export for details.


Version 1.11.0

March 3, 2026

Invite your team to the Studio. Add editors and viewers with role-based permissions — control who can edit, publish, and manage your site. Plus smarter AI generation that auto-recovers from truncated responses, and a smoother chat experience during long generations.

New

Team members with role-based access

Add team members to your Studio from the account dropdown → Team. Three roles control what each person can do:

  • Owner — full access to everything: content, settings, AI configuration, team management
  • Editor — can edit pages, manage assets, use the AI chat, work with forms, and publish. Cannot access Settings or Team management.
  • Viewer — read-only access. Can browse the preview, pages, and assets but cannot make changes.

The owner adds members with a name, email, and auto-generated temporary password. Members sign in and change their password. Role badges appear in the account dropdown and on the Team page with color-coded avatars (amber for owner, blue for editor, gray for viewer).

Click any role badge to see a permissions breakdown. Access is enforced at the API level — viewers cannot perform write operations, and editors cannot reach Settings or Team routes even by typing the URL directly.


Auto-recovery from truncated AI responses

When the AI hits its output token limit mid-generation, VoxelSite detects the incomplete response and automatically sends a follow-up prompt to finish the remaining pages. The system also checks that every page linked in the navigation actually exists — if any are missing, a targeted continuation prompt names exactly which files to create. No manual intervention, no warning messages. The site appears complete.


Improved

  • Larger output token budget — site generation now requests up to 64K output tokens (was 32K). A typical 5-page website needs 35–45K tokens for partials, CSS, JS, pages, and data files — the old limit almost guaranteed truncation on larger sites
  • Smart chat scroll — the chat no longer force-scrolls to the bottom while the AI is streaming. If you scroll up to read earlier messages, the view stays put. Auto-scroll resumes when you scroll back to the bottom, and always snaps down when the response completes.
  • Command palette navigation — hover and keyboard selection states are now clearly visible in both light and dark mode
  • Input placeholder text is dimmer, making it easy to distinguish from entered text

Version 1.10.0

March 2, 2026

Add new sections to your page visually — pick a type, give optional instructions, and the AI generates it in seconds. Plus cross-page AI awareness and faster section generation.

New

Section picker in the visual editor

Click the + button between any two sections to open a visual section picker. Choose from 12 section types — Hero, Content, Features, Gallery, Testimonials, FAQ, Team, Pricing, Contact, CTA, Stats, and Footer — each with an icon and a brief description.

After selecting a section type, an optional instruction field lets you guide the AI: "3 team members with short bios" or "5 questions about shipping." Click Generate and the AI produces a new section that matches your site's existing design language — same fonts, colors, spacing rhythm, and Tailwind patterns.

A live token counter shows progress during generation (e.g., "Generating FAQ… 1,250 tokens"). When it finishes, the page reloads, smooth-scrolls to the new section, and highlights it with a brief blue outline.


Cross-page awareness

The AI now sees the section-level structure of every page on your site, not just the page you're editing. For each page, the engine extracts a lightweight section summary — section IDs, headings, and labels. A typical 5-page site adds about 500 tokens to the AI context.

This means cross-page prompts work naturally:

  • "Make the About page match the style of the Home page"
  • "Add a testimonials section like the one on the homepage"
  • "Give every page a consistent CTA at the bottom"

Improved

  • Text cursor during editing — the cursor switches from crosshair to a text I-beam when editing text inline, and restores the crosshair when you exit edit mode
  • AI generation progress bar has a subtle outline in light mode, making it clearly visible against light backgrounds

Fixed

  • Account dropdown not closing — clicking outside the dropdown now reliably closes it on every attempt
  • Download modal ignoring Escape — the keydown handler is now attached at the document level so Escape works regardless of focus position

Version 1.9.0

February 28, 2026

The visual editor gets a rich text formatting toolbar and a safer editing workflow.

New

Rich text formatting toolbar

Click Edit on any text element and a floating toolbar appears with Bold (⌘B), Italic (⌘I), Link (⌘K), and Clear formatting. The toolbar tracks the element as it grows, and formatting state updates in real time as you move through styled text.


Improved

  • Committed editing mode — text editing now requires explicit Save (⌘↵) or Cancel (Esc). No more accidental exits from blur or Enter
  • Enter inserts line breaks — pressing Enter adds a line break instead of exiting edit mode
  • UI lockdown — while the visual editor is active, navigation, status bar, and other controls are disabled to prevent accidental state changes
  • PHP template protection — elements containing PHP syntax show a hint instead of formatting buttons
  • Link protection — clicking links inside the preview during editing is blocked to prevent navigation
  • Clearer labels — the "Edit" button in the preview toolbar is now "Code" to distinguish it from the Visual editor

Version 1.8.0

February 27, 2026

Attach images to your chat messages — screenshots, mood boards, color palettes — and the AI uses them as visual context when building your site. Plus the Studio now shows your site's name in the top bar.

New

Image attachments in chat

Drag an image into the chat, paste from your clipboard, or click the 📎 attach button. The AI sees the image alongside your text and uses it as reference when generating or modifying your site.

  • "Create a page like this" with a screenshot of a site you admire
  • "Use these colors" with a photo of your brand palette
  • "Match this layout" with a competitor's homepage
  • Attach up to 5 images per message (JPEG, PNG, GIF, WebP, max 5MB each)
  • Image-only messages work too — no text required
  • Thumbnail strip shows your attached images before sending, with remove buttons
  • Image thumbnails persist in chat history across page refreshes
  • Works with Claude, OpenAI, Gemini, and OpenAI-compatible providers. DeepSeek receives the text only (no vision support)

Site name in the Studio top bar

The Studio top bar now shows your configured site name (from Settings → Site Identity) instead of "VoxelSite." The browser tab title updates to "Studio — Your Site Name." Both update instantly when you change the name in Settings — no reload needed. Falls back to "VoxelSite" if no name is set.


Version 1.7.0

February 27, 2026

Take your site offline, generate a proper sitemap, and upload a custom favicon — all from the Studio.

New

Unpublish your site

Take your live site offline with a single click. The new Unpublish option appears in a split button next to Publish — click the chevron to access the dropup menu.

  • Your live site is replaced with a clean branded placeholder showing your site name
  • All preview work and snapshots remain untouched — nothing is lost
  • AEO files (llms.txt, robots.txt, sitemap.xml, mcp.php) are cleaned up
  • Blocked in Demo Mode — demo visitors cannot unpublish

Optional snapshot on publish

The publish confirmation now includes a "Create snapshot before publishing" checkbox. It's checked by default and the Studio remembers your preference. Uncheck it to skip the automatic pre-publish snapshot when you're iterating quickly and don't need a safety net every time.


Sitemap.xml generation

VoxelSite now generates a standard sitemap.xml when you publish. It lists every published page with proper absolute URLs, last-modified dates, and priorities (homepage gets 1.0, all other pages get 0.8). The robots.txt file includes a Sitemap: directive to guide search engines automatically.

If no explicit site URL is configured in Settings, VoxelSite auto-detects it from your server, so sitemap generation works out of the box on local installs and fresh setups.


Custom favicon upload

Upload your own favicon directly in Settings → Site Identity, below the Tagline field. The component shows a live preview of the current favicon, supports drag-and-drop, and validates that the file is a valid .ico under 512 KB. The uploaded icon replaces the default VoxelSite favicon immediately — both in the preview and on the live site.

Favicon upload is blocked in Demo Mode.


Version 1.6.1

February 25, 2026

A reliability update focused on AI provider compatibility. OpenAI, Gemini, DeepSeek, and OpenAI-compatible servers now handle new model releases, token-limit mismatches, and structured-output limitations more gracefully — with clearer error messages when something still fails.

Improved

OpenAI Provider Compatibility

  • Better support for newer and future OpenAI model families (including newer GPT and o-series model names)
  • Older saved OpenAI model selections that no longer fit this integration now fall back to a safe working model automatically
  • OpenAI reasoning models now use the correct request format automatically
  • Oversized response token settings are capped to safer values to avoid preventable API errors

Cross-Provider Reliability (Gemini, DeepSeek, OpenAI-Compatible)

  • Added safer token caps across providers to reduce avoidable HTTP 400 errors when a selected model supports fewer output tokens than the global setting
  • Improved compatibility handling for future model names, especially in DeepSeek and OpenAI-compatible setups
  • Better resilience with local and third-party OpenAI-compatible servers that return different error codes for unsupported features

Clearer Error Messages

Streaming errors from AI providers now return more useful provider messages (instead of generic HTTP status codes only), making it easier to understand what went wrong and what to change.

Fixed

  • OpenAI requests failing with HTTP 400 even when the API key was valid — caused by incompatible saved model variants (such as search-preview models) or output token settings that were too high for the selected model. The Studio now auto-recovers to a safe model and safer token limits
  • Structured output requests failing hard on models without tool/function or schema support — the Studio now retries with a simpler request automatically for OpenAI, Gemini, DeepSeek, and OpenAI-compatible providers
  • Gemini structured JSON responses failing due to a schema type mismatch in the request schema — now fixed

Version 1.6.0

February 23, 2026

A complete visual refresh. The Studio now features a clean, modern Light/Dark mode, a new brand mark, and a polished look across every screen — from the installer to the chat panel. Plus a critical fix for sites running on Laravel Herd or Valet.

New

Clean Light & Dark Mode

The Studio's entire color system has been redesigned from scratch. The old "Forge" and "Studio" themes are replaced by a unified Light and Dark mode built on a crisp Zinc palette. Light mode is bright and clean — Dark mode is deep and modern. The Studio remembers your preference and follows your system setting on first visit.


New VoxelSite Logo

A brand-new filled voxel mark replaces the old wireframe box icon everywhere — the empty chat state, the preview placeholder, the installer, and the favicon. The new mark is bolder, cleaner, and instantly recognizable.


Theme Toggle on the Installer

The installation wizard now includes the same floating light/dark toggle button from the login page. Switch between modes during setup — your preference carries over into the Studio.


Improved

Preview Matches Your Theme

The "Your website will appear here" empty preview screen now follows the Studio's active theme in real time. Switch to dark mode, and the preview placeholder switches with it — no more mismatched backgrounds.


Sharper Interface

  • Buttons use flat colours instead of gradients — cleaner and faster to scan
  • Inputs have a fixed height and transparent backgrounds for a more refined feel
  • Shadows, glassmorphism, and decorative effects are removed in favour of clean, flat borders
  • Transition animations are faster and more consistent across the entire interface

Better Visibility for File Badges

The green "Created" and red "Deleted" file badges in the chat are now more visible. Their coloured borders are stronger, making it easier to scan what the AI changed at a glance.


Chat Message Consistency

The "VoxelSite" and "You" labels above chat messages now use the same styling. Message text sizes are consistent across user and AI messages.


Fixed

  • Published sites crashing on Laravel Herd & Valet — sites with data-driven pages (portfolios, service lists, menus) could fail after publishing because the server path was resolved incorrectly. This is now fixed at both the server level and in AI-generated code going forward
  • AI-generated pages now use reliable file paths — the AI prompt instructions have been updated so all future sites use a portable path pattern that works on every server (Herd, Valet, Apache, Nginx, Forge)
  • "New" count on the Forms dashboard displayed in a hard-to-read brown/gold colour — now uses the default text colour for clarity
  • "Unpublished changes" badge used a warning-yellow colour that clashed with the new palette — now uses the brand accent colour

Version 1.5.0

February 22, 2026

Download your website and take it anywhere. A new export system lets you download your published site as PHP or static HTML — ready to deploy on any server without VoxelSite. Plus smarter mobile navigation, editable SEO files, and layout fixes.

New

Download & Export

Download your published website as a ZIP file — choose between PHP source (for any PHP hosting) or pre-rendered static HTML (for any web server, CDN, or static host like Netlify, Vercel, or GitHub Pages).

  • PHP exports include pages, partials, CSS, JS, .htaccess, robots.txt, llms.txt, mcp.php, and your favicon
  • HTML exports pre-render every page, rewrite clean URLs to .html references, and download remote images locally
  • Smart asset bundling — only images, fonts, and library files that your pages actually reference are included, keeping the ZIP lean
  • Unpublished changes warning — a banner alerts you if your export won't include recent edits, with a link to publish first
  • Download button lives in the status bar next to Publish

SEO & AI section in the Editor

The Code Editor now has a dedicated SEO & AI section in the sidebar (between SITE FILES and SYSTEM PROMPTS). Edit robots.txt and llms.txt directly — control how search engines and AI agents discover your site.

These files are regenerated on every publish. Manual edits should be made after your final publish.


Improved

Smarter Mobile Navigation

The AI now selects from 6 mobile navigation patterns based on the site's personality and page count — compact persistent nav, bottom tab bar, text toggle, full-screen overlay, slide-in panel, or hamburger as fallback. Sites with 2–3 pages skip the toggle entirely and show all links inline.


Animated Mobile Menus

Mobile menus now use CSS transitions (fade, slide, scale) instead of hard-swapping visibility. The navigation.js script uses an is-open class and waits for transitionend before hiding the menu. Menus require explicit backgrounds, 48px touch targets, and staggered entrance animations.


Mobile Nav Button Styling

All nav <button> elements now reset their browser defaults (bg-transparent, border-0), preventing the white/grey box that appeared on dark navigation bars.


Fixed

  • Mobile menu close button unreachable — mobile menus now use fixed inset-0 z-[60] to guarantee the overlay sits above all page content, sticky headers, and positioned sections
  • Content overlapping fixed navigation — every page's first section now includes pt-24 or pt-32 to clear the fixed nav bar, preventing content from sliding behind the header on shorter viewports
  • Background overlay pattern simplified — replaced gradient overlays (bg-gradient-to-br from-black/60) with a simpler bg-black opacity-50 pattern that users can easily adjust in the visual editor

Version 1.4.0

February 22, 2026

Nginx and VPS hosting support, a new read-only Demo Mode for showcasing the Studio to clients, and significant reliability improvements to the Tailwind CSS pipeline.

New

Nginx & VPS Hosting Support

VoxelSite now works on Nginx-based hosting, including VPS providers like DigitalOcean, Hetzner, and managed platforms like Laravel Forge, RunCloud, and Ploi. Previously, installations using symlinked or shared directories could experience silent failures across asset uploads, file editing, AI generation, publishing, and snapshots.

New Nginx configuration guide with clean URL rewriting, security blocks, and a complete server config example.


Demo Mode

Turn the Studio into a read-only showcase with a single file. Place a .demo file in your project root to activate — perfect for showing clients the backend without letting them change anything.

  • Welcoming login page with pre-filled demo credentials
  • Every write action (AI prompts, file saves, publishing, settings) is blocked with a friendly toast
  • Persistent "DEMO" badge in the top bar
  • Enforced at the API level — safe to expose publicly
  • Light/dark theme toggle on the login page

See Demo Mode for setup instructions and use cases.


Manual Tailwind Recompile

New ⟳ button next to tailwind.css in the code editor. Triggers a full Tailwind CSS recompile after manual HTML edits — useful when you add new utility classes that aren't in the compiled stylesheet yet. Shows exactly how many utility classes were compiled.


Improved

Tailwind CSS Reliability

  • The AI can no longer accidentally overwrite tailwind.css — the response parser now silently ignores any AI output for this file, ensuring the PHP TailwindCompiler remains the sole producer
  • Publishing compiles Tailwind CSS directly to the web-accessible path, fixing cases where the compiled file was written to a shared directory but served from a different location
  • CSS files using modern @-directive syntax (@tailwind, @import, @layer, @theme) are now correctly validated instead of being rejected as empty

CSS Encoding Resilience

AI models sometimes use Unicode characters (box-drawing ═══, em dashes , smart quotes ' ') in CSS comments. If the web server doesn't send charset=utf-8 for CSS files, browsers misinterpret these and fail to parse the entire stylesheet. CSS files are now automatically sanitized on write.


Prompt System Diagnostics

The system prompt loader now logs which source was used — prompts/, custom_prompts/, or the built-in fallback — with file paths and content lengths. Check _studio/logs/ to verify your prompts are loading correctly.


Fixed

  • Fixed the compact fallback prompt containing instructions that contradicted the Tailwind-only architecture, causing some AI models to generate custom CSS classes instead of Tailwind utilities
  • Fixed index.php being excluded from version control, causing a 403 error after VPS deployments with atomic release strategies
  • Fixed atomic write pattern failing when temp files and targets are on different mount points

Version 1.3.0

February 21, 2026

A major upgrade to the visual editor. You can now select any section on your page and tell the AI what to change — in plain language.

New

AI Section Editing in the Visual Editor

Click any element in the live preview, hit the AI button in the toolbar, and describe what you want:

  • "Make this section warmer with earth tones"
  • "Add a third testimonial card"
  • "Change this to a two-column layout"
  • "Rewrite the heading to be more compelling"

The panel closes, a loading overlay with bouncing dots appears directly on the element being edited, and the preview reloads with the result. You can cancel generation at any time.

While the AI is working, the visual editor is locked — you can't accidentally select other elements or disrupt the edit.


Chat Documentation

New dedicated Chat documentation page — a central hub explaining VoxelSite's primary interface: actions vs. free chat, page scope targeting, how the AI responds, and tips for effective prompting.


Improved

Visual Editor Icons & Labels

  • The AI toolbar button now uses a message-square icon (speech bubble) instead of the sparkle — the action is conversational, not magical.
  • The Style button now uses a sliders-horizontal icon — a universally clear "adjust properties" metaphor that reads well at small sizes.
  • The AI button label is now just "AI" instead of "Ask AI" — shorter, action-oriented, and consistent with industry conventions.
  • The send button uses an arrow-up icon, matching the chat's send button for product-wide consistency.

AI Prompt Panel Design

  • The textarea now matches the chat's input pattern: the send button is embedded inside the input container (bottom-right), not in a separate footer.
  • Removed the double focus ring — the wrapper owns the border and accent glow on focus, and the textarea itself is chromeless. One signal, not two.
  • Placeholder text updated to "Describe your changes…"

Documentation Cross-Linking

All three editing workflows — Chat, Visual Editor, and Code Editor — are now cross-referenced with Related links so users can easily discover each approach.


Version 1.2.0

February 21, 2026

Under-the-hood architecture and performance overhaul. The Studio now loads faster, runs from a single optimized bundle, and ships a modular codebase built for long-term reliability.

New

Esbuild Build Pipeline

The Studio JavaScript is now compiled into a single, minified bundle using esbuild:

  • Faster page loads: One script instead of multiple module requests — eliminates the import map entirely.
  • 15ms builds: Full JavaScript compilation in milliseconds, with a live --watch mode for development.
  • Separate build commands: npm run build:css, npm run build:js, or npm run build for both.

Improved

Modular Architecture

The Studio's main application file has been restructured into focused, maintainable modules:

  • Editor module — All Monaco editor, file tree, tab management, and Inline AI (Cmd+K) logic now lives in its own dedicated file.
  • Settings module — Site identity, AI provider configuration, email settings, knowledge viewer, system info, update uploader, and danger zone are cleanly separated.
  • Shared UI modules — Toast notifications, confirm/prompt modals, and utility helpers are reusable across the entire application.

See Customizing the Studio for the full module map and build instructions.


Keyboard & Accessibility

  • Confirm dialogs now respond to the Escape key to dismiss — previously only prompt dialogs supported this.
  • Confirm dialogs now auto-focus the action button, so keyboard users can press Enter to confirm immediately.

Code Editor Reliability

  • The language detection for open files now correctly identifies .xml, .svg, and .txt files instead of incorrectly treating them as JavaScript.
  • escapeHtml — the function used everywhere to safely render user content — now reuses a single DOM element instead of creating a new one per call, reducing unnecessary memory allocations.

Fixed

  • Resolved an edge case where the Confirm modal's Escape key listener could persist after the modal was closed.

Version 1.1.0

February 21, 2026

This update introduces the all-new VoxelSite Code Editor, bringing powerful inline AI capabilities, advanced file management, and deep customization options directly into the Studio.

New

Inline AI Code Editing (Cmd+K)

You can now use the AI as your pair-programmer directly inside any open file:

  • Targeted Edits: Highlight any block of code and press Cmd+K (or Ctrl+K) to open the inline AI prompt.
  • Real-Time Streaming: Tell the AI what to change, and watch the new code stream directly into your editor in place of the old code.
  • Draft Mode: All AI edits are safely inserted as "unsaved drafts." You have full control to review the changes before clicking Save, or simply Cmd+Z to undo.

Custom System Prompts

Advanced users now have direct control over the AI's core instructions:

  • Accessible Prompts: View and edit core AI instruction files (like system.md) directly in the editor's file tree.
  • Update-Safe: Your custom prompt overrides are strictly protected and will never be wiped out during VoxelSite system updates.
  • Easy Reset: If you make a mistake, a new "Reset to default" action instantly restores the original factory prompt.

Improved

Editor Experience

  • Unsaved Changes Protection: A new warning modal guarantees you won't accidentally lose unsaved work if you click away or refresh the page while editing.
  • Tab Navigation: Added smooth horizontal scrolling to the editor tabs, making it effortless to manage many open files at once.
  • Workspace Controls: Added real-time Font Size adjustments and Word Wrap toggles directly in the editor toolbar.

Fixed

  • Read-Only Protection: Strengthened visual indicators and typing lockdowns for protected core files (like tailwind.css).
  • Code Formatting: Resolved background initialization and formatting errors for CSS and JavaScript files in the Monaco editor.
  • Path Matching: Improved the background logic that ensures AI edits are perfectly mapped to the correct files.

Version 1.0.0

February 2026

Initial release.

  • AI-powered website generation from natural language descriptions
  • Visual editor — click-and-edit overlay with inline text editing, image swapping, and element deletion
  • Visual style editor — icon-based navigation with responsive breakpoint support, two-step color picker, and live style preview
  • JIT CSS engine — in-browser Tailwind utility generation for instant style previews without server-side compilation
  • Live preview with instant updates
  • Revision system with full undo/redo
  • Snapshot system for manual save points and rollback
  • One-click publishing
  • Automatic SEO (schema.org, sitemap, robots.txt, llms.txt)
  • Form builder with spam protection and submission management
  • Asset management (image upload, organization, drag-and-drop)
  • Page management (create, edit, delete, reorder)
  • Navigation auto-management
  • AI-ready output (MCP server, structured data layer)
  • Site Memory and Design Intelligence (AI-accumulated context)
  • Custom favicon upload
  • Email notifications with SMTP support
  • In-app update system (Settings → Update → upload zip)
  • Self-hosted — runs on any PHP 8.2+ hosting with Apache
  • SQLite for zero-configuration data storage
  • Multi-provider AI support (Claude, OpenAI, Gemini, DeepSeek, OpenAI-compatible)

Ready to build?

One-time purchase. Self-hosted. Own every file forever.

Get VoxelSite