← Back

What's New

The latest updates and improvements to our platform.

Friday, April 24, 2026

Improved

Cinematic hero: reliable intent detection + layout preview in plan

The plan builder now reliably detects when you want a cinematic scroll-scrub hero and immediately reflects it in the layout wireframe — so you can see the "full-width video + three scroll-synced chapters" design before generating. A new "Switch to standard" button also lets you revert the cinematic hero choice if the classifier guessed wrong. **Where:** New site builder chat → right-rail Layout tab (wireframe panel) + hero section card **How to test:** - Start a new site brief. Say "I want a cinematic scroll-scrub hero like Apple's product pages." The right rail should update the hero section card to show "Cinematic Scroll-Scrub" (locked) with a wireframe of a full-width video surface and three chapter rows below it. - Short confirmations like "yes, go ahead with that" after the assistant describes the cinematic option should also register as intent. - Click the "Switch to standard" button on the hero card — the card should revert to the regular Split layout picker and the cinematic lock should clear. - Compact section-plan previews shown in the chat transcript should also reflect the cinematic layout (not the default Split). **Watch for:** - Hero card staying on "Split" layout despite explicit cinematic request - "Switch to standard" button not appearing when cinematic mode is active - Clicking "Switch to standard" and then the wireframe still showing the cinematic layout - Short replies like "yes" or "do that" not triggering cinematic intent when the assistant's previous message described the cinematic option

New

Cinematic hero: video upload in chat + server-side optimisation

You can now drop a video file directly into the blueprint chat or the in-editor assistant bar — the clip is automatically optimised on the server for smooth frame-by-frame scrolling, then stored and linked to your blueprint so generation can proceed without a separate upload step. **Where:** New site builder chat (drag-drop or attach button) + Client portal → in-editor assistant bar (attach button) **How to test:** - Open the new site builder chat. Click the attachment icon (or drag a .mp4/.mov file into the chat area). A video preview chip should appear and a "Uploading + optimising…" state should show — optimisation typically takes 20–40 seconds for a 10-second clip. - After upload, confirm the chip shows a thumbnail and "Ready". The video URL should be attached to your blueprint. - Try in the in-editor assistant bar: open an existing site, click the paperclip, select a .mp4 — the same chip and loading state should appear. - Files larger than 80 MB should be rejected immediately with a size error before upload starts. **Watch for:** - Upload succeeding but generation still failing with "no video attached" (URL not persisting to blueprint) - Upload spinner never resolving (stuck transcode — check server logs for ffmpeg errors) - Image attachments broken (video path should not affect existing image flow) - WebM or MOV files rejected (all three formats should be accepted and re-encoded to MP4)

New

Cinematic scroll-scrub video heroes

Upload a short video and turn it into a cinematic scroll-controlled hero — the kind where the video advances frame by frame as your visitor scrolls, like Apple's product pages. **Where:** New site builder chat (describe a "cinematic scroll-scrub" or "Apple-style" video hero in your brief, then upload the file) — or in the in-editor assistant on an existing site ("make the hero a scroll-scrub video" + attach an MP4). **How to test:** - Start a new site. In the opening chat, say something like: *"I want a luxury beachfront resort called Azure Sands — the hero should be a cinematic scroll-scrub video, like Apple's product pages."* - The right rail should update to show a "🎬 Cinematic Scroll-Scrub" layout for the hero section - Try to generate before uploading → an inline uploader should open asking for a 5–12 second MP4 - Drop your video → upload takes 20–40 seconds (the clip is being optimized for smooth scrubbing) - Generate → the opening of the site should be a pinned video with three scroll-synced text chapters that crossfade as you scroll, with no separate hero section below it - Try the retrofit path: on any already-generated site, open the in-editor assistant, drop an MP4, and ask for a cinematic hero — it should swap in place without regenerating the whole site **Watch for:** - Videos longer than ~12 seconds feel sluggish to scroll through — keep clips short - On iPhones/iPads, scrubbing may feel less precise than on desktop — this is a known limitation we're improving - If you upload a very large file (>80MB), it'll be rejected — trim first - The generator deliberately skips a second hero section when the cinematic hero is active — so the Homepage now opens straight into "Arrival / Accommodations / About" content below the video

Fixed

Editor now renders correct theme colours instead of stale light-mode defaults

Opening a dark-theme site in the full editor (via "Refine Design" or "Open Editor") was rendering text as near-invisible black against the dark background. The editor was injecting an outdated colour snapshot that overrode the live theme file. The fix skips the injection when the theme file already contains valid colour variables, so dark and custom themes render correctly. **Where:** Client portal → Mission Control → "Refine Design" button (or any "Open Editor" link) **How to test:** - Open a site that uses a dark theme in the client portal. - Click "Refine Design" or open the full editor via any route. - Text, headings, and backgrounds should match the site's actual design — white text on dark background for dark themes, not black text on dark backgrounds. - Refresh the editor URL — the correct theme should persist on reload. - Click the browser Back button from the editor — it should return to Mission Control rather than reloading the editor. **Watch for:** - Black text on dark backgrounds in the editor (the original bug returning) - Editor rendering a completely different colour scheme from the published site preview - Back button not returning to Mission Control

Improved

Gallery mode toolbar is now a single seamless bar

The Design Gallery no longer shows two separate horizontal bars stacked on top of each other. All gallery controls — viewport toggles, New Design, and Import — are now integrated into the main site header bar for a cleaner look. **Where:** Client portal → Site editor → Design Gallery view **How to test:** - Open a site and navigate to the Design Gallery (click the grid icon or "Design Gallery" in the header) - Confirm there is exactly one header bar at the top — no second toolbar underneath it - Confirm the viewport toggle buttons (mobile/tablet/desktop), New Design button, and Import button are all in that single bar - Switch back to the regular editor and confirm the toolbar returns to normal - Click the "+" card in the gallery grid — confirm it still triggers the New Design workspace **Watch for:** Two stacked toolbars appearing when entering gallery mode; viewport toggle or New Design button missing from the header; the "+" card in the grid being removed

Improved

Google sign-in users are asked to confirm their name during onboarding

Users who sign in with Google are now prompted to confirm their first and last name during onboarding when their Google account name is ambiguous (e.g., a company name or nickname). The form is pre-filled with the best available name from Google and skipped entirely for email signups. **Where:** Sign up with Google → Welcome / onboarding step **How to test:** - Sign up using a Google account whose display name is a company name or single word (not a proper first/last name) - On the welcome/onboarding page, confirm a "Tell us your name" form appears pre-filled with the best available values - Submit the form — your profile should update with the confirmed first and last name - Sign up with email instead — confirm the name form is skipped entirely (email signups already provide both names at registration) **Watch for:** Name form appearing for email signups (should be skipped); form showing blank fields instead of pre-filling from Google; name not saving correctly after submission

Fixed

Invisible-flash animation removed from generated sites

Some generated sites had elements that flashed invisible for ~600ms on every page load before appearing. This was caused by a default fade-in animation class that applied its "hidden" starting state before the animation fired. The class has been removed from the platform's animation defaults. **Where:** Any generated site (affects page load appearance) **How to test:** - Generate a new site and load the preview. - Elements should appear immediately on load — no visible flash or disappear-then-appear effect on any section, heading, or card. - Marquee/ticker animations (the animation the library was kept for) should still work. **Watch for:** - Any element that momentarily disappears then fades in on page load - Marquee animations broken (should be unaffected)

Fixed

New Design chat crash on open fixed

Opening the "+ New Design" workspace could throw a "Cannot access 'handleSendMessage' before initialization" error that prevented the workspace from loading at all. The crash was caused by a handler declaration order issue and is now fixed. **Where:** Client portal → preview phase → "+ New" button → "Describe Your Vision" **How to test:** - Open a site in preview phase (one with 2+ variations). - Click "+ New" then "Describe Your Vision". - The workspace should open without any red console errors. - Click a design chip (D1, D2…) — `@D{N}` should be inserted into the input with no crash. - Open the Advanced drawer, close it, reopen it — no errors. **Watch for:** - Any "Cannot access … before initialization" error in the browser console on open - Preference card (hypothesis diagnostic) failing to render after the chat opens

Improved

New Design chat feels like the blueprint chat again

The "+ New Design" workspace has been rebuilt to feel like a continuation of your planning conversation, not a separate product. Chip click now references a design in your message; iterating is explicit. Session memory survives close + reopen. **Where:** Client portal → preview phase → "+ New" button → "Describe Your Vision" **How to test:** - Open a site in preview phase that has 2+ variations and a prior blueprint chat history - Click "+ New" and choose "Describe Your Vision" - Confirm your earlier blueprint messages appear behind a "Show earlier conversation" toggle (last 5 visible by default, expandable) - Confirm a horizontal chip bar "Your designs: D1 D2 D3…" sits above the chat, each chip with a small palette swatch - Click a chip (e.g. D2): `@D2` should appear in the input with no AI spinner, no anchor banner - Click another chip to mix: `@D2 @D3` joins in the input - Click the ⋯ next to a chip → "Iterate on D{N}" — now an "Iterating on D{N} (Full)" banner appears above the input - Open the "Advanced" drawer (header): you should see Anchored variation dropdown, anchor mode tri-state, Compose sections launcher, Visual reference upload, Re-diagnose, Start over, Review & generate - Close the workspace via X or Esc, then open "+ New" → "Describe Your Vision" again — the hypothesis should reappear instantly with no "Thinking…" spinner (session-cached) - Type a request the AI should read as iterate: `@D2 but warmer and less corporate` — after send, the AI should silently set D2 as the anchor (banner appears) based on the conversation, no modal or menu needed **Watch for:** - Any red console error on open (previously a TDZ "Cannot access 'handleSendMessage' before initialization" was caught and fixed — should not return) - Hypothesis re-firing on every open (it should only fire once per session — invalidates only when you generate a new variation or leave fresh gallery feedback) - Chip click silently auto-iterating (regression of the old behavior — click = reference only) - Blueprint history missing, or rendered as editable rather than read-only chips for `blueprint_updates` - Advanced drawer controls not matching the prior iteration state (anchor dropdown should reflect Advanced → Unpin / Iterate menu choices made via chip overflow)

New

New Design chat rebuilt to feel like a continuation of your planning conversation

The "+ New Design" workspace has been rebuilt from the ground up so it flows naturally from your earlier site planning chat instead of feeling like a separate tool. Your blueprint conversation history is visible, typing a new request doesn't re-run AI before you ask it to, and the overall spacing and typography now matches the cleaner look of leading chat interfaces. **Where:** Client portal → preview phase → "+ New" button → "Describe Your Vision" chat workspace **How to test:** - Open a site in preview phase with 2+ designs. Click "+ New". - The workspace should open showing a brief recap of your earlier planning chat (up to 5 recent messages) with a phase divider separating it from the variation chat. - Click a design chip (D1, D2, etc.) — `@D2` should be inserted into the input with no AI call. - Type a request and send it — the AI should respond with a suggestion rather than immediately re-running generation. - Open the Advanced drawer (⚙ icon) to access anchor-mode, section composer, reference image, and Re-diagnose options. - Close and reopen the workspace — your previous messages and AI hypothesis should be restored from cache without a fresh AI call. **Watch for:** - Workspace triggering a new AI call just from being opened (no user message sent) - Design chip click sending a message instead of just inserting `@D{N}` text - Prior blueprint chat history not appearing above the phase divider - Closing and reopening causing messages to reset or duplicate

