When generating a site with a specific design style and custom colors (e.g., "white background, orange accents"), the AI now adapts the style's visual techniques — glow effects, textures, layering, animations — to the chosen palette instead of discarding them. Previously, specifying colors could cause the generated design to look flat and generic despite the selected style. **Where:** Blueprint Wizard → Style selection → Creative direction / color customization → Generate **How to test:** - Choose a bold or distinctive style (e.g., a tech-focused or dynamic style) - Add a creative direction specifying different colors (e.g., "white background with orange accents") - Generate the site and compare with a generation using the same style but no color override - Both should share visual depth, effects, and design personality — only the colors should differ **Watch for:** The generated site looking flat or generic despite a bold style selection; the style's defining visual effects (shadows, textures, animations) being absent when custom colors are specified
Changing the layout, resizing an element, or swapping an icon in the site editor now reliably targets the element you clicked — even when multiple similar elements exist on the page. Previously these edits could apply to the wrong element. **Where:** Site editor → click any element → Layout / Resize / Icon options in the toolbar **How to test:** - Open a site in the editor and click on a specific icon in a list of icons (e.g., a feature section with multiple icons) - Use the icon swap option and verify only the clicked icon changes - Resize one card in a grid — only that card should change dimensions - Change the layout of a specific section — the correct section should update **Watch for:** Edits applying to the wrong element, or no element changing at all when a layout/resize/icon action is confirmed
Dragging sections to reorder them in the site editor now saves reliably without interfering with image replacements, widget edits, or other changes made around the same time. **Where:** Site editor → drag section handles to reorder sections **How to test:** - Open a site with multiple sections in the client editor - Drag a section to a new position and release - Refresh the page — the new order should persist - Make an image replacement, then reorder a section — both changes should save independently **Watch for:** Section order reverting to the previous order after a page refresh, or image/widget changes being lost when sections are reordered nearby
Clone generation previously missed a few sections on complex sites — the AI would plan them but skip writing their code. Generation now uses a higher reasoning budget to ensure every planned section is fully built out. **Where:** Blueprint Wizard → clone an existing site URL **How to test:** - Clone a site with many distinct sections (10+) - Compare the generated output against the original site - All sections visible in the original should appear in the clone **Watch for:** Missing sections in the generated clone that were clearly visible in the source site — particularly footer, sidebar, or complex multi-column layouts.
Site generation now runs more work in parallel, cutting the time before your first design appears. Creative direction processing for the primary design no longer waits on other tasks to complete before starting, and style data is fetched in a single batch instead of sequentially. **Where:** Blueprint Wizard → Generate → waiting for the first design variation to appear **How to test:** - Complete the Blueprint Wizard and click Generate - Note the time until the first design variation loads - Generation should feel noticeably faster than before, especially for sites with a specific style variant selected **Watch for:** The generation progress bar stalling for an unusually long time before the first design appears
Fixed a crash that prevented users from being redirected to the site editor after generation completed through the blueprint flow. **Where:** Blueprint Wizard → Generate → automatic redirect to site editor **How to test:** - Start a new site via the Blueprint Wizard - Complete the brief and click Generate - After generation finishes, you should be automatically redirected to the site editor **Watch for:** Generation appearing to complete (spinner stops) but nothing happening — no redirect to the editor
Undoing changes in the site editor now works reliably on older sites that were created before variation tracking was introduced. Additionally, viewing a past version of your site in the version history no longer shows sections that were added after that snapshot was taken. **Where:** Site editor → Undo button / Version history panel **How to test:** - Open an older site (one that has been edited many times) and make a change - Click Undo — the change should be reverted correctly - Open the version history, select a past version, and verify it shows the site as it looked at that point — not with sections added later **Watch for:** Undo having no effect on certain sites, or version history previews showing sections that shouldn't exist at that point in time
The voice recording waveform now animates at a smooth 60fps, and voice session recordings are no longer orphaned when switching modes mid-conversation. **Where:** Blueprint Wizard → Voice mode (microphone button) **How to test:** - Open the Blueprint Wizard and activate voice mode - Speak into the microphone and observe the waveform animation — it should move fluidly without stuttering - Switch between voice and text mode and verify the conversation is saved correctly **Watch for:** Jerky or frozen waveform animation, or voice sessions that disappear after switching modes
Two additional classes of code errors are now fixed automatically without needing manual intervention: a common CSS-variable runtime error and malformed string constants left by the AI after edits. **Where:** Site editor — any time the AI makes a refinement and the result has a syntax or runtime error **How to test:** - Make a refinement request that changes styling (e.g., "change the color scheme") - If the output would have produced a CSS variable error, verify the site still renders correctly - Make a complex text edit and verify the page loads even if the AI produced a slightly malformed response **Watch for:** Sites showing a blank screen or error overlay after refinements that previously would have required a manual fix or retry
Pre-built email automations that business owners toggle on — no workflow builder needed. Get Google reviews, reduce no-shows, and follow up with leads automatically. **Where:** Client Portal → Leads → Automation → Recipes **How to test:** - Open any site in the client portal, navigate to Leads → Automation tab - You'll see the "Recipes" sub-tab (default) with four recipe cards - Click the gear icon on "Google Review Requests" to configure it - Enter a Google review URL, customize the message template, set your timezone and send window - Toggle the recipe on - Go to the Activity/Bookings view and mark a booking as "completed" - Check the Message Log (button in top-right of Recipes view) — an email should be scheduled - On completed bookings, you'll also see a "Request Review" button for manual triggers - Try the channel selector in recipe config: Email (default), SMS (requires Twilio), or Both - Click "Connect Twilio" banner to set up SMS via BYOK (bring your own Twilio credentials) - Test the SMS setup panel: enter Twilio Account SID, Auth Token, From Number, then send a test SMS **Recipes available:** - Google Review Requests — sends after booking completed, with tracked link and auto follow-up - Booking Reminders — 24h and 1h before appointments (Phase 2) - Missed Lead Auto-Reply — instant acknowledgment on form submissions (Phase 2) - Follow-up Drip — multi-step email sequence for unresponsive leads (Phase 3) **Watch for:** Timezone selector should match the business location (affects when messages are sent). Weekend sends are skipped automatically. The AI assistant now knows about recipes — try asking "what automations are enabled?" to test the new tool.
Deleting a client no longer fails with a permission or constraint error — associated sites are now safely archived instead of hard-deleted, which resolves both permission issues and database conflicts. **Where:** Dashboard → Clients → select a client → Delete client **How to test:** - Create a client that has one or more sites - Delete the client from the client management page - Confirm the deletion succeeds without an error message - Verify the client and its sites no longer appear in the active list **Watch for:** "Failed to delete associated sites" error appearing after confirming deletion; client remaining in the list after a delete attempt
Sites that used helper functions like icon renderers or price formatters in their header or footer no longer crash with "renderIcon is not defined" errors after content extraction. **Where:** Site preview and published site — header/footer components **How to test:** - Generate a site that uses icons or formatted values in the navigation or footer - Open the site preview — header and footer should render without errors - Publish the site and verify the live version shows the header/footer correctly **Watch for:** "is not defined" errors in the browser console for header or footer components; navigation or footer appearing blank
Contractors in landscaping, cleaning, roofing, plumbing, HVAC, and electrical can now get a fully built website from just their business name, services, and service area — no form-filling required. **Where:** POST /api/curated-sites (onboarding API endpoint for home services verticals) **How to test:** - Call POST /api/curated-sites with a JSON body: `{ "vertical": "plumbing", "businessName": "Joe's Plumbing", "services": ["emergency repairs", "water heater install"], "serviceArea": "Austin, TX" }` - The API creates a site and triggers generation automatically - Check the generated site — it should include industry-specific trust signals, taglines, and service lists pre-populated - Try other verticals: landscaping, cleaning, roofing, hvac, electrical - GET /api/curated-sites returns available vertical configs for building onboarding UI **Watch for:** Each vertical has 70+ predefined service options — the generated site content should match the selected services. Color palettes are industry-matched (e.g., green for landscaping, blue for HVAC).
Site images are now generated with a model chosen based on what the image shows. Photos of people, faces, and text-heavy images use a model optimized for realistic portraits, while landscape and scene images use a model tuned for environments and objects. **Where:** Any site with generated images — visible in the site preview and published site **How to test:** - Generate a site for a business that involves people (e.g., a consulting firm or salon) - Check that hero and team images look realistic and faces are well-rendered - Generate a site for a landscaping or outdoor business and verify scene images look natural **Watch for:** Blurry or distorted faces in people-centric images; generic or mismatched images not fitting the business type
The voice assistant now explicitly walks through each wizard step in order, confirms your answers before moving on, and references the Brief panel so you can follow along visually. **Where:** Site creation wizard → voice mode (microphone button) **How to test:** - Start voice mode in the wizard - Answer the AI's questions about your business - After each section (Business, Goals, Plan), the AI should say "Does this look right?" before advancing - Confirm verbally to move to the next step - Watch the Brief panel update as you speak **Watch for:** AI skipping confirmation and advancing steps automatically; AI asking for information already visible in the Brief panel
When you return to voice mode mid-session, the AI now checks what's already been filled in and picks up where you left off — no more being asked for your business name when it's already in the brief. **Where:** Site creation wizard → voice mode (microphone button) **How to test:** - Fill in your business name and industry in the wizard manually - Start voice mode - The AI should greet you by business name and focus on fields still missing - Alternatively, fill some fields, disconnect, reconnect — the AI should not re-ask filled fields **Watch for:** AI greeting with a generic intro despite fields already being filled; AI re-asking for information already in the brief
Voice mode is now available exclusively on Growth, Partner, and Enterprise plans. Free plan users see an upgrade prompt when attempting to start a voice session. **Where:** Site creation wizard → voice mode button **How to test:** - Log in with a Free plan account - Open the site creation wizard and click the microphone button - You should see an upgrade prompt, not be able to start a session - Log in with a Growth or higher plan account — voice mode should work normally **Watch for:** Free users being able to start voice sessions; Growth plan users being incorrectly blocked
Voice sessions no longer drop immediately after connecting — a WebSocket compatibility issue has been fixed, and the AI now proactively greets you at the start of each session without waiting for you to speak first. **Where:** Site creation wizard → voice mode (microphone icon) **How to test:** - Open the site creation wizard and start a voice session - The AI should greet you within a few seconds without you needing to say anything first - Continue the conversation — the session should remain stable throughout - When asked about visual style, the AI will ask about your color and mood preferences rather than suggesting specific design variants **Watch for:** Voice session dropping immediately after the connection sound; AI staying silent and waiting indefinitely for you to speak first; WebSocket close errors in the browser console
Several voice mode issues fixed: wizard content is no longer hidden behind the voice overlay, the generation progress screen shows correctly after voice-triggered generation, color fields display properly in the brief panel, and the AI no longer skips ahead without asking for confirmation. **Where:** Site creation wizard → voice mode **How to test:** - Start voice mode and scroll down in the wizard — content should not be cut off behind the overlay - Complete a voice session through to generation — a loading/progress screen should appear - Mention a brand color during voice session — the Brief panel should show a color swatch, not "#000000" - The AI should ask "Does this look right?" before moving to the next step every time **Watch for:** Form fields hidden behind voice overlay at the bottom; generation appearing to do nothing after the AI says it's generating; AI advancing steps without verbal confirmation from you
Voice sessions now have a 3-minute limit per site. A warning appears 30 seconds before the session ends, and any progress made is saved automatically when the session closes. **Where:** Site creation wizard → voice mode overlay → timer/warning indicator **How to test:** - Start a voice session in the wizard - After approximately 2 minutes 30 seconds, a warning should appear - At 3 minutes, the session should end automatically - Confirm that the brief fields filled during the session are retained after disconnection **Watch for:** Session ending without saving progress; warning not appearing before timeout; session continuing past the 3-minute limit
You can now build your website brief entirely by voice — speak naturally to describe your business, and the AI fills in the forms, navigates wizard steps, and triggers site generation hands-free. **Where:** Site creation wizard → microphone button in the wizard header **How to test:** - Start a new site from the dashboard - Click the microphone button in the top-right of the wizard - Speak your business name, what you do, and what kind of site you want - Watch the Brief panel update in real time as the AI fills in fields - Say "looks good" when prompted to confirm each step - The AI will propose sections and then trigger generation on your approval **Watch for:** Voice overlay covering form content (scroll should still work); AI re-asking for information already provided; generation not starting after verbal confirmation
Speak naturally to build your website brief. The AI listens, fills in your business details, navigates wizard steps, and launches generation — all through voice, with no typing required. **Where:** Admin → Blueprint Wizard → microphone button in the top-right of the wizard header **How to test:** - Open the Blueprint Wizard (Admin → New Site) - Click the microphone button to start a voice session — the voice overlay appears docked at the bottom - Say something like "I run a plumbing business in Austin, we handle emergency repairs and water heater installs" - Watch the wizard fields populate in real time as you speak - Say "looks good, let's build it" — the AI will confirm before advancing to the next step - You can also say "go back" or "skip this step" to navigate - Upload a reference image or paste a URL by voice: "use this site as inspiration: example.com" - The AI will not advance steps without explicit confirmation from you — it asks before moving forward **Watch for:** Voice sessions require a Growth plan or above — free accounts will see an upgrade prompt. If the waveform shows but audio isn't processing, check browser microphone permissions. The AI should never skip steps without you saying something like "yes" or "looks good."
Clicking a design variation tab in the site editor sometimes crashed with a loading error or left the editor in a broken state. All three root causes have been fixed. **Where:** Client portal → site editor → design variation tabs (top of editor) **How to test:** - Open a site in the client editor that has multiple design variations - Click through each variation tab — the preview should update without errors - Click the same tab twice — should not trigger a redundant reload or error - Switch from one variation to another while files are loading — the editor should stay stable **Watch for:** The variation tab should never show a "useSiteVariations error" toast. Switching back to an already-selected design should succeed silently. The preview should not flicker or go blank during tab switches.
Import prospect lists via CSV, assess their websites with AI visual analysis, find their emails automatically, and build personalized sites — all from one workspace. **Where:** Dashboard > Agency > Prospects **How to test:** - Click "Import CSV" and upload a spreadsheet with columns: Business Name, Email, Phone, Website, Address, City, State, Industry - Columns auto-map from common header names - After import, prospects appear in a table with screenshot thumbnails, scores, and contact info - Click "Assess" on any prospect with a website to run AI visual analysis (takes ~10 seconds) - View the assessment: design score (1-10), verdict (needs replacement/refresh/acceptable/good), specific issues, and customer-facing improvement opportunities you can copy into outreach emails - For prospects without email, click "Find" next to the "No email" badge to scrape their website for contact emails - Click "Build Site" on any prospect to jump to the template gallery with their details pre-filled in the Spin Up wizard - Use filters: All, Has Website, No Website, Assessed **Watch for:** Assessment timing out (large/slow websites may take 30+ seconds), "Find" email returning false positives (check the email looks legit), screenshot thumbnails not loading (R2 upload may fail for some sites)
Agencies can now save any site as a reusable template, then spin up personalized copies for new prospects in seconds. **Where:** Dashboard > Agency > Templates (save from any site editor via Settings > General > "Save as Agency Template") **How to test:** - Open any site editor, go to Settings > General - Click "Save as Agency Template" — name it and save - Go to Dashboard > Agency > Templates to see the saved template - Click "Use Template" to open the Spin Up wizard - Enter the prospect's business name, phone, email, address - Click "Generate Content" to AI-fill all content (services, testimonials, FAQs, etc.) - Expand "Advanced Content" to review/edit AI-generated text, upload images - Click "Create Site" — a personalized site is created instantly **Watch for:** Variable field detection missing important fields (check the "required fields" count on template cards), AI Auto-Fill generating content for the wrong industry (the Industry field should override the template's default)
E-commerce sites now get guided product management education at every stage — from the moment a design is generated through to going live. **Where:** Appears automatically when a site has products or e-commerce content: - **Post-generation coach** (immediately after site creation) — surfaces "Replace dummy products", "Enable shopping cart", and "Connect payments" as actionable health issues - **Getting Started checklist** (editor dashboard) — adds "Update your products" and "Set up payments" steps for e-commerce sites - **Overview tab** (Mission Control) — purple "Set Up Your Store" card with 6-step walkthrough - **Opportunity cards & readiness checks** — "Enable shopping cart" and "Connect a payment provider" in the recommended actions - **AI assistant** — knows the full store setup flow and can guide users through each step **How to test:** - Generate a site for an e-commerce business (e.g., "online clothing store") - After generation, check the post-extraction coach for product-related issues - In the editor dashboard, verify the Getting Started checklist includes "Update your products" and "Set up payments" - Switch to Overview and verify the purple "Set Up Your Store" guide appears - Click each action button and confirm it navigates to the correct section - Check the readiness panel for "Shopping cart enabled" and "Payment provider connected" items - Ask the AI assistant about products or payments and verify it provides guidance **Watch for:** Guide not appearing on non-product sites; product health checks showing for non-e-commerce industries; action buttons navigating to wrong sections
Ready-to-use ad template library so agencies can promote their website design services across 6 ad formats and 7 selling angles. **Where:** Dashboard header > "Ad Library" button (desktop), or mobile menu > Tools section **How to test:** - Navigate to `/dashboard/ad-library` - Fill in agency name, URL, and tagline in the customization bar — all 18 templates update live - Filter by format (Facebook, Instagram, Google Display, LinkedIn, Video Script, Email) - Filter by angle (Portfolio Showcase, Speed & Pricing, Features, Social Proof, etc.) - Click "Preview" on any template to see the full ad copy with your customizations - Click "Copy" to copy the complete formatted ad text to clipboard - Search by keyword to find specific templates **Watch for:** Placeholder values ({{agency}}, {{url}}) not being replaced in preview or copy output
When applying a template from the style gallery to create a new design variation, the Design Assistant now shows which template was applied instead of just the generic "fresh chat" message. **Where:** Client editor > Browse Inspirations > select a style > Design Assistant panel **How to test:** - Open any site, click "Browse Inspirations" or the style gallery - Select a template style and click "Use This Style" - Check that the Design Assistant shows: "Design DX was created from the '[Template Name]' template" **Watch for:** Message not appearing (rationale field missing), or message incorrectly showing for AI-generated variations (it should only appear for style gallery picks)
Cleaner theme/style browsing with stale preview clearing, cross-section mutual exclusivity, and search. **Where:** Client editor > Styles panel > Themes tab **How to test:** - Select a creative preset, then switch to Fonts tab — the preview CSS should clear (no stale colors) - Switch back to Themes — no stale selection persists - Select a creative preset, then select a color theme — the creative preset selection clears automatically - Select a color theme, then an alternating section pattern — the color theme clears - Type in the new search bar to filter themes and presets by name - Verify the selection banner shows when a theme is active and the "Clear" button works - On dark-mode sites, switch between dark presets — background colors should visibly change **Watch for:** Stale preview CSS persisting after tab switch, multiple sections appearing "selected" simultaneously
Fixed two issues where requesting color changes via the Design Assistant appeared to succeed but didn't visually update the site. **Hybrid CSS-variable sites:** Sites using both CSS variables and Tailwind arbitrary values (`bg-[#HEX]`) only had the Tailwind classes updated, leaving CSS-variable-driven colors unchanged. Now both are updated in one pass. **Variation color detection (D2+):** When editing Design 2 or later, the system was detecting the "old" colors from Design 1's code, so replacements silently failed because D2 uses different hex values. The system now re-detects colors from the variation's own code. **Where:** Client editor > Design Assistant > request any color change on D2+ or a hybrid-mode site **How to test:** - Open a site with multiple variations, switch to D2 - Ask the Design Assistant to change colors (e.g., "make the primary color blue") - Verify the preview actually updates with new colors - Try the same on a site that uses CSS variables (check for `--color-primary` in the code) **Watch for:** Colors still not changing — check if the site uses a completely different theme approach not covered by these fixes
End users accessing the client portal can now sign in with their Google account in addition to email/password. **Where:** Client portal login page (`/portal/[siteId]`) **How to test:** - Navigate to any portal login URL - Verify a "Sign in with Google" button appears alongside the email/password form - Click it and complete the Google OAuth flow - Verify you land in the portal with correct permissions - Verify restricted-scope users still only see their assigned sites **Watch for:** OAuth redirect errors, users created via Google not being linked to the correct organization
New users see a guided onboarding checklist in the client portal to help them set up their site. **Where:** Client portal > Home view (appears for new sites that haven't completed setup steps) **How to test:** - Create a new site and open the client portal - Verify the onboarding checklist appears with steps like "Edit your content", "Add your logo", "Connect a domain", "Publish your site" - Complete each step and verify the checklist updates - After all steps are done, verify the checklist dismisses or collapses **Watch for:** Checklist showing for fully-set-up sites, steps not marking as complete after the action is taken
Organization admins can now restrict team members to specific sites instead of giving them access to everything. **Where:** Dashboard > Organization > Members > click a member > "Manage Site Access" **How to test:** - Go to organization settings and find a team member - Set their access scope to "Restricted" - Grant them access to specific sites only - Log in as that member and verify they only see their assigned sites on the dashboard - Verify they cannot access other sites via direct URL - Grant access to additional sites and verify they appear immediately **Watch for:** Restricted members seeing all sites (access scope not applied), or admins accidentally restricting themselves
The variation picker has been completely redesigned with a unified gallery view, pick-to-clone flow, and integrated brainstorm chat for generating new variations. **Where:** Client editor > variation selector area (top of the editor) **How to test:** - Open any site with multiple variations in the client editor - Verify the new gallery view shows all variations with visual previews - Click a variation to select it for editing - Use the "pick-to-clone" action to duplicate a variation as a starting point - Try the brainstorm chat to request a new AI-generated variation - Verify switching between variations loads the correct code and preview **Watch for:** Clone modal showing chat prompt instead of site name, preview not updating after variation switch
The site creation wizard now analyzes your business description and intelligently pre-selects goals, audience scope, and suggests industry-specific differentiators — so you spend less time clicking and more time building. **Where:** Site creation wizard → Goals, Audience, and USPs cards **How to test:** - Create a new site with a clear business description (e.g., "Joe's Plumbing - emergency plumbing services in Dallas, TX") - On the Goals card, verify "Get leads & inquiries" is pre-selected with a purple "We picked this based on your business" banner - On the USPs card, verify the suggestion chips are industry-specific (e.g., "Licensed & Insured", "Same-Day Service") instead of generic - On the Audience card, verify "My local area" is pre-selected for local businesses - Change any pre-selected option and verify the prediction banner disappears - Try the "Not sure? Let's figure it out together" link on any card to open the brainstorm chat - In brainstorm mode, describe your business needs and verify suggestions get auto-applied to the wizard fields **Watch for:** Predictions not appearing (API timeout), brainstorm suggestions not populating wizard fields, prediction banners persisting after user changes
Three improvements to the post-generation experience and AI chat. **"How does this look?" feedback prompt** — After a design is generated, the AI assistant now asks for your reaction with three quick actions: "Love it! Polish the details", "Needs some changes", or "Try a different style". Replaces the generic welcome message in preview phase. **Contextual suggestion chips restored** — After each chat response, the assistant shows 2-3 contextual action chips based on your site's state (e.g., "Publish site", "Generate SEO", "Add a contact form"). Previously removed, now re-enabled. **Variation generation progress card** — When generating a new design variation, the preview switches to a status card showing what's being created and a time estimate (~2-3 min). You can click any existing design tab to browse while waiting, then click the "Generating..." tab to return to the status card. **Where:** Client portal → AI Assistant panel (right sidebar) and Preview area toolbar **How to test:** - Create a new site → after generation, check the AI assistant shows "How does this look?" with 3 buttons - Send a message to the assistant → verify suggestion chips appear below the response - Trigger a new variation (via "Try a different style" or approval modal) → verify the preview shows a progress card with your request summary - While generating, click an existing design tab → verify you can browse freely - Click the "Generating..." tab → verify the progress card returns **Watch for:** Progress card showing without any description text (should always have context about what's being generated)
Complete redesign of the website creation flow — from a single chat conversation to a focused guided wizard that builds your site faster with better results. **Where:** Client portal → Create New Site **What changed:** **Step 1 — Tell us about your business:** - Upload PDFs, brochures, menus, or photos and we automatically extract your services, pricing, testimonials, team, and contact info - Import content from your existing website URL - Everything pre-fills downstream — no retyping **Step 2 — Quick questions (one at a time, like Typeform):** - Goals: What should your site do? (leads, bookings, sales, showcase) - Differentiators: What makes you stand out? AI also extracts USPs from your description - Audience: Local, national, or global + city for local businesses - Style: Swipe through real design examples — like/dislike to set your visual direction. Search by style category. Theme (light/dark) and brand color pickers. **Step 3 — Review your site plan:** - AI-generated sections with editable hero headline - Smart feature toggles based on your industry (dentist sees Booking, SaaS sees Help Center) - Chat input to modify the plan with natural language - Your first design starts building in the background while you review **Step 4 — Add your details while we build:** - Contact info, social profiles, business hours, photos - Everything saves to your site in real-time - Progress bar shows generation status - No wasted time — you're productive while the site builds **3 design variations:** - V1: Custom AI-generated design (starts during plan review) - V2: Alternative creative direction (starts after V1) - V3: Adapted from a matching gallery template (starts after V1 content is ready) **How to test:** 1. Go to any client → Create New Site 2. Enter a business name and description (or upload a PDF) 3. Go through the 4-step flow 4. Check that you get 3 variations with different visual approaches 5. Try the contact/social fields during the "while building" screen **Watch for:** - V3 template variation should appear within 30-60 seconds after V1 (polls automatically) - Style preferences from vibe swipe should influence the generated design - Contact info entered during building should appear in the site's footer/contact section
The site plan now shows industry-relevant interactive features as toggleable chips. **Where:** Client portal → Create New Site → Plan step (Step 3) **What changed:** - Feature toggles appear below the section list, powered by `getRecommendedFeatures(industry)` - Recommendations are industry-specific with priority levels (essential, recommended, optional) - Fuzzy industry matching: "dental-services" → "dental", "restaurant-italian" → "restaurant" - Toggling a feature adds/removes the corresponding section from the plan - Essential features highlighted in blue with "rec'd" badge **Examples:** - Dentist: Online Booking (essential), Help Center (recommended) - Restaurant: Booking Requests (essential), Shopping Cart (essential) - SaaS: Help Center (essential), Plan Comparison (essential) - Photography: Booking (essential), Quote Request (recommended) - Real Estate: Inquiry Form (essential), Saved Properties (essential) **How to test:** 1. Create a new site for different industries 2. Check that the Plan step shows relevant feature chips 3. Toggle features on/off and verify sections are added/removed 4. Check that the generated site includes the selected features **Watch for:** Industries with uncommon slugs (e.g., "holistic-wellness") may not show features if not in the mapping
A new Marketing tab inside the Growth workspace that gives business owners an AI-powered marketing command center — directories to submit to, communities to join, content ideas, and a content calendar, all tailored to their specific business. **Where:** Client portal → Growth → Marketing tab **How to test:** - Open any site in the client portal and go to Growth → Marketing - Complete the 5-step onboarding wizard (audience, goals, channels, competitors, strengths) - After onboarding, an AI scan runs automatically and populates all tabs - Check "Get Listed" — should show relevant directories sorted by priority - Check "Communities" — should show Facebook Groups, Slack, Discord, Reddit, forums - Check "Get Featured" — podcasts, guest blogging, press opportunities - Check "Ideas" — marketing ideas with action step checklists - Check "Calendar" — content calendar grouped by week with copy starters - Check "Partnerships" — complementary businesses and influencer suggestions - Try updating statuses (Start, Submit, Verify, Skip) and confirm they persist - Click "New Scan" to generate fresh results **Growth Pro tabs (Keywords, Reviews, Backlinks):** - These show a paywall if Growth Pro is not active - With Growth Pro + DataForSEO configured, they pull real search data **Watch for:** AI scan returning empty results, status updates not persisting, onboarding wizard losing state between steps
Spreadsheet-style bulk editor for page titles, descriptions, and keywords across all pages at once. **Where:** Client portal → SEO → Pages tab → click the table icon (top right, next to expand/collapse) **Features:** - **Table view** — see all pages' titles, descriptions, keyword counts, and OG image status in one view - **Inline editing** — edit any title or description directly in the table, saves on blur - **Character counters** — color-coded (green=good, amber=wrong length, gray=empty) with live counts - **Empty field highlighting** — red border on missing titles/descriptions - **AI Fill Empty Fields** — one button generates AI-optimized titles, descriptions, and keywords for all empty fields using the existing auto-fix API **How to test:** - Open any site with multiple pages → SEO → Pages tab - Click the table icon in the top-right toolbar to switch to bulk view - Edit a title directly in the table → tab to next field → verify it saves - If any fields are empty, click "AI Fill X Empty Fields" → verify AI generates content for all empty fields - Switch back to card view via the list icon → verify changes persisted **Watch for:** Bulk AI fill failing if site has no blueprint/business info (needed for AI context), character counter not updating as you type
SEO reports upgraded from basic scorecard to a comprehensive professional audit with 7 new sections. **Where:** Client portal → SEO → Report tab; also visible on public share link **New sections:** - **Executive Summary** — AI-generated professional overview of site SEO health - **Technical SEO Status** — HTTPS, domain, robots.txt, sitemap, schema, mobile status - **AI & LLM Readiness** — llms.txt, AI crawler access, structured data, FAQ content - **Structured Data Coverage** — Active schema types with field counts - **Per-Page SEO Analysis** — Table showing title/description/keywords/OG image per page - **Priority Action Plan** — AI-generated phased action plan (Immediate, Short-term, Ongoing) - **Issues & Recommendations** — Upgraded with descriptions and more detail **How to test:** - Open any site → SEO → Report tab → verify new sections appear in the preview - Click "Share Report" → scroll to Report Content → toggle new sections on/off → Save → verify report updates - Click "Generate" next to "AI Summary & Action Plan" → verify executive summary and action plan appear - Open the public report URL → verify all new sections render with real data - Click "Download PDF" → verify all sections print cleanly **Watch for:** AI summary generation failing (check console for errors), empty sections when site has no schema/llms.txt configured (should just not show), toggle state not persisting after save
Replace multiple stock images at once with AI-generated alternatives that match your business. Preview each before/after and approve individually. **Where:** Editor toolbar → More menu → AI Images, or ask the AI assistant "regenerate all images" **How to test:** - Open any site in the editor - Click the More menu (three dots) → AI Images - Select images from the grid (or Select All) - Click "Regenerate" and wait for AI generation - Review before/after comparisons — toggle approval for each - Click "Apply" to replace approved images in your site - Alternatively, type "regenerate all images" in the chat assistant **Watch for:** Images that don't match the business context, broken thumbnails in the grid, changes not reflected after apply (try refreshing)
Agencies can now add custom content sections to SEO reports and save commonly used report settings as organization-wide defaults. **Where:** Client portal → SEO → Share Report modal **How to test:** - Open any site's SEO tab, click "Share Report" - Enable the report, scroll down to "Custom Sections" - Click "Add Section" to create a custom section with title, content, and position selector - Add multiple sections, choose different positions (after intro, after categories, etc.) - Save settings and preview the report — custom sections appear at the chosen positions - Use "Save as Defaults" to store current settings at the org level - Open a different site's SEO report, click "Load Defaults" to apply saved settings - Delete a custom section and verify it's removed from the report preview **Watch for:** Custom sections not appearing at the correct position in the rendered report. Load/Save defaults failing silently. Settings not persisting after page reload.
New Chrome extension with 5 tools for prospecting, design inspiration, and style harvesting — all from your browser. **Where:** Install from `chrome-extension/` directory (developer mode) or Chrome Web Store (when published) **How to test:** - Load the extension in Chrome via `chrome://extensions` → Developer mode → Load unpacked → select `chrome-extension/` folder - Visit any business website and open the extension popup — the Prospect tab auto-analyzes the page (business info extraction, site quality score) - Click "Clip Section" on the Inspire tab, then hover and click any section on the page to save it - Click "Extract Styles" to pull colors, fonts, animations, and components from any site - Open Google Maps, search for businesses — use the floating "Scan Map" button to find prospects without websites - Visit Dribbble and use the bookmark buttons on shots to collect design inspiration into mood boards - Right-click context menu provides quick access to all features **Watch for:** Content scripts not loading on certain pages (CSP restrictions), Google Maps selector changes breaking GMB scanner
SEO reports now include Google PageSpeed Insights performance scores and agencies can control what clients see in shared reports. **Where:** Client portal → SEO → Report tab **How to test:** - Open SEO → Report tab, click "Check PageSpeed" to fetch mobile + desktop performance scores - Scores show in the report with FCP, LCP, CLS, and TBT metrics - Results are cached for 1 hour to avoid excessive API calls - Click "Share Report" and look for the "Report Content" section - Toggle "Show only completed items" — incomplete checklist items disappear from the report - Toggle "Hide issues section" — the issues list is removed entirely - Click category pills to hide specific categories (e.g., hide Local SEO if not relevant) - Toggle "Show PageSpeed scores" to include/exclude performance data - Preview the report to verify visibility settings take effect **Watch for:** PageSpeed fetch failing on unpublished sites (expected — needs a live URL). Hidden categories still showing in the report. "Show only completed" not filtering the detailed checklist properly.
Forms, booking widgets, shopping carts, payment buttons, and course enrollment components now work interactively in the site editor preview — no need to publish first. **Where:** Client portal editor preview (any site with runtime features enabled) **How to test:** - Create a new site with a business that triggers runtime features (e.g., restaurant with online ordering, fitness studio with booking) - After generation, the preview should show working forms and interactive components - Submit a form in preview — should show "Test Submission Recorded!" confirmation - Booking widgets show sample time slots when a date is selected - Payment buttons show a simulated success state - Cart browsing works (add/remove items); checkout falls back to form-only mode **Watch for:** - `window.__MONDOVO_CONFIG__.featureManifest` should not be null in the preview iframe - No console errors about missing Runtime* component imports - Preview submissions should be tagged as test data (not mixed with real leads)
Agencies can now track SEO progress with an actionable checklist and share beautiful progress reports with their clients. **Where:** Client portal → SEO tab → Checklist and Report sub-tabs, plus "Share Report" button in the SEO header **How to test:** - Go to any site's SEO tab in the client portal - Click the "Checklist" tab to see 35+ categorized SEO action items across 6 categories: On-Page, Technical, Content, Local SEO, Social, and AI/LLM Visibility - Check off completed items, add notes (e.g., "Submitted to Google on 3/15"), and watch the progress bar update - Items that can be auto-detected (like proper meta tags or H1 headings) are automatically marked as complete - Click the "Report" tab to preview the shareable report clients will see - Click "Share Report" to generate a public link with agency branding customization (title, agency name, logo) - Open the share link in an incognito window to verify the public report loads correctly with health score, checklist progress, and issue breakdown - Try filtering the checklist by "To Do" or "Done" to focus on remaining work **Watch for:** Checklist state not persisting after page reload; auto-detected items incorrectly showing as complete; share link not working when report is disabled; report settings not saving
Shareable SEO reports are now properly readable on phones and small screens — scores, category cards, issue lists, and PageSpeed metrics all scale and wrap correctly instead of overflowing. **Where:** Public SEO report link (the page clients open when you share a report) **How to test:** - Go to any site → SEO tab → click "Share Report" to get a share link - Open that link on a mobile device or use browser DevTools to simulate a 375px-wide screen - Verify the health score, category breakdown cards, issue list, and PageSpeed metrics all fit without horizontal scrolling - Check that long site URLs are truncated rather than breaking the layout - Verify severity counts (critical/warnings/tips) wrap gracefully on narrow screens **Watch for:** Category cards still overflowing on very small screens; PageSpeed metric grid breaking the layout; issue titles not wrapping
Create multi-step conversion funnels (opt-in, sales, webinar, etc.) from a business description. **Where:** Client portal → Funnels in the left rail → "Create Funnel" button **How to test:** - Open a site in client editor, go to Funnels - Create a new funnel using AI generation — enter a business description, pick a type (e.g., opt-in) - Confirm multi-step flow renders (contact → summary → payment for checkout type) - Publish the site and visit the funnel URL on the published domain - Submit a form in the funnel → check form_submissions table for the entry **Watch for:** Steps not rendering in sequence, published funnel URL 404ing, payment step showing without payment configured
New intelligent onboarding wizard replaces the chat-based flow as the default. Four steps collect your business details and AI generates a complete, custom website plan you can review and tweak before generating. **Where:** Create new site (now the default experience) **How to test:** - Go to `/client/{clientId}/site/new` - **Step 1 (Business):** Enter your business name and a brief description of what you do. Optionally add a logo. - **Step 2 (Content):** If your business has specific content (menu, products, services, courses), the AI will ask for it. Upload a PDF/photo or paste a list. The AI extracts items with prices. Skip if you prefer placeholders. - **Step 3 (Goals):** Pick your site's main goal (get leads, sell online, get bookings, etc.). Choose your audience (local with city search, national, or global). Pick a visual vibe from real design screenshots or let AI decide. Add style preferences with quick-tap chips. - **Step 4 (AI Plan):** See your complete site plan — hero headline, sections with explanations, interactive checklists you can toggle. Edit the headline, add/remove sections, browse design inspiration. Write any custom instructions. Click "Generate My Site." - **Sidebar:** Click the sparkle icon to open the assistant panel for brainstorming, editing the blueprint, viewing the wireframe, or uploading assets. - Verify the generated site uses your real content (menu items, products, services) and matches your selected goals and style. **Watch for:** Content parsing failing on uploaded files (try pasting text instead). AI plan showing generic items when real content was uploaded. Style not matching vibe selection. Draft site limit error not showing before form submission.
Image generation prompts now use aspect ratios instead of pixel dimensions, improving output quality. **Where:** Affects all AI-generated images during site generation (no UI change — backend prompt improvement) **How to test:** - Generate a new site for any industry - Check that hero images, section images look well-composed and correctly proportioned - Compare with older generated sites if possible — images should look less cropped/stretched **Watch for:** Images with wrong aspect ratios, overly zoomed-in compositions, images that don't match the industry
Activating a feature now runs the full setup pipeline instead of just toggling it on. When you activate Help Center, Shopping Cart, Job Board, or any other feature, it automatically creates the content type, seeds sample items, injects the right components, and creates a dedicated page if needed. Features that need a choice (like Shopping Cart asking "What will you sell?") now show a step-by-step wizard. After activation, a success screen shows what was set up and what to do next. Active features with managed content (like products or services) now have a "Manage Items" button right in the Features view for quick CRUD access.
Fixed two display bugs in the Organization settings page — member email addresses were blank, and admin members were incorrectly shown with an "owner" badge. **Where:** Dashboard → Organization → Members list **How to test:** - Go to Dashboard → Organization and check the members list — each member should now show their email address - Invite or view an admin member (not the owner) — confirm their badge shows "Admin" not "Owner" - The actual owner of the org should still show the "Owner" badge **Watch for:** Member emails still blank after loading; admin members still showing "Owner" badge instead of "Admin"
Member email addresses and role badges now display correctly on the Organization page — emails were blank and admins were incorrectly shown as "owner". **Where:** Dashboard → Organization (team members section) **How to test:** - Go to Dashboard → Organization - Check that all team members show their email addresses (not blank) - Verify that admin members show the "admin" badge, and only the actual owner shows "owner" - Invite a new member and confirm their email appears immediately in the list **Watch for:** Members still showing blank emails after refresh, admin users incorrectly labeled as owner
Generate up to 5 design variations for any page and select which one goes live. **Where:** Client portal → Pages tab → click any page → "Generate Variation" button **How to test:** - Open an extracted site in the client editor - Go to Pages, pick a page, click Generate Variation - Wait for AI generation (SSE streaming progress) - Switch between variations using the variation selector - Select a variation, then publish — confirm only the selected variation deploys **Watch for:** Variation selector not updating, publish deploying wrong variation, variation count exceeding 5
AI-tagged image stock library with vision tagging, search, and auto-replacement of broken images. **Where:** Admin → Image Library (admin-only management). In client editor, broken images show a "Replace" suggestion pulling from this library. **How to test:** - Go to /admin/image-library → verify images load with tags and search works - Open a site that has broken/expired image URLs - Confirm the editor surfaces a suggestion to replace the broken image - Accept the replacement → verify the new image loads and is from the library **Watch for:** Search returning irrelevant results, broken image detection missing some images, replaced image not persisting after refresh
Sites now auto-detect which interactive features (booking, cart, help center, etc.) fit the business type and offer one-click activation. **Where:** Client portal → left rail → look for suggested features with activation badges **How to test:** - Create a new site for a restaurant → should suggest booking, menu/cart - Create a site for a law firm → should suggest inquiry form, help center - Click "Activate" on a suggested feature → confirm it adds the runtime component and portal view - Check that irrelevant features are NOT suggested (e.g., no course enrollment for a plumber) **Watch for:** Wrong features suggested for industry, activation failing silently, duplicate features after re-activation
Template gallery search box now pre-fills with the site's industry for better default results. **Where:** Client editor → template gallery / design selection step **How to test:** - Open a site for "plumbing" → go to template gallery - Confirm search box shows "plumbing" pre-filled and results are relevant - Clear the search, type something else → confirm it still works normally **Watch for:** Pre-fill not appearing, wrong industry shown, search not clearing properly
Preview toolbar decluttered — less-used actions moved to an overflow menu. **Where:** Client editor → top toolbar above the site preview **How to test:** - Open any site in the client editor - Confirm the toolbar looks cleaner with primary actions visible - Click the overflow menu (three dots or similar) → confirm secondary actions are there - Use actions from the overflow menu → confirm they work normally **Watch for:** Important actions hidden in overflow that should be primary, overflow menu not opening on mobile, actions disappearing entirely
Template gallery previews now adapt each block individually for a more accurate representation of the final design. **Where:** Client editor → template gallery → hover over a template to see its preview **How to test:** - Open the template gallery for any site - Hover over different templates → confirm preview popups render properly - Compare the preview to what you get after applying the template → should be close match - Try templates with different style categories (minimal, bold, etc.) **Watch for:** Preview showing blank/broken content, preview looking very different from applied result, hover preview flickering or not loading
Fixed several issues causing sites to fail during publish — icon aliases, static export errors. **Where:** Publish flow (client editor → Publish button → deploy to R2) **How to test:** - Pick any site in preview or extracted phase - Click Publish → confirm it completes without errors - Visit the deployed URL → confirm the site loads with correct icons and styling - Try publishing a second time (redeploy) → confirm it succeeds **Watch for:** Publish hanging or failing with vague errors, deployed site showing broken icons, CSS missing on published site
Editor detects text that's hard to read against its background and offers a one-click fix. **Where:** Client editor → when viewing the site preview, look for suggestion badges on low-contrast text **How to test:** - Open a site that has light text on a light background (or dark on dark) - Check if the editor surfaces a visibility warning/suggestion near the problematic text - Click the fix suggestion → confirm the text color updates to be readable - Verify the fix persists after page refresh **Watch for:** False positives on intentionally styled text (e.g., watermarks), suggestion not appearing on genuinely hard-to-read text, fix making text worse
You can now disagree with the AI during onboarding and it will update the blueprint on the spot. **Where:** Site creation wizard → AI chat → say something like "no that's wrong" or "actually we do X not Y" **How to test:** - Start a new site, let the AI make an assumption about your business - Correct it (e.g., "No, we're a B2B company, not B2C") - Check the brief/blueprint panel → confirm the correction is reflected immediately - Continue the conversation → confirm the AI uses the corrected info going forward **Watch for:** Correction not updating the blueprint, AI reverting to old assumption in later messages, brief panel showing stale data
Setup conversation remembers your decisions, stops repeating questions, and asks about location and existing website earlier. **Where:** Site creation wizard → the AI chat that gathers your business details **How to test:** - Start a new site → answer the first few questions - Confirm the AI doesn't re-ask something you already answered - Mention your location early → confirm it's captured in the brief - Mention an existing website → confirm it appears in the brief panel - Complete the flow → check the blueprint has location and website fields populated **Watch for:** AI still repeating questions, location/website not showing in brief, conversation going in circles
Fixed rendering issues with booking forms, help centers, and other interactive components. **Where:** Client editor → sites with runtime workflows (booking, help center, cart, etc.) **How to test:** - Open a site that has a booking form → confirm it renders and accepts input - Open a site with a help center → confirm FAQ accordion works - Open a site with a cart → confirm add-to-cart and checkout flow renders - Test on mobile viewport as well **Watch for:** Runtime components showing as blank, form submissions not going through, interactive elements unresponsive
Sites now support 17 built-in workflows: booking, help center, job applications, event registration, course enrollment, cart, and more. **Where:** Client portal → left rail navigation shows available workflows. Each has its own management view (e.g., Bookings, Help Center, Orders). **How to test:** - Open a site → check left rail for workflow-specific nav items (Bookings, Careers, Events, etc.) - Click into each workflow view → confirm CRUD works (create/edit/delete items) - Visit the published site → confirm the runtime component renders (e.g., booking form accepts submissions) - Submit a form on the published site → check the portal view for the submission **Watch for:** Workflow nav items missing for qualifying sites, CRUD operations failing, submissions not appearing in portal, runtime component blank on published site
Site editor assistant now greets by name, suggests relevant actions, and shares industry-specific expertise. **Where:** Client editor → AI assistant chat (bottom-right or side panel) **How to test:** - Open a restaurant site → open the assistant → confirm it mentions restaurant-relevant tips - Open a plumbing site → confirm different industry-specific suggestions - Check the welcome message includes the user's name (if available) - Ask "what should I do next?" → confirm suggestions are contextual to the site's current state **Watch for:** Generic suggestions that don't match the industry, assistant not knowing the site type, welcome message missing name or showing wrong name
Batch of 33 usability fixes: better status labels, clearer input hints, improved onboarding, template selection tweaks. **Where:** Across the entire client editor and onboarding flow **How to test:** - Walk through the full onboarding flow → check for clear labels, no confusing jargon - In the editor, look at status indicators (draft, published, etc.) → should be clear and consistent - Check input fields have helpful placeholder text/hints - Try template selection → labels and categories should make sense **Watch for:** Any remaining confusing labels, placeholder text that says "undefined" or is missing, status badges with wrong colors
Businesses can now have a careers page with job listings and application forms, managed from the portal. **Where:** Client portal → Careers in the left rail (only for sites where job_application workflow is active) **How to test:** - Open a site for a business that hires (e.g., a restaurant, agency) - Check left rail for "Careers" nav item - Create a job listing with title, description, requirements - Visit the published site → confirm the careers page shows the listing - Submit a test application → check the portal Careers view for the submission **Watch for:** Careers nav not appearing for qualifying businesses, job listing not showing on published site, application form validation errors, submissions not appearing in portal
Upload reference images and the AI generates designs inspired by their visual style, layout, and feel. **Where:** Site creation wizard → look for an "Inspire from Images" option or upload area during the design step **How to test:** - Start creating a new site - Upload 1-3 reference images (screenshots of sites you like) - Complete the wizard → confirm the generated design picks up visual cues from your references (color palette, layout style, mood) - Try with very different styles (minimalist vs. bold) → confirm output varies accordingly **Watch for:** Generated design ignoring the references entirely, upload failing silently, very slow processing without progress indication
Sites with payment features now support secure webhooks with step-by-step setup guides for Stripe and Razorpay. **Where:** Client portal → Settings → Payment settings (appears only for sites with payment features enabled) **How to test:** - Open a site that has payment collection enabled - Go to Settings → look for payment/webhook configuration - Confirm step-by-step instructions appear for the relevant provider (Stripe or Razorpay) - Webhook URLs should use the site's own subdomain - Verify webhook secret is required (not optional) **Watch for:** Setup guide showing wrong provider instructions, webhook URL pointing to wrong domain, ability to save without a webhook secret
Site generation now references a curated library of high-quality design patterns, resulting in more polished layouts. **Where:** No direct UI — affects the quality of AI-generated sites during generation, refinement, and page creation **How to test:** - Generate a new site for any industry → compare layout quality against older generated sites - Look for: better section composition, more consistent spacing, professional typography choices - Generate for different industries → confirm variety (a law firm shouldn't look like a restaurant) **Watch for:** All sites looking too similar (over-reliance on same patterns), generation taking noticeably longer, irrelevant design patterns leaking in
The site editor assistant is now backed by a 24-article knowledge base and remembers your preferences across sessions. **Where:** Client editor → AI assistant chat panel **How to test:** - Open the assistant and ask "how do I add a new page?" → should give a specific, accurate answer (not generic) - Ask an industry-specific question → confirm it references relevant knowledge - Make a preference statement ("I prefer minimal designs") → close and reopen → ask a design question → confirm it remembers - Ask something obscure → confirm it admits when it doesn't know instead of hallucinating **Watch for:** Generic/unhelpful answers to common questions, memory not persisting across sessions, assistant contradicting knowledge base articles