Fixed

Page creation no longer silently fails when AI generates a form component

Creating a page that the AI builds using a shared form block (like a lead form or booking section) no longer gets incorrectly rejected as "missing a form." The validator now checks the actual component source rather than surface-level markup patterns. **Where:** Client portal → Site editor → Assistant panel → ask AI to create a page with a form or booking section → Create **How to test:** - Ask the assistant: "Create a services page with a booking form at the bottom" - Confirm the plan card appears and the Create button works without a validation error - Create a page that uses a named component like `<LeadFormSection />` or `<BookingSection />` — confirm it's accepted as having a form - Ask for a standard page and a landing page in the same request — confirm the AI doesn't arbitrarily classify one as a landing page **Watch for:** "This page requires a form" validation error on a page that clearly has a booking or contact section; landing page slugs (`/lp/…`) being assigned to what should be a standard page

Improved

Page plan proposals survive page refresh and conversation switches

Page plan proposals are now saved to the database instead of living in component memory — refresh the page, switch conversations, or come back later and the inline plan card reappears exactly as you left it. **Where:** Client portal → Site editor → Assistant panel (when the assistant proposes new pages) **How to test:** - Ask the assistant to "plan a Contact page and a FAQ page" and wait for the inline plan card to appear - Refresh the browser — the plan card should reappear without asking the AI again - Switch to a different assistant conversation, then switch back — the plan card should still be present - Approve the plan by clicking Create — confirm the card disappears and is not restored on the next refresh - Start a new conversation and ask for a different plan — confirm the old plan card is replaced **Watch for:** Plan card missing after refresh when it should reappear; duplicate plan cards appearing after conversation switch; plan persisting after it was successfully created (should clear)

New

Page Planner now opens in a focused full-screen workspace

When planning new pages, the assistant now opens a dedicated two-column workspace: chat on the left, a live plan card on the right. All the same voice, image upload, history, and starter chips from the regular assistant work here — no separate tool to learn. **Where:** Client portal → Site editor → Assistant panel → plan pages → "Open in planner →" link, or ask the assistant to plan a page from scratch **How to test:** - Open a site in the client portal and ask the assistant to "plan an About page and a Services page" - After the assistant responds with an inline plan card, click the "Open in planner →" link at the bottom of the card - Confirm the workspace opens with chat on the left and the live plan card pinned on the right - Try surface-aware starter chips at the top — confirm they differ for a standard page vs a landing page flow - Close the workspace and reopen — the assistant rail should be hidden while the workspace is open (not duplicated) **Watch for:** Two assistant instances running simultaneously (workspace + rail both active); starter chips not matching the page type context; the plan card on the right not updating as you refine the plan in chat

Fixed

Polish fixes for chat-based page planning

Three small but visible bugs in the new chat-based page planner are fixed: (1) the assistant no longer shows a misleading "Done:" line above a plan that hasn't actually been created yet, (2) after a failed page-creation run the proposal card no longer re-appears as if it hadn't been tried, and (3) the conversation-focus bus no longer intermittently drops events when you open or close the assistant panel while a plan is streaming. **Where:** Client portal → Site editor → Assistant panel (when asking the AI to plan new pages) **How to test:** - Ask the assistant to "plan an About and a Services page" — the inline plan widget should appear with the proposal text (e.g. "Proposed plan for Acme. Review and create when ready.") and NOT with a "Done:" prefix above it - Approve a plan that will partially fail (e.g. ask for pages where one slug conflicts with an existing page) — after the failure, the old proposal card should not re-appear with an active Create button - While a plan is generating, open and close the assistant panel a few times — the plan should continue streaming updates without pauses or missed events **Watch for:** "Done: Proposed plan for X..." line appearing above an un-approved plan; clicking Create on a re-appeared proposal card after a failed run double-creating pages; plan progress silently freezing after the user toggles the panel

Fixed

Restaurant sites now include a Menu page + broken inner-page import fix

Two regressions in site finalisation are resolved: restaurant sites were not getting a `/menu` page generated despite having the right business type set, and several inner pages (About, Contact, FAQ) were importing invalid utilities from the theme file causing compile errors and silent redirects back to the homepage. **Where:** Site generation finalisation (automatically applied when generating or finalising any site) **How to test:** - Generate a restaurant site (set business type to "restaurant" in the brief). - After generation, confirm a Menu page exists (`/menu`) in the Pages tab. - Navigate to `/about`, `/contact`, and `/faq` — all should load without errors or blank pages. - Open the browser console on inner pages — no "No matching export for import 'tw'" errors should appear. **Watch for:** - Restaurant sites generating without a `/menu` page - `/about` or `/contact` pages redirecting to the homepage silently (indicates a broken import that was not auto-fixed)

Fixed

Selected element pill in chat is now readable

When you click an element on the site and send a chat message, the assistant shows a small "context pill" above the message indicating which element was selected (e.g. `H1: "Scale your…"`). That pill was previously rendered as dark blue text on a blue message bubble — essentially illegible. It now uses a high-contrast chip with the element type (H1, P, BUTTON, etc.) and a truncated title, cleanly separated from the message body. **Where:** Client portal → Site editor → Assistant panel (any user message sent with an element selected) **How to test:** - Click any text element in the site preview - Send a chat message while the element is selected (e.g. "make this shorter") - Confirm the element context pill above your message is easy to read — uppercase element type (H1, BUTTON, etc.) in a contrast chip, with the truncated selected text next to it - Click different element types (headline, paragraph, button) and repeat to verify the tag pill updates correctly **Watch for:** Pill text still rendering as dark fog on the blue bubble; tag chip missing on messages that were sent with an element selected; long selected text overflowing the chat bubble instead of being truncated

Improved

Share Preview modal now shows a thumbnail per design

The Share Preview modal previously listed designs by label only (D1, D2, D3…). Each design now shows a screenshot thumbnail alongside the share link, with an "open in new tab" button so you can quickly review what you're about to share before copying the link. **Where:** Client portal → Site editor → toolbar → Share Preview button **How to test:** - Open a site with multiple design variations and click Share Preview in the toolbar - Confirm the modal shows each design's name plus its screenshot thumbnail - Click the "open in new tab" icon next to a design — the preview should open in a fresh tab - Copy the share link and verify it opens the correct design - On a single-variation site (or extracted site) the modal should still work with one entry **Watch for:** Thumbnails missing or stuck on placeholder images for designs whose screenshots haven't generated yet; "open in new tab" link going to the wrong design; modal layout breaking with many variations

Fixed

Site colors no longer flash to default when switching Edit and Preview modes

Toggling between Edit and Preview mode in the full editor no longer causes a brief flash where the site loses its theme colors (e.g., a black-on-black hero section). The iframe now preserves its theme state across mode switches instead of remounting. **Where:** Client portal → Site editor → Edit / Preview toggle button in the toolbar **How to test:** - Open a site with a custom color palette in the full editor (Open Editor) - Switch between Edit and Preview mode several times using the toggle in the toolbar - Confirm the site colors, fonts, and background remain consistent throughout — no flash to unstyled/default state - On a slower connection, watch for the brief window between toggle: the site should stay styled the whole time **Watch for:** A visible flash of dark-on-dark or unstyled text when toggling modes; theme colors reverting to Tailwind defaults (blue/gray) momentarily before restoring

Fixed

Site intelligence recommendations are more accurate and reliable

Six reliability and accuracy issues with site intelligence recommendations are fixed: recommendations now reflect the current state of your site (not a stale snapshot), dismiss correctly saves across sessions, and only editors can dismiss recommendations (viewers could previously bypass this). **Where:** Client portal → Site editor → AI recommendations panel **How to test:** - Open a site with recommendations visible in the panel - Dismiss a recommendation and reload — confirm it stays dismissed and doesn't reappear - Publish the site, then reopen the editor — recommendations should update to reflect the published state within a few seconds - Open the editor with two browser tabs and send a chat message in both simultaneously — the recommendations panel should show a consistent result without duplicate entries **Watch for:** Dismissed recommendations reappearing after reload; stale recommendations that don't match the current site content; duplicate recommendation rows appearing in the panel

Fixed

Tweaks color swatches now show your site's actual colors

The Tweaks panel now reads color values from your site's theme file instead of falling back to generic defaults. Previously, hovering a swatch could preview a completely different color family, and clicking Apply would overwrite your real site palette with the wrong colors. **Where:** Client portal → Site editor → Tweaks panel → color swatches **How to test:** - Open any site that has a custom color palette applied (not the default indigo/cyan) - Open the Tweaks panel — the color swatches should reflect the site's actual primary, secondary, and background colors - Hover a swatch — the preview in the iframe should show a variation of the site's own palette, not a shift to a completely different hue - Click Apply — the saved color should match what you saw in the hover preview **Watch for:** Color swatches showing indigo (#4F46E5) or cyan (#06B6D4) on a site with different brand colors; hover preview looking unchanged; Apply writing the wrong palette back to the site

Fixed

Tweaks panel Apply button now saves reliably on all site types

Clicking Apply in the Tweaks panel now always saves both font and color changes to your site, regardless of which theme structure the site uses. Previously, Apply could silently discard changes or overwrite earlier adjustments depending on the site's theme file format. **Where:** Client portal → Site editor → Tweaks panel → color or font swatches → Apply **How to test:** - Open the Tweaks panel on any site and change both the primary color swatch and the body font - Click Apply — both changes should appear in the live preview and persist after a page refresh - Apply a color change, then apply a different color a second time — the second color should win (not be stuck on the first) - Test on a site that uses a `ThemeStyles` component vs one using a plain `theme.ts` file — both should save correctly **Watch for:** Apply appearing to work visually (preview updates) but reverting on refresh; only one of font/color saving when both were changed; color getting stuck after a second Apply attempt

Thursday, April 23, 2026

Fixed

Add page button restored in toolbar page selector

The "+ Add page" option in the toolbar's page dropdown was missing after a recent toolbar layout update — clicking the dropdown showed existing pages but had no way to create a new one. The button is now visible and functional again. **Where:** Site editor → toolbar → page selector dropdown → "+ Add page" footer button **How to test:** - Open any site in the editor - Click the page selector in the top toolbar - Confirm the dropdown shows a "+ Add page" option at the bottom - Click it and verify the add-page flow opens correctly **Watch for:** The dropdown opening but showing no "+ Add page" footer, or clicking the footer doing nothing

Fixed

AI assistant no longer crashes when switching between page planning and other actions

The AI assistant panel crashed when switching between the "plan pages" action and any other confirmation dialog — a React rendering bug caused hooks to run inconsistently, breaking the panel until the page was refreshed. **Where:** Client portal → AI assistant panel (any task following a plan-pages confirmation) **How to test:** - Open the AI assistant and ask it to plan new pages for your site - Confirm or cancel the page plan dialog - Immediately ask the assistant to make a different change (e.g. edit a section or change colors) - The assistant panel should continue working without a crash or blank screen **Watch for:** Assistant panel going blank or throwing an error after a plan-pages confirmation; needing to refresh the page to recover the assistant

Fixed

AI page planner no longer crashes the assistant panel

After asking the AI assistant to plan new pages, switching to a different assistant action and back caused the entire assistant panel to crash. The crash was a React hook ordering bug triggered when the confirmation card type alternated between the page planner and standard confirmations. The panel now handles both flows without crashing. **Where:** Client portal → AI assistant panel → any confirmation after using the "plan pages" feature **How to test:** - Open the AI assistant and ask it to plan new pages for the site - When the page plan confirmation card appears, dismiss it (click Cancel) - Ask the assistant to do something else that shows a confirmation (e.g. change a design element) - Confirm the assistant panel stays functional and shows the new confirmation correctly **Watch for:** The assistant panel going blank or showing a React error boundary after alternating between page planning and other assistant actions

Fixed

Design gallery cards now render correctly for all hero section styles

Design variations that used modern CSS viewport units for full-screen hero sections appeared broken in the gallery — the hero overflowed the preview card, making the design look non-functional. Gallery previews now cap these heights correctly regardless of which viewport unit the AI used. **Where:** Client portal → Design gallery (the multi-variation picker shown after generation) **How to test:** - Generate a new site and open the design gallery - Inspect all design variations — each card should show a fully contained preview with no overflowing hero section - Click through each variation to confirm the full-size preview also looks correct **Watch for:** Any gallery card where the hero section bleeds past the card boundary, or a design that appears stuck with no visible page content below the hero

New

Design gallery: browse variations with screenshots and focus mode

The multi-variation picker shown after generation is now a proper gallery: each variation has a static screenshot you can browse, click a card to enter focus mode on that design, and delete variations you don't want. The gallery and site-editor toolbars merged into one continuous bar at the top, duplicate back arrows are gone, and the grid/pixel-size debug chrome has been removed for a cleaner first impression. **Where:** Client portal → Site editor → Gallery view (shown automatically after generation, or reachable via Explore Designs) **How to test:** - Generate a new site and wait for the gallery view to appear - Confirm each design card shows a real screenshot (not a blank preview); wait a few seconds if a card says "Rendering…" - Double-click any card to enter focus mode on that design; verify the focus mode header has a single back arrow (not two) - From focus mode, use the "Focus Mode" toolbar button to swap between gallery and focus mode seamlessly - Back in the gallery, click the delete icon on a variation — a confirmation dialog should appear before it's removed - Confirm the toolbar no longer shows pixel-size labels, the grid-layout icon, or the preview/edit hint text - On a site whose heroes use full-screen viewport units, confirm no design card shows an overflowing hero (this was a separate fix in the related changelog) **Watch for:** Cards stuck on "Rendering…" for longer than ~30 seconds; a single click entering focus mode instead of requiring double-click; delete action firing with no confirmation; back arrow appearing twice in the header; cards clickable but not navigating into focus mode

Improved

Extracted sites now show a page selector dropdown in the toolbar

Once a site is extracted into separate pages, the old variation-pill row in the toolbar doesn't make sense — there's only one design, but multiple pages. The toolbar now shows a compact page selector dropdown instead, with an "+ Add page" footer so you can jump to creation without leaving the editor. **Where:** Client portal → Site editor → top toolbar (for extracted-phase sites only) **How to test:** - Open a site that's been extracted (has more than just the homepage) - Confirm the toolbar shows a single page selector dropdown instead of a row of V1 / V2 / V3 variation pills - Click the dropdown and verify all site pages are listed, plus the "+ Add page" footer at the bottom - Pick a different page and confirm the editor navigates to it - Click "+ Add page" from the dropdown footer and confirm the add-page flow opens - Open a preview-phase site (multi-variation, not yet extracted) and confirm the variation pills still show — the dropdown is gated to extracted-phase sites **Watch for:** Variation pills still showing for extracted sites; page selector dropdown appearing on preview-phase sites where variation pills should still be shown; "+ Add page" footer missing; dropdown closing without navigating when you click a page entry

New

Facebook reviews now sync alongside Google reviews

Operators can connect a Facebook Page to the Reviews tab and see Facebook recommendations alongside Google reviews — with the ability to reply to recommendations directly from the portal. **Where:** Client portal → Reviews tab → Connect Facebook Page **How to test:** - Click "Connect Facebook Page" in the Reviews tab and complete the OAuth flow — verify the connected page name appears - If the account manages multiple pages, select the correct one from the dropdown and confirm the selection is saved - Verify that Facebook recommendations sync and appear in the unified review list alongside any Google reviews - Click reply on a Facebook recommendation — the reply should post as a comment on the underlying recommendation post - Click "Disconnect" and verify the Facebook reviews are no longer synced on the next refresh **Watch for:** OAuth redirect failing or returning an error after granting permissions; recommendations showing with no author or date; reply posting returning a "no post ID" error (this can happen for older recommendations that pre-date the recommendation permalink format)

Fixed

Features page now shows correct status and clearer controls

The Features tab in the client portal had three problems: inactive features disappeared from the list with no way to reactivate them, the deactivate button looked like a status badge, and features with dedicated management screens had no way to open them from the active card. All three are fixed. **Where:** Client portal → Features tab (left rail) **How to test:** - Open the Features tab and confirm that deactivated features still appear in the catalog and can be reactivated - Click "Turn off" on an active feature — a confirmation dialog should appear explaining that the page will be hidden from visitors without deleting content - For features with a dedicated view (e.g. Help Center, Careers), click "Manage" on the active card and verify it opens the correct management screen and updates the URL - Activate a feature on a freshly-extracted site and confirm the dedicated page appears in the site's page list **Watch for:** Features showing "Active" in the manifest but missing their page in the site files; "Manage" button not appearing for features that have a dedicated view; confirmation dialog not appearing before deactivation

New

Get notified instantly when a negative review is posted

Operators can now configure per-site alert channels to receive real-time notifications when a low-rating review is posted — delivered by email, SMS, webhook, or Slack. **Where:** Client portal → Reviews tab → Alert Settings **How to test:** - Open the Reviews tab and click "Alert Settings" - Add an alert for email with a threshold rating of 3 — save it - Click "Send test alert" and verify a test notification arrives at the configured address - Add a second alert channel (e.g. webhook URL) and verify both channels receive the test notification - Change the threshold to 2 and confirm alerts no longer fire for 3-star reviews **Watch for:** Test alert delivered but real alerts not firing for new low-rated reviews; duplicate alerts sent for the same review on subsequent cron runs; error message not appearing in the UI when a delivery fails

New

Google Reviews: monitor and reply from the client portal

Operators can now view, filter, and reply to their Google Business reviews directly from the client portal — including AI-drafted reply suggestions that match the site's tone and brand. **Where:** Client portal → Reviews tab (left rail, requires Google Business connection) **How to test:** - Connect a Google Business account under Settings → Integrations, then open the Reviews tab - Verify that reviews sync automatically (or click Refresh) and appear with star rating, author, and date - Click "Draft reply" on any review — an AI-generated response should appear pre-filled in the reply box, tailored to whether the review is positive or negative - Edit the draft if desired, then click "Post reply" and confirm the reply appears on Google - Filter by star rating or date to find specific reviews **Watch for:** Sync showing 0 reviews when the connected location has reviews on Google; AI draft appearing blank or missing business context; reply posting silently failing without an error message

New

Location-based content: show different copy to visitors by city or region

Sites can now swap words and phrases based on where the visitor is located — their city name appears automatically, pricing can differ by region, and any custom variable you define can have location-specific values with a simple inclusion/exclusion rule. Markers like `{{GEO:city}}` or `{{GEO:plumbing_basic}}` are resolved at request time from the visitor's IP, so no rebuild, no flicker, and no separate pages per city. **Where:** Client portal → Settings → Dynamic Content (define variables + rules + simulator) · Client portal → Content Manager (📍 marker button inline on any field) **How to test:** - Open Settings → Dynamic Content and define a variable (e.g. `plumbing_basic`) with a default value and a location-specific override (e.g. "$149" in Texas, "$179" elsewhere) - Use the visitor simulator at the top of the panel — pick a country/region/city and confirm the resolved value matches your rule - Open the Content Manager on any page, click the 📍 button on a text field, and either pick an existing variable or create a new one — the marker should be inserted inline in the field - Publish the site and open the live URL in a browser — your real location's value should show; use a VPN or a browser network-conditioning tool to simulate a different region and confirm the value swaps - Try the built-in `{{GEO:city}}` marker in a headline and confirm it prints the visitor's city - Try marker placement in an SEO field (page title, meta description, OG tags) — a warning chip should appear explaining why markers in SEO fields don't work well (Googlebot always resolves to Mountain View) **Watch for:** Markers printing literally as "{{GEO:city}}" on the published site; location overrides not applying after publish; visitor simulator showing values that don't match what a real visitor in that region sees; markers accepted without a warning in SEO fields; AI refinement stripping or rewriting geo markers when editing content

New

Multiple AI conversations per site: pin, archive, rename

The site-editor assistant bar now keeps a list of separate conversations — so you can run a pricing-page edit in one thread and plan a Google Ads campaign in another without the two tangling together. Each conversation has its own title (auto-generated from the first few messages), a pin to keep it near the top, an archive to hide older ones, and a rename option. Active / pinned / archived conversations are organised into three buckets. **Where:** Client portal → Site editor → Assistant bar → conversation switcher (list dropdown) **How to test:** - Open the assistant bar and start a conversation about one topic (e.g. "change the hero copy on the homepage"); send a couple of messages - Open the conversation switcher and start a new conversation about a different topic (e.g. "plan a Google Ads campaign for this business") - Switch back to the first conversation — its full history should be intact, not mixed with the second - Verify each conversation has a sensible auto-generated title (not "Untitled"); if it says Untitled, try the autoTitle action to regenerate - Rename one conversation manually and confirm the server accepts the new title - Pin a conversation — it should move to the top of the list - Archive a conversation and confirm it disappears from the default list but is still reachable via the archived view - Restore an archived conversation and confirm it returns to the active list **Watch for:** Switching conversations mixing messages from two threads; auto-title overwriting a user-set title (the server should leave user titles alone); pinned conversations not staying at the top; archived conversations still appearing in the default list; renaming silently failing without an error

Fixed

New pages now always inherit the site's colors and fonts

Pages added after initial site generation occasionally rendered with white backgrounds and default fonts instead of the site's palette — because the theme file the new page imported didn't actually exist yet. Every generated site now ships with a theme module from the start, and any legacy site missing one gets it auto-created on the first add-page action. A one-shot migration already backfilled theme files for 296 existing sites. **Where:** Client portal → Pages → Add Page (new pages generated anywhere in the editor) **How to test:** - Open a site whose homepage uses a distinctive color palette (any non-default colors) - Add a new page (via the Add Page button or the assistant "plan pages" flow) - Confirm the new page renders with the same palette, headings, and body font as the homepage — no white background, no default fonts - Repeat on an older site created before the fix: adding a page should silently self-heal and the theme file should now exist - Open the Pages list and switch between homepage and the new page — both should look consistent **Watch for:** New page showing white background or Arial/default fonts instead of the site theme; console errors about missing `./theme` imports; theme colors applying but the font families defaulting; different pages of the same site looking like they were generated for different brands

New

Plan new pages through the AI assistant chat

Adding new pages is now a chat-first flow. Ask the AI assistant "plan an About page, a Services page, and a Contact page" and it returns an editable plan widget inline in the conversation — one card per proposed page with title, slug, type, description, and a short rationale. You can edit each card, remove or reorder them, then approve the whole batch in one click. Progress updates stream per-card as the pages generate, so long runs no longer feel silent. **Where:** Client portal → Site editor → Assistant panel (ask it to plan new pages, or click "Plan with AI" in the Add Page modal) **How to test:** - Open the assistant panel and ask for a multi-page plan (e.g. "I need an About page, a Services page, and a Locations page") - Verify an inline plan widget appears with one editable card per proposed page - Edit the title/slug/description on a card — changes should persist on the card - Remove one card and add a note asking for a different page — the planner should regenerate or adjust - Click the single approve button to kick off generation — each card should show its own live progress (queued → generating → done) - Confirm all approved pages appear in the site's page list after completion - Try the alternate entry: open the Add Page modal and click "Plan with AI" — the form fields should flow into the chat as a natural-language prompt **Watch for:** Assistant going blank after confirming or cancelling a plan (crash on switching between plan-pages and other confirmations); individual card edits not surviving after clicking approve; progress stuck on "queued" for a card while others complete; approving creating pages that don't match the edited card values; voice dictation on the plan editor inputs failing silently

Improved

Signup is open — waitlist gate removed, Google signup promoted

New users no longer need an invite code to create an account. The waitlist gate on registration is disabled, a beta notice explains where the product is in its lifecycle, and Google signup is now the primary (and recommended) path — the email/password form is still available but moved to a secondary position. **Where:** `/auth/register` (public signup page) · App-wide banner for authenticated accounts **How to test:** - Open the app in an incognito window and navigate to the register page - Confirm Google signup is the prominent primary option at the top - Complete a signup via Google and verify the account is created without any invite-code step - Try the email/password form as a fallback and confirm it also works without an invite - Sign in as an existing user and confirm the beta notice banner appears somewhere visible (dashboard or account settings) - Click the "request support" or feedback entry on the beta notice and verify the support modal opens **Watch for:** Invite-code field still appearing in the register flow; Google OAuth returning an error during account creation; beta notice banner missing for existing accounts; support-request modal failing to submit

New

Text rewrite options: pick from three AI-generated variations

Clicking Shorter, Longer, Bolder, Friendlier, or More Formal on a selected text element now generates three rewrite options grounded on the actual business — its name, industry, target audience, and tone — and shows them as selectable cards in the chat. Pick the one you like and it's applied instantly. No more "the AI completed but nothing changed" when the tweak was too small to land on its first try. **Where:** Client portal → Site editor → click any text element → Quick Actions bar → Shorter / Longer / Bolder / Friendlier / More Formal **How to test:** - Open a site in the editor and click on a headline or paragraph - In the Quick Actions bar, click Shorter (or any of the tone options) - Within a few seconds, the chat should show three rewrite cards — each distinct, each relevant to the business (not generic SaaS boilerplate) - Hover each card to see it previewed in the site, then click one to apply it - Verify the element updates in the preview and the activity feed logs the chosen option - Try Undo from version history — the original text should return - Try a button element and confirm the suggestions respect that it's a button (short, action-oriented) **Watch for:** All three rewrites coming back identical or near-identical; rewrites reading as generic ("trusted partner for all your needs") instead of referencing the actual business; the old "no changes were applied" message still appearing for small text tweaks; applied rewrite not persisting after a refresh; picking an option on one element accidentally rewriting a different element with the same text

Wednesday, April 22, 2026

Improved

Cleaner editor shell: five tabs collapsed into one Customize menu

The right-rail editor previously showed five tabs across the top (Chat, Styles, Explore, Content, Design QA). Four of those are now consolidated behind a single "Customize" dropdown in the panel header, leaving the default view focused on the chat input and activity — the flow most users spend time in. Element-selection editing (click a section → Quick Actions, Advanced, chat) is unchanged. **Where:** Client portal → Site editor → right-side Design Assistant panel **How to test:** - Open any site in the editor with the assistant panel expanded - Confirm the default view shows only the iframe, version history, activity feed, and chat input — no horizontal tab strip - Click the Customize menu in the panel header — verify Site Styles, Explore Designs, and Design QA are available as options - Pick Site Styles and confirm the Tweaks/Themes/Fonts content loads as before - Close the menu and click a section in the preview — Quick Actions and Advanced controls should still appear exactly as before - Confirm the Styles panel no longer shows the "Select section to edit layout" preamble **Watch for:** Customize menu missing options or stuck showing the wrong panel; element selection no longer surfacing Quick Actions; layout editing unreachable after clicking an element; tabs reappearing after a refresh

Fixed

Fix booking reminders, scheduler forms, and service-area validation

Booking reminder and review-request automations now correctly read the customer's name, email, and phone — they were referencing the wrong database columns and silently sending to no one. Scheduler forms also reliably include the time-picker component and properly import the required React hooks regardless of how the AI structured the generated code. The today-filter on the scheduler no longer shows already-passed slots when the visitor's browser timezone differs from the site's timezone. **Where:** Client portal → Forms (scheduler and service-area-zip field types) · Client portal → Settings → Automations (booking reminders and review requests) **How to test:** *Booking automation:* - Create or find a site with a booking form and an active reminder or review-request automation - Submit a test booking with a real email/phone - Verify the reminder fires to the correct address/number with the customer's first name filled in (not "there") *Scheduler form:* - Open a site with a form that includes a scheduler field (and no service-area-zip field) - Generate/preview the form — the time-picker widget should render and be interactive - On today's date, verify that time slots in the past (plus any lead-time buffer) do not appear *Service-area zip form:* - Submit the form with an out-of-area zip code — the blocked/fallback message should appear as before; the hidden `_service_area_blocked` field is gone (server validates the zip directly) **Watch for:** - Booking automations firing with "there" as the first name (column rename not applied) - Scheduler field not rendering on forms that don't also use a service-area-zip field - `useEffect is not defined` runtime errors on scheduler forms - Today's past time slots still appearing in the scheduler picker

New

Go back to design selection after finalizing

If you pick a design and later realise one of the other variations would be better, there's now an explicit "go back to design selection" button — no more digging through version history to undo. Guards are in place so you can't accidentally blow away work: a warning appears if you've added extra pages, and the button is hidden for sites that have already been published. **Where:** Client portal → Home (top card next to Resume / Publish) · Client portal → Settings → General **How to test:** - Finalize a design on any site (pick a variation from the design gallery) - Open the Home screen — verify a "Go back to design selection" action is visible near the top - Click it. For a single-homepage site, the site should revert to preview phase and the gallery should reappear - Pick a different variation and confirm the site switches to that design - Repeat on a site that has extra pages added (not just the homepage) — verify a confirmation dialog warns that extra pages may inherit a different header/footer/theme before proceeding - Repeat on a site that has been published at least once — verify the button is hidden or disabled (revert is not allowed after publish) **Watch for:** Button visible on already-published sites; clicking revert silently wiping added pages instead of preserving them; site getting stuck in an empty state with no variations showing in the gallery; version history missing the revert entry

New

Live-preview sliders for padding, opacity, and font size

The Advanced controls on a selected element now include drag-to-adjust sliders for padding, opacity, and font size. As you drag, the preview updates live without hitting the AI; release to commit the change. No tokens spent on tweaks that used to require a chat message like "make this padding a bit smaller". **Where:** Client portal → Site editor → click any element → Advanced panel **How to test:** - Open a site in the editor and click a section or text element - Open the Advanced panel — verify sliders for padding, opacity, and font size are visible (alongside the existing color swatches and font dropdowns) - Drag the padding slider — the element's padding in the preview should update immediately as you drag - Release the slider — the change should commit and persist (refresh the page to confirm) - Repeat with opacity and font size - Undo via version history and confirm the change rolls back **Watch for:** Preview not updating while dragging (only on release); committed change not persisting after refresh; sliders modifying the wrong element (fallback-matched elements on extracted sites); font-size slider changing the whole section instead of just the selected text

New

New Tweaks panel for instant site-wide style changes

A new Tweaks tab in the Styles panel lets you change the feel of your entire site with a single click — pick a color, font pairing, background tone, corner style, or spacing density and see the result live before committing. **Where:** Client portal → Site editor → Styles panel → Tweaks tab (first tab, shown by default) **How to test:** - Open any site in the editor and click the Styles panel - The Tweaks tab should be the active tab by default with a sparkle icon - Hover over a color swatch — the live preview should update immediately without saving - Click a swatch to commit the change; verify the site updates in the preview - Try all six controls: Primary color, Accent color, Background tone, Font pairing, Corner style, Density - Switch to the Themes / Fonts / Tokens tabs and confirm they still work normally **Watch for:** Hovering a swatch and the preview not updating; committing a font change and the Google Font not loading in the preview; density or corner-style changes not persisting after navigating away and back

New

Service area by radius + edit and reschedule bookings

Service-area gating now supports a radius mode (center ZIP + miles) in addition to the allowlist — useful when your service area is "within 20 miles of downtown" rather than a fixed list. Bookings can also be edited directly from the Bookings tab: a pencil icon opens a modal to change the date and time, and a reschedule notification fires automatically to the customer through the same channels (SMS and email) as the original reminder. **Where:** Client portal → Settings → Service Area (new ZIP list / Radius toggle) · Client portal → Bookings tab (pencil icon on any booking) **How to test:** *Radius service-area:* - Open Settings → Service Area and switch the mode toggle to Radius - Enter a center ZIP and a radius in miles, save - Submit a form with a ZIP inside the radius — should pass - Submit with a ZIP outside the radius — should be blocked with the fallback panel - Switch back to ZIP-list mode and confirm the previously configured allowlist is preserved *Edit / reschedule a booking:* - Open the Bookings tab and click the pencil icon on a pending or confirmed booking - Change the date and pick a new time slot from the grid; save - Verify the booking row updates with the new date/time - Check that the customer receives a "your appointment has been rescheduled" notification on the channels configured for the booking reminder automation - Confirm any pending reminder messages for the original time are cancelled - Try the "Override availability" escape hatch to save a time outside configured slots — should still save **Watch for:** Radius geocoding failing silently and passing everyone through; ZIPs inside the radius being blocked (or vice versa); reschedule notification firing when only the status changed (not the date/time); original reminder still firing at the pre-reschedule time; customer getting duplicate notifications

Improved

Tweaks is now a floating card; fonts moved into Tweaks dropdowns

The Tweaks panel opens as a floating card from the preview toolbar instead of living inside the Styles right-rail panel — it doesn't compete for sidebar space any more. Fonts moved into Tweaks as two Word-style dropdowns (Heading / Body) listing ~30 curated Google Fonts, each rendered in its own face so you can see what you're picking. The old Site Styles right-rail panel is gone; the "+" button in the preview toolbar also exposes page-level actions like adding an announcement bar, cookie banner, WhatsApp bubble and the other site-wide add-ons. **Where:** Client portal → Site editor → preview toolbar → Tweaks button (opens the floating card) · Preview toolbar → "+" button (page-level adds) **How to test:** - Open a site in the editor and click the Tweaks button in the preview toolbar — the Tweaks card should float over the preview, not push content aside - Inside Tweaks, find the Heading and Body font dropdowns — each option should render in its own font so you can preview it inline - Pick a Heading font and a Body font independently; verify the preview updates live - Confirm the six designer font pairings are still available as a chip row for quick full-combo picks - Verify the Customize menu no longer lists "Site Styles" as an option (only Explore Designs and Design QA) - Click the "+" button in the toolbar and confirm it opens a menu with site-wide add-ons (announcement bar, WhatsApp bubble, cookie banner, etc.) - Pick an add-on and confirm it lands on the site without going through the chat **Watch for:** Font dropdowns showing options in a default face instead of each font's own face; floating card getting clipped by the toolbar edges; Site Styles panel still reachable via the keyboard shortcut "2"; "+" button firing another action while one is already in progress (should be disabled)

New

Voice Agent: visitors can call your site to talk with your AI

The public chat widget now offers a voice call button — visitors press it and have a natural spoken conversation with your AI, grounded on the same site knowledge the chat uses. Voice is a $29/month per-site add-on with 300 included minutes; site owners enable and track usage from the portal. **Where:** Client portal → Home → Voice Agent card (enable/disable, usage meter) · Client portal → Settings → Deploy tab · End-user side: your site's chat widget → new phone/microphone button **How to test:** - Open a site's Home screen and find the Voice Agent card — verify it shows "Enable Voice Agent ($29/mo)" with the 300-minutes-per-month allowance - Click Enable, complete the billing flow, and confirm the card switches to showing "Active" plus a used-minutes counter - Open the public chat widget on your site — verify a call/microphone button now appears - Click the call button, grant microphone permission, and speak a question that requires site knowledge (e.g. "what are your hours?" or "do you serve [my city]?") - Confirm the AI answers verbally, grounded in your site's content - End the call and verify the usage counter on the Home card increments by roughly the call duration - Try disabling the add-on — verify the button disappears from the widget and the card flips back to the upsell state **Watch for:** Call button still showing on the widget after disabling the add-on; used-minutes counter not incrementing after a call; voice agent giving generic answers that don't reference the actual business; microphone permission prompt failing to trigger; call connecting then immediately dropping; billing showing the add-on charged but the widget acting as if it's off

New

ZIP service-area gating and scheduler fields for forms

Forms can now include two new purpose-built fields for service businesses: a ZIP code that checks whether a visitor is inside your service area (and shows a fallback call-now panel if they aren't), and a native date + time-slot scheduler that creates a booking on submit. Both fields are real server-validated components — not embedded third parties — and use the same availability rules as the Bookings tab. **Where:** Client portal → Forms (field editor, add-field menu) · Client portal → Settings → Service Area (new panel) **How to test:** *Service-area ZIP field:* - Open Settings → Service Area and add a list of ZIP codes you serve (or paste them in bulk) - Write a fallback message to show visitors outside your area - Add a form with a ZIP field (type: service area ZIP) and publish - Submit the form with an allowed ZIP — submission should succeed - Submit with a disallowed ZIP — the fallback panel with the call-now CTA should appear, and the submission should be rejected server-side even if the UI is bypassed *Scheduler field:* - Confirm you have booking availability rules configured (Bookings tab) - Add a form with a scheduler field, publish, and open the live site - Pick a date and time slot — verify past slots (and any within the lead-time buffer) don't appear for today - Submit the form — a new booking should appear on the Bookings tab with the chosen date/time **Watch for:** Out-of-area ZIPs still being accepted server-side when the client-side check is bypassed; scheduler not surfacing on forms that don't also have a ZIP field; today showing past slots when the visitor's timezone differs from the site's; scheduler submission creating the form record but not the linked booking

Tuesday, April 21, 2026

Fixed

Improved Figma import reliability and error clarity

Several reliability issues with the Figma import flow have been fixed: connected Figma accounts without token refresh data were silently treated as disconnected; when one token failed with a server error and another with an auth error, only the less useful auth prompt was shown; and a successful Figma auth failure already showed a "connect your account" prompt but also added a redundant generic "could not analyze" message below it. **Where:** Client portal → Blueprint chat → Paste a Figma URL to import **How to test:** - Connect a Figma account and paste a Figma file URL into the blueprint chat - Verify the import succeeds and extracts frames/content without an incorrect "connect your account" prompt - If the Figma token has expired, verify only one clear message appears (not a duplicate "could not analyze" message alongside the auth prompt) - If a Figma URL fails for a non-auth reason (e.g. network error), verify the error shown reflects the actual problem rather than an auth prompt **Watch for:** Valid Figma connections being reported as unavailable; two error messages appearing simultaneously for the same failed import; auth errors appearing when the real issue is a server-side failure

Monday, April 20, 2026

New

Add announcement bars and pre-footer CTAs to site pages

Pages in the site editor now support two optional shell add-ons: an Announcement bar that sits above the header (great for promos or alerts) and a Pre-Footer CTA band that appears just before the footer on any page that needs it. Each is generated from the site's existing theme colors and can be edited like any other block. **Where:** Client portal → Site editor → Shell tab → Announcement / Pre-Footer CTA toggles **How to test:** - Open a site in the client editor and navigate to the Shell tab - Click "Add Announcement" — verify a styled announcement bar is generated and appears above the header in the preview - Click "Add Pre-Footer CTA" — verify the CTA band appears above the footer - Use the Edit button on each addon to open the block editor and make a text change - Navigate to a second page and verify the addon appears consistently across pages - Publish the site and check the live URL for both addons **Watch for:** Announcement bar missing on some pages but present on others; Pre-Footer CTA overlapping the footer; generating an addon a second time duplicating the block instead of prompting to edit the existing one

New

Add popups, banners, and floating widgets to any site

A new Overlays tab in the site editor lets you add modals, announcement banners, floating buttons, and cookie consent banners — each with its own trigger (on page load, on scroll, on exit intent, or after a timer) and frequency controls so visitors aren't shown the same popup twice. **Where:** Client portal → Site editor → Overlays tab (left rail) **How to test:** - Open a site in the client editor and click "Overlays" in the left rail - Click "Add Overlay" and choose a type (Modal, Banner, Floating, or Interstitial) - Set a trigger (e.g. "After 5 seconds") and enable the overlay - Publish the site and verify the overlay appears with the correct trigger behavior - Disable the overlay and republish — verify it no longer appears - Check that built-in integrations (Calendly, WhatsApp, cookie consent) still appear under the Overlays tab and can be toggled on/off **Watch for:** Overlays appearing on every page load even when frequency capping is set; published sites not showing overlays that are enabled; toggling a built-in integration from the Overlays tab overwriting unrelated settings

Fixed

Fixed carousels on sites with multiple sliders

Two carousel bugs are fixed: pages with more than one carousel (e.g. a testimonials slider and a photo gallery on the same page) now scroll independently — previously swipes and arrow keys always moved the first carousel regardless of which one you were interacting with. A second fix ensures each slide fills the container correctly so clicking "next" always shows the next slide fully, not half of it. **Where:** Any published or previewed site that uses carousels **How to test:** - Open a site that has two or more carousels on the same page - Swipe or use arrow keys on the second carousel — verify it moves independently from the first - Verify that clicking the next arrow shows the following slide fully, not partially - Run the repair script (`scripts/repair-carousel-slide-widths.ts`) on existing sites with carousels to patch affected slides **Watch for:** Carousels still showing partial slides after the fix; the second carousel remaining stuck while the first one moves

Fixed

Fixed editor preview getting permanently stuck on "Compiling..."

The site editor preview could get stuck showing a "Compiling…" spinner indefinitely with no way to recover short of clearing browser data. This happened when the browser's internal cache database became blocked by another tab. A 3-second timeout now catches this condition and falls back to a direct compile, so the preview always loads. **Where:** Client portal → Site editor → Preview pane **How to test:** - Open the same site in two browser tabs - Make an edit in one tab — both tabs should show the preview without hanging - If the preview previously required clearing site data to unstick, verify it now recovers automatically **Watch for:** Preview still hanging indefinitely (longer than ~5 seconds with no network activity); the spinner resolving but showing a blank or broken preview instead of the compiled site

Saturday, April 18, 2026

Improved

Generated designs better preserve your business positioning and show instant previews

Site generation now auto-captures thumbnail previews for both design variations and handles your business content more intelligently — keeping specific details like prices, offers, and guarantees while polishing the phrasing for the design's voice. **Where:** Client portal → Generate new site → Design selection step (thumbnails) and in the generated content quality **How to test:** - Generate a new site with a detailed business pitch (include specific numbers, pricing, or named offers) - Verify both design variation thumbnails load automatically without manual refresh - Check that specific pricing or offer details from your pitch appear in the generated design (not generic agency copy) - If a form and funnel feature are both active, verify the hero has only one primary CTA **Watch for:** Missing thumbnails on one or both variations; generated hero that drifts to "Transform Your Business" style clichés instead of the user's specific offer; duplicate lead-capture CTAs competing in the hero area

Friday, April 17, 2026

Fixed

Chat widget lead capture and callback scheduling now work reliably

The chat widget's lead capture and callback scheduling tools were silently failing in production — visitor requests to book a call or leave contact info would appear to succeed but nothing was actually recorded. This is now fixed, and the widget also handles site knowledge more efficiently: small sites preload all their content upfront (no search needed), while larger sites use on-demand search only when the AI needs details beyond what it already knows. **Where:** Chat widget embedded on published client sites (the visitor-facing chat bubble) **How to test:** - Open a published site with a chat widget enabled - Start a conversation and ask to "book a callback" or "leave your email" — confirm the lead/callback is captured in the dashboard - Ask a question about the business (e.g. services, pricing) — verify the AI responds with accurate site-specific information - Check the Contacts or Inbox panel to confirm captured leads appear **Watch for:** Lead capture or callback scheduling silently doing nothing; widget AI giving generic answers instead of site-specific details

Fixed

Variation chat auto-detects full business rewrites and updates baseline

When you paste a full business description into the variation chat, the system now detects it's a rewrite (not a tweak) and automatically pre-checks "Apply to baseline" — preventing stale placeholder content from leaking into unedited sections on future variations. A "Recommended — looks like a rewrite" badge appears so you know why the toggle was pre-checked, and you can still uncheck it if you only want this specific variation changed. **Where:** Client portal → site preview → "Describe Your Vision" / variation chat panel → plan card at bottom **How to test:** - Open a site in preview phase and click "Describe Your Vision" - Paste a long (800+ character) business description or describe changes across multiple sections (hero, services, pricing) - Confirm the "Also update baseline content" checkbox is pre-checked with the amber "Recommended — looks like a rewrite" badge - Generate the variation, then open a second variation chat — verify the new pitch is reflected in baseline context rather than the old placeholder content - For a small targeted change ("change the hero headline to X"), verify the checkbox stays unchecked **Watch for:** Baseline toggle incorrectly pre-checking for minor tweaks; "Apply to baseline" badge missing when a full rewrite is pasted; future variations still showing stale business content after a confirmed rewrite

Thursday, April 16, 2026

Improved

Clean up design gallery cards

Removed the undiscoverable thumbs-up, thumbs-down, palette, and notes buttons from the bottom of design gallery cards. These added visual clutter without clear purpose. Also added a subtle hint next to the design count: "Previews are approximate — click to see full design" to set expectations that gallery thumbnails are static snapshots. **Where:** Client portal, design gallery view (visible during the preview phase when multiple designs exist) **How to test:** - Open a site with multiple design variations to enter the gallery view - Verify the cards no longer show feedback buttons (thumbs up/down, palette, notes) at the bottom - Check that the hint text "Previews are approximate — click to see full design" appears near the design count - Click a card to confirm it still opens the full design as expected **Watch for:** Feedback buttons still appearing on cards, missing disclaimer text

Improved

Cleaner top toolbar with hover previews on design pills

The top toolbar in the site editor has been simplified for a cleaner look. The close button is now the Mondovo logo, redundant controls have been removed, design pills use compact labels (D1, D2, etc.), and hovering over a design pill shows a thumbnail preview of that design. The gallery button also shows a mini-grid preview on hover. **Where:** Client portal site editor -- top toolbar bar **How to test:** - Open a site with multiple design variations - Hover over each design pill (D1, D2, etc.) and confirm a thumbnail preview appears - Hover over the gallery grid icon and confirm a mini-grid of all designs appears - Click the Mondovo logo in the top-left corner and confirm it navigates back to the dashboard - Hover over the logo and confirm a "Go back to dashboard" tooltip appears **Watch for:** Missing hover thumbnails (may take a moment to load on first hover); tooltip not appearing on the logo; toolbar feeling cramped on smaller screens

Improved

Design assistant panel redesigned with resizable layout, unified input, and cleaner interface

The design assistant panel received a major UX overhaul: it is now resizable via a drag handle (width persists across sessions), the full-featured chat input (voice, image upload, mentions) works on every tab instead of only the Chat tab, and the interface is significantly decluttered. A new welcome card with capability tiles replaces the sparse hint text for first-time users. Draft messages are saved per site so you never lose what you typed on refresh. Long AI responses now collapse behind a "Show details" toggle to keep the conversation scannable. The confusing "Tools / History / Sections / Issues" tray header has been removed, and the Design QA tab now provides smarter feedback aligned with your site's goals. **Where:** Client portal site editor -- the design assistant panel on the right side of the preview **How to test:** - Open any site in the editor and verify the assistant panel has a drag handle on its left edge; drag to resize and confirm the width persists after page refresh - Switch to the Styles or Explore tab and verify the chat input still shows voice, image upload, and mention buttons (previously these were missing outside the Chat tab) - Type a message, switch tabs or refresh, and confirm the draft is preserved - On a fresh site with no chat history, verify the welcome card appears with four capability tiles - Send a refinement request and confirm the AI response collapses to a one-line summary with a "Show details" option - Open the Design QA tab and run a check; verify results reference the site's intended purpose and goals **Watch for:** Panel resize causing the preview iframe to overlap or leave a gap; chat input disappearing on non-Chat tabs; draft messages from one site leaking into another site's editor

Fixed

Design QA now screenshots the active variation

Design QA was always capturing screenshots of the first design variation, even when you were viewing a different one. Now it correctly screenshots whichever design you are currently viewing, and each variation gets its own cached QA results. **Where:** Client portal or admin playground, Design Assistant panel, QA tab **How to test:** - Open a site with multiple design variations - Switch to Design 2 (or any non-default variation) - Run the Design QA check - Verify the QA feedback is about the design you are currently viewing, not Design 1 - Switch back to Design 1 and run QA again — it should re-analyze (not show stale cached results from Design 2) **Watch for:** QA results still showing issues from the wrong design after switching variations

Fixed

Eliminate double preview refresh after AI edits

After an AI refinement, the preview would sometimes flash or refresh twice — once for the edit, then again unnecessarily. This has been fixed. Additionally, simple edits (like changing a single opacity value or font size) are now more tightly scoped so the AI modifies only what you asked for instead of rewriting surrounding code. **Where:** Client portal or admin playground, after making a refinement request via chat **How to test:** - Open a site in the editor and ask for a simple change like "make the hero section 50% opacity" or "change the heading font size to 3xl" - Watch the preview — it should refresh exactly once, not twice - Verify only the requested change was made (no unrelated layout or color changes) **Watch for:** Preview flashing/refreshing twice after a refinement, or simple text/style requests causing unexpected changes to other parts of the page

Fixed

Fix content carryover when switching design variations

Switching between design variations could cause content from one design to bleed into another — for example, services or FAQ items appearing or disappearing depending on the switching path. Three separate content-merge bugs have been fixed so each variation now consistently shows its own content. **Where:** Client portal and admin playground, when switching between design variations **How to test:** - Open a site with multiple design variations that have different content (e.g., one with FAQ, one without) - Switch from Design 1 to Design 2 and back several times - Verify each design consistently shows its own content sections - After switching, make a text edit and confirm it applies to the correct design **Watch for:** Sections appearing/disappearing unexpectedly after switching designs, or edits applying to the wrong variation's content

Fixed

Fix font, color, and preset changes not applying to all pages

Font changes, color theme switches, and dark/light mode flips from the Styles panel now apply to all site files, not just component blocks. Previously, page files (like the Home page) were excluded, so fonts wouldn't persist, colors wouldn't update, and the Styles panel would show the wrong fonts after reopening. Published sites could also miss Google Fonts links. **Where:** Client portal site editor -- Styles panel (fonts, colors, presets, dark/light mode toggle) **How to test:** - Open a site in the editor and go to the Styles panel - Change the heading or body font and confirm it applies to all pages, not just individual sections - Close and reopen the Styles panel -- the selected fonts should still display correctly - Switch between dark and light mode -- background and text colors should flip across all pages - Apply a color theme and verify the Home page picks up the new colors - Publish the site and verify the correct Google Fonts are loaded on the live version **Watch for:** Fonts reverting to defaults when reopening the Styles panel; Home page not reflecting color or mode changes; published sites loading with the wrong fonts

Fixed

Fix inline form editor for embedded form components

The inline form editor now correctly loads forms that are defined inside page files (not just standalone form blocks), and includes several UX improvements: dirty-state tracking with unsaved-changes warnings, a redirect URL field, save confirmation feedback, and a retry button when loading fails. **Where:** Client portal site editor -- click "Edit Form" on any form section in Preview mode **How to test:** - Open a site that has a form embedded within a page (not a separate form block) and click "Edit Form" on it - The form editor should load successfully, showing the correct fields - Edit a field label and confirm the Save button becomes enabled (dirty state) - Press Escape without saving and confirm an "unsaved changes" warning appears - Save the form and confirm a brief "Saved successfully" message appears before the editor closes - Expand "Submission Settings" and verify the redirect URL field is available - If the form fails to load, confirm a "Try again" button appears and works **Watch for:** Forms failing to load with a generic error; Save button staying disabled after retrying a failed load; the editor closing twice in quick succession after saving

Fixed

Fix preview reverting to old text after inline edits

When editing text directly in the preview (inline text editing), the change would sometimes revert to the old text on the next preview refresh. This happened because the local content state was not updated when the system auto-linked the edited text to the content system. Now the local state stays in sync, so your edit persists across refreshes. **Where:** Client portal or admin playground, when clicking on text in the preview to edit it directly **How to test:** - Open a site in the editor - Click on a text element (e.g., a hero headline) and edit it inline - Wait for any automatic refresh or trigger a change that causes a recompile - Verify the edited text stays as you typed it, not the original value **Watch for:** Edited text snapping back to its original value after a preview refresh

Improved

Improve Content Manager visibility and collection editing

Several usability improvements to the Content Manager and properties panel: collection banners (e.g., "Part of services collection") now have proper contrast in light mode, the banner button opens the Content Manager directly instead of switching to chat, sections that were hidden under a collapsed "Other" accordion now appear in the main list when the code scanner could not map them, and section subtitles show more useful previews (headings, item labels). **Where:** Client portal or admin playground, Properties panel (right side) and Content Manager modal **How to test:** - Select an element that belongs to a collection (e.g., a service card) — the properties panel should show a green "Part of X collection" banner with an "Edit in Content Manager" button - Click the button — it should open the Content Manager scrolled to the relevant section - In light mode, verify the green banner text and button are clearly visible (not washed out) - Open the Content Manager and check that sections show helpful subtitles (headings, item counts) instead of generic previews **Watch for:** Banner text invisible on light backgrounds, "Edit in Content Manager" button not opening to the correct section, sections still hidden under a collapsed "Other" group

New

Site preview links are now enabled by default

All new sites automatically have preview sharing enabled, so you can share a preview link immediately without an extra setup step. Existing sites that never had preview enabled have been backfilled as well. **Where:** Client portal site editor -- Share button in top toolbar **How to test:** - Create a new site and click the Share button in the toolbar - The share preview modal should open immediately with a working preview link -- no "Enable Preview" prompt - Copy the link and open it in an incognito window to confirm it loads - Check an older site that was never shared -- it should also have a working preview link now **Watch for:** The "Preview not enabled" message still appearing; preview links returning 404 for backfilled sites

Fixed

Use correct logo variant for light and dark backgrounds

Sites with uploaded logos could show an invisible logo — a white logo on a white header background. The portal header now correctly uses the dark (visible) logo on light backgrounds. Generated site code also now renders the appropriate logo variant based on the header background color, swapping between light and dark versions as needed. **Where:** Client portal header (Mission Control layout) and generated site header/navigation **How to test:** - Upload both a primary logo and a dark-mode logo variant for a site - Check the Mission Control portal header — the logo should be clearly visible on the white background - Generate a new site and verify the header renders the logo as an image (not just text) with the correct variant for the background color - If the site has a transparent-to-solid scroll header, check that the logo swaps appropriately **Watch for:** Invisible or barely visible logos on light backgrounds, logos rendering as plain text instead of images when a logo URL exists

Sunday, April 12, 2026

New

Design feedback ratings now persist across sessions

👍 / 👎 / 🎨 marks on design variations are now saved to the database, so closing and reopening the feedback modal no longer resets your ratings. **Where:** Client portal → Site generation → Preview & Approval modal (the variation comparison screen with Like, Dislike, and Use as Theme buttons) **How to test:** - Generate a site and open the variation comparison modal - Click 👍 on one variation and 🎨 on another - Close the modal and reopen it — your marks should still be set - Reload the page, reopen the modal — marks should still be there - Clicking the same button again should clear the mark (toggle behavior) **Watch for:** Marks not persisting after modal close (check network tab for PATCH requests to `/api/client-sites/.../variations/.../sentiment`), theme-source mark not clearing from the previous variation when a new one is selected

Friday, April 10, 2026

Fixed

Fixed site generation producing blank or unrenderable results

Site generation no longer silently fails or saves corrupt content when the AI returns a malformed response. Previously, certain AI outputs would cause the entire page structure to be stored as raw code, making the generated site completely unrenderable without any visible error to the user. **Where:** Triggered automatically during site generation — no user action required **How to test:** - Generate a new site from scratch and wait for it to complete - Confirm the preview shows a fully rendered design with distinct sections (hero, services, etc.) - Try generating multiple sites back-to-back; none should show a blank/broken preview **Watch for:** Site preview showing raw JSON text or a blank white screen after generation completes; the "Generating your site..." step completing but no design appearing in the preview tabs

Wednesday, April 8, 2026

Fixed

Fixed help center FAQ sections crashing when article IDs are missing

Help center and FAQ sections generated by AI now work reliably even when content items are missing ID fields. Previously, expanding or collapsing an FAQ item on certain sites caused a crash that broke the entire page. **Where:** Client portal → site editor → any section with a help center or FAQ accordion **How to test:** - Open a site that has an FAQ or help center section - Click an FAQ item to expand and collapse it - Confirm the accordion toggles correctly without any errors - Also try sites where content was generated with multiple design variations **Watch for:** Page going blank or freezing when clicking to expand an FAQ item; accordion not toggling open/closed

Fixed

Fixed new design variation appearing to complete instantly with no result

Generating a new design variation (Design 4, Design 5, etc.) no longer falsely reports completion before the AI has finished. Previously, the system could detect a leftover "completed" status from a prior generation and immediately declare the new variation ready — showing the same old tabs with no new design added. **Where:** Client portal → site editor → Generate Variation button **How to test:** - Open a site in the editor that already has 3 designs - Click to generate a new design variation - Wait for the generation to complete - Confirm a new design tab (e.g., Design 4) appears with a freshly generated layout **Watch for:** Toast saying "New variation ready!" appearing within seconds of starting generation but no new design tab appearing; page showing unchanged D1/D2/D3 tabs

Fixed

Fixed wizard chat failing to initialize site and losing imported content

Three bugs in the wizard chat flow are now fixed: the site ID is properly captured when the AI auto-creates a site during chat (preventing "Site not initialized" errors on generation), imported website content is no longer silently dropped, and the full conversation history is now sent to the AI so it doesn't lose context or re-ask questions you already answered. **Where:** Client portal → Create new site → Chat tab **How to test:** - Start a new site wizard, paste a URL to import content, and chat about the business - After several messages, click to generate the site - Confirm generation starts successfully with no "Site not initialized" error - Confirm the AI references information you shared earlier in the conversation **Watch for:** "Site not initialized" error when trying to generate; AI repeating questions already answered; imported website content not reflected in the generated design

Fixed

Fixed wizard chat history not saving or reloading between sessions

The site creation wizard now correctly saves and restores your entire chat conversation when you return to a site. Previously, chat messages were not persisted to the site, and voice transcripts were not linked — so returning to a site would show an empty chat even if you'd had a full conversation. **Where:** Client portal → Create new site → Chat tab **How to test:** - Start a new site in wizard mode and send several messages in the chat - Navigate away and return to the same site - Confirm all previous messages are still visible in the chat tab - Try the same with a voice conversation **Watch for:** Chat showing empty on return even after a long conversation; AI repeating questions it already asked in a previous session

Fixed

Fixed wizard template gallery, site import, and component library actions

Template gallery selection, site cloning, and component library browsing now work correctly in the new site creation wizard. Previously these actions were wired up incorrectly and selecting a gallery template would not redirect to the newly created site. **Where:** Client portal → Create new site → wizard mode → template gallery / import / component library **How to test:** - Open the new site wizard and browse the template gallery - Select and clone a template - Confirm you are redirected to the new site's editor after cloning completes - Also try importing a site from a URL via the import option **Watch for:** Page not redirecting after cloning a template; template selection having no effect; import modal not applying imported content

Tuesday, April 7, 2026

Fixed

Fixed animation crashes caused by undeclared GSAP scope references

Sites using GSAP animations with a scoped container reference now generate and preview without crashing. Previously, a specific animation pattern — where GSAP used a container element to scope its effects — could crash the site if the reference variable was never declared. **Where:** Client portal → site preview and published site — any site using GSAP scroll or animation effects with container scoping **How to test:** - Generate or preview a site that uses GSAP animations in a Hero or feature section - Open the browser console and confirm no "is not defined" errors appear - Scroll through the page to verify animations trigger and complete without errors **Watch for:** A blank preview or console error like "containerRef is not defined" in sections that use GSAP animation effects

Fixed

Fixed editor-role users being unable to open the site editor

Users with editor permissions could see the "Open Editor" button but clicking it had no effect. The permission check was incorrectly requiring owner-level access, so the action silently failed for editors. **Where:** Client portal → site dashboard → Open Editor button **How to test:** - Log in as a user with editor role (not owner/admin) - Navigate to a site dashboard - Click "Open Editor" — confirm the site editor opens correctly - Confirm that editor-role users can make and save changes once inside the editor **Watch for:** Button click doing nothing; editor not opening; console errors about permissions for editor-role accounts

Fixed

Fixed gallery lightbox crashing with a blank screen on some sites

Gallery sections with lightbox enabled now reliably open and navigate images without crashing. Previously, certain AI-generated gallery implementations caused a blank screen error when clicking to enlarge an image. **Where:** Client portal → site editor → any image gallery section with lightbox or carousel enabled **How to test:** - Open a site that has a gallery section with lightbox/carousel enabled - Click an image in the gallery to open the lightbox - Confirm the lightbox opens, and left/right navigation and close (Escape) all work - Also verify the undo button appears after using "Enable Lightbox" from the properties panel **Watch for:** Blank white screen after clicking a gallery image; lightbox opening but showing no image or broken navigation arrows

Improved

Improved reliability of gallery and carousel enable actions

Enabling lightbox or carousel from the properties panel is now safer and more informative — concurrent activations are blocked, buttons disable while one is in-flight, and the chat activity log shows a clear success or "already enabled" message instead of a silent toast. **Where:** Client portal → site editor → select a gallery section → Properties panel → Enable Lightbox / Enable Carousel **How to test:** - Open the properties panel for a gallery section - Click "Enable Lightbox" — confirm the button disables and sibling buttons are greyed out while processing - After success, check the chat activity for a confirmation message with an Undo option - Try clicking "Enable Lightbox" twice quickly — only one request should fire - If lightbox is already enabled, confirm an "already enabled" message appears instead of a blank success toast **Watch for:** Duplicate enable requests firing; buttons staying active during processing; silent no-op on already-enabled galleries

Fixed

WhatsApp buttons now use your actual business phone number

Sites with WhatsApp contact buttons were generating with a hardcoded placeholder phone number instead of the business's real contact number. WhatsApp links now correctly pull from your site's contact information. **Where:** Any generated site with a WhatsApp contact button (typically in header, footer, or contact sections) **How to test:** - Generate a new site for a business with a phone number in the brief - Inspect any WhatsApp button — the `wa.me/` link should contain the actual business phone number, not a generic placeholder - Confirm clicking the WhatsApp button routes to the correct number **Watch for:** WhatsApp links still showing a generic or random number (e.g. `wa.me/9876543210`) instead of the business's contact details

Monday, April 6, 2026

Improved

Cleaner design picker: neutral styling, mobile layout, color swatches

The "New Design" modal (where you clone, browse, or describe a new variation) has been updated with a calmer white header, a responsive grid that stacks on mobile, and richer variation cards that show a one-line summary and color palette swatches. Choosing which design to clone now happens inside the Clone flow rather than at the top level, keeping the initial view simpler. **Where:** Client portal → site editor → "New Design" button (generate variation modal) **How to test:** - Open any site in the editor and click the button to generate a new variation - Confirm the modal header is white/neutral (no purple-pink gradient) - Click "Clone a Design" and verify a design picker expands with a "Clone current design" shortcut and color swatches - On a mobile device or narrow browser window, confirm the three action cards stack vertically **Watch for:** Variation cards with missing color swatches, the picker not expanding when "Clone a Design" is clicked, or the modal header still showing the old gradient

Fixed

Fixed blank or dark site thumbnails in the dashboard

Site preview thumbnails were showing up blank or completely dark in the dashboard due to animation libraries keeping content invisible during screenshots. Thumbnails now correctly display the rendered site design. **Where:** Client portal → Dashboard (site cards with preview thumbnails) **How to test:** - Open any client's site list in the dashboard - Verify site cards show an accurate visual preview of the site design - Trigger a screenshot refresh (or generate a new site) and confirm the thumbnail is not blank or dark **Watch for:** Thumbnails that appear fully black/dark, or site cards with no preview image where one is expected

Fixed

Fixed crash that prevented all site generation from starting

A variable name mismatch caused site generation to crash at the "preparing" stage for all users. Generation now proceeds normally. **Where:** Client portal → new site creation → generating your site **How to test:** - Start a new site generation with any business description - Confirm the generation progresses past the "preparing" stage without an error **Watch for:** A "preparing" spinner that never advances, or an error message at the very start of generation

Fixed

Fixed editor-role users being blocked from opening the site editor

Users with the editor role were silently blocked from switching into the site editor despite having permission. The permission check now correctly allows editors to open and use the editor. **Where:** Client portal → site dashboard → Edit Site button (for editor-role users) **How to test:** - Log in as a user with the editor role (not owner or admin) - Open a site and click the Edit Site button - Confirm the editor loads without being redirected or silently stopped **Watch for:** The Edit Site button appearing to do nothing, or the page not transitioning to the editor view for editor-role accounts

Fixed

Fixed element deletion corrupting the wrong file and reformatting code

Deleting an element from a site section (e.g., removing a list item from the hero) could silently edit the wrong file and reformat the entire component, causing broken previews. Both issues are fixed: the correct source file is now targeted, and formatting is preserved after deletion. **Where:** Client portal → site editor → click an element → delete option **How to test:** - Open a site with multiple sections (hero, services, etc.) in the editor - Click on an element inside a section component (e.g., a feature item) and delete it - Confirm the correct element is removed and the rest of the page is unchanged - Check that indentation and formatting in the file are not altered after deletion **Watch for:** Deleting an element from one section causing visible changes in a different section, or the preview failing to compile after a deletion

Fixed

Fixed image replacement and regeneration stale state issues

Several issues in the Image Manager were fixed: user-edited regeneration prompts were silently discarded on retry, replaced images showed a stale previous version after refresh, and URL-based image sources were not validated before use. **Where:** Client portal → site editor → Images panel → replace or regenerate an image **How to test:** - Open the Image Manager, edit the prompt for an image, and click regenerate — confirm the edited prompt is used (not the original default) - Replace an image and refresh the page — confirm the new image appears, not the old one - Attempt to enter an invalid URL (e.g., `javascript:alert(1)`) in the replace-by-URL field — confirm it is rejected **Watch for:** Regenerated images using the wrong prompt text, old images reappearing after refresh, or invalid URLs being accepted

New

New Image Manager: browse, replace, and regenerate all site images in one place

A centralized Image Manager now lets you view every image on your site grouped by type (hero, team, gallery, portfolio), edit alt text, replace individual images, and bulk-regenerate images using AI. Available from both the preview editor and the site editor toolbar. **Where:** Client portal → site editor → Images button in toolbar (or preview toolbar) **How to test:** - Open any site in the editor and click the Images button in the toolbar - Verify images are grouped by collection type (hero, team, gallery, etc.) - Click an image to replace it with an uploaded file or a URL - Try editing the alt text on an image and confirm it saves - Use the bulk regenerate option to AI-generate new images for the site **Watch for:** Images not loading in the panel, alt text changes not persisting, or the replace modal not uploading correctly

Fixed

Voice mode no longer hangs indefinitely on slow connections

Starting a voice session on a slow or unstable connection would hang with no feedback. Voice mode now shows progressive status messages ("Connecting…", "this may take a moment", "check your internet") and automatically times out after 20 seconds with a clear error. **Where:** Client portal → blueprint wizard → voice mode button **How to test:** - Open the blueprint wizard and start a voice session - On a normal connection, confirm it connects promptly showing "Connecting…" - Simulate a slow connection (browser DevTools → throttle to slow 3G) and confirm the progressive messages appear and a timeout error is shown after ~20 seconds **Watch for:** The voice mode spinner running forever with no message, or no timeout error ever appearing

Sunday, April 5, 2026

Fixed

Fixed crashes in more animation-heavy sites after design generation

The previous fix for animation-related crashes only covered one specific reference name. Sites adapted from templates could use any number of animation references (for hero sections, grids, scroll effects, etc.) — and any undeclared one would still cause the site to crash. The auto-fix system now scans for all undeclared animation references and injects the missing declarations, preventing crashes across a wider range of template-adapted designs. **Where:** Client portal → site preview and published site — any site using sections with scroll or animation effects **How to test:** - Generate or adapt a site using a template with multiple animated sections (e.g., a hero with parallax plus a feature grid with fade-in) - Preview the site and confirm no "is not defined" errors in the browser console - Check that all animated sections render and animate correctly on scroll **Watch for:** Browser console errors like "sectionRef is not defined", "heroRef is not defined", or any other ref-name crash — or sections that fail to render entirely

Fixed

Fixed crashes in sites using scroll animations and GSAP effects

Sites that used scroll-triggered animations (such as GSAP effects) were sometimes crashing with a "variable is not defined" error after a design was generated or a template was adapted. This happened when animation-related references were shared across sections in the original design but not properly carried into each extracted block. Both the code extraction step and the auto-fix safety net now correctly inject these declarations into every component that needs them. **Where:** Client portal → site preview and published site — any site using scroll or animation effects **How to test:** - Generate or adapt a site that uses a template with GSAP scroll animations (e.g., a hero section with parallax or fade-in effects) - Preview the site and confirm no "is not defined" errors appear in the browser console - Scroll through the page to verify animations trigger correctly **Watch for:** Browser console errors like "containerRef is not defined", "sectionRef is not defined", or similar — or sections that fail to render due to a JavaScript crash

Fixed

Fixed V2 design variation not being visually distinct from V1

When generating two design variations, V2 was not applying its distinct style guidance on the most common generation paths — meaning both designs could look nearly identical. V2 now correctly uses its alternative style system on all paths, producing more visually diverse second variations as intended. **Where:** Client portal → site generation → design selection step (the two side-by-side previews) **How to test:** - Start a new site generation with any business description - Compare the two generated design variations — they should look noticeably different from each other (different color palette, layout density, or visual style) - Regenerate a few times to confirm V2 consistently produces a distinct look **Watch for:** Both variations looking nearly identical in layout and color scheme — this was the symptom of the bug

Saturday, April 4, 2026

Fixed

Template adaptation no longer loses site content when switching designs

When adapting your existing site content to a new template design, content sections that didn't have a direct mapping (such as business hours, menus, or feature lists) were previously being silently dropped. They are now preserved and carried over to the new design automatically. **Where:** Client portal → Pages tab → switching between design variations, or applying a template to an existing site **How to test:** - On a site with content sections like business hours or a menu, switch to a different design variation - Verify all content sections appear in the new design — nothing should be missing - Check that field name differences (e.g., "title" vs "headline") are resolved correctly and the right text appears in each section **Watch for:** Content sections disappearing after a design switch; field values showing in the wrong places (e.g., tagline text appearing where the title should be)

Friday, April 3, 2026

Fixed

Anchor links now scroll correctly in preview and work on published sites

"Link to Section" buttons and anchor links now behave correctly in both the preview editor and on published sites — clicking them scrolls smoothly to the target section instead of navigating away or doing nothing. **Where:** Site editor → select any button or link → Link to Section (in the link panel) **How to test:** - Open a site in the client editor with multiple sections - Select a button or navigation link and use "Link to Section" to link it to a section anchor - In the preview, click the button — it should scroll to the linked section - Publish the site and click the same button on the live site — it should scroll correctly there too **Watch for:** Clicking an anchor link navigating to a blank page instead of scrolling, or anchor links having no effect in the preview

New

Bulk image upload for image-heavy sites

Users can now upload many images at once (6+) across all chat surfaces. Instead of hitting a "maximum 5 images" wall, a smart dialog appears that uploads all images in parallel and tells the AI exactly how to use them. **Where:** Blueprint chat, Site assistant bar, Design panel chat input **How to test:** - Open a blueprint chat for any site - Select or drag-drop 7+ images at once - The Bulk Upload dialog should appear (not an alert) - Pick a purpose (Gallery, Properties, Portfolio, etc.) - Click "Upload" and watch parallel progress - After completion, the AI receives a metadata summary describing all uploaded images - Generate the site — it should create a filterable gallery grid using all uploaded images - Try the same in the assistant bar (site editor) and design panel **Watch for:** - Dialog not appearing when selecting >6 images (threshold not triggering) - Upload failures silently swallowing images (check progress counts) - AI still receiving all images as vision inputs instead of the metadata summary (check server logs for "Capped vision URLs" message) - Blueprint.assets.images not being updated after bulk upload

New

Content plan review step now available before generating from chat and voice

Before generating a site from the chat or voice builder, you can now review and edit your content plan — see what sections will be included, check for any information gaps flagged by the AI, and confirm before generation starts. **Where:** Site builder → chat or voice input → click Generate → Plan review overlay **How to test:** - Start a new site using the chat builder (type a business description) - Click the "Generate" button - Verify that a plan checkpoint overlay appears showing sections and any signal gaps - Edit the plan if needed, then click "Confirm & Generate" - Confirm the site generates using the reviewed plan **Watch for:** The overlay not appearing and generation starting immediately; signal gaps showing incorrectly as empty when the user has provided enough information

New

Edit interactive component settings directly from the Properties Panel

You can now configure interactive components (accordions, carousels, tabs, pricing toggles, before/after sliders, and count-up animations) directly from the Properties Panel without writing code — click on any section using one of these components and a floating settings panel appears with all the relevant controls. **Where:** Site editor → click a section with an interactive component → Properties Panel → quick actions **How to test:** - Open a site with an accordion, carousel, or tabs section - Click the section to select it - Open the Properties Panel and look for the component settings action - Change a setting (e.g., enable autoplay on a carousel, set a default open tab) - Verify the change takes effect in the preview immediately **Watch for:** Settings panel not appearing for a section that uses one of the supported components; changes not persisting after the panel closes

New

Enable image lightbox on gallery sections with one click

Image grid sections in the site editor now show an "Enable Lightbox" button — click it to add fullscreen click-to-enlarge viewing with left/right navigation, keyboard support, and a close button to any gallery that has two or more images in a grid layout. **Where:** Site editor → click any image grid section → Properties Panel → Enable Lightbox **How to test:** - Open a site that has a section with a grid of 2+ images - Click on the image grid section to select it - Look for the "Enable Lightbox" option in the popup/properties panel - Click it and verify the section now supports clicking images to view them fullscreen - Confirm left/right arrow navigation and keyboard Escape to close work correctly **Watch for:** Button not appearing for image grid sections; clicking "Enable Lightbox" producing a broken layout or error; sections that already use a gallery component incorrectly showing the upgrade prompt

Fixed

More accurate industry detection and faster page generation during finalization

Industry detection during site finalization is now AI-powered and far more accurate — a web design agency will no longer be detected as a restaurant — and page generation is faster and cheaper, with pages that better match your site's design theme and content. **Where:** Client portal → Finalize tab → industry detection step; also when adding new pages **How to test:** - Create a site for a non-obvious business type (e.g., a digital marketing agency) - Proceed to the finalization step and check the detected industry - Confirm it matches correctly rather than defaulting to a superficially similar category - Add a new page (e.g., About or Services) and verify it matches the site's visual theme and includes actual content from the blueprint **Watch for:** Industry still being detected incorrectly for niche business types; newly generated pages appearing blank, with placeholder text, or styled differently from the rest of the site

New

Voice assistant now suggests options when it needs more information

When using voice mode to build a site, the assistant can now generate and read out relevant suggestions (e.g., headline ideas, audience types, unique selling points) whenever a key piece of information is missing — instead of just asking an open-ended question. **Where:** Site builder → Voice mode → any field-filling conversation step **How to test:** - Start a new site using voice mode - When asked about your target audience or unique selling points, wait for the assistant to offer suggestions - Select one of the read-out options or provide your own answer - Confirm the blueprint field is populated with the chosen value **Watch for:** The assistant asking vague open-ended questions without offering concrete options; suggestions being irrelevant to the business type or industry

Thursday, April 2, 2026

Improved

AI chooses images more intelligently during site generation

During site generation, the AI now selects images section-by-section as it designs each part of the site — deciding in context whether a section needs a custom AI-generated image or a stock photo. Previously, images were pre-selected before the AI had designed the layout, leading to mismatches. **Where:** Site generation → any newly generated site **How to test:** - Generate a new site from the Blueprint Wizard - Review the hero, services, and gallery sections - Images should feel contextually matched to the section content and design **Watch for:** Generic or mismatched images that don't relate to the section content — that would suggest the new selection logic isn't running.

Fixed

AI image generator panel displays correctly in light mode

The AI image generator panel now renders with correct light-mode colors. Previously, text areas, card containers, and color tints in the panel appeared in dark-mode colors even when the editor was set to light mode. **Where:** Site editor → click an image → "Generate with AI" or bulk image panel → light mode **How to test:** - Switch the site editor to light mode - Open the AI image generator panel by clicking an image or using the bulk image option - All input fields, containers, and labels should display with light backgrounds and dark text **Watch for:** Dark backgrounds appearing on text areas or card containers inside the panel when the editor is in light mode

Fixed

AI-created components now use the site's color scheme

When the AI adds new sections or components, it now reads the site's existing color variables and applies them — instead of defaulting to generic white backgrounds and black text. **Where:** Site editor → chat → any request to add a new section or component **How to test:** - Open a site that has a custom color theme - Ask the AI to add a new section (e.g., "Add a testimonials section") - The new section should use the site's colors, not plain white/black defaults **Watch for:** Newly added sections appearing with plain white backgrounds or mismatched colors compared to the rest of the site