This page captures the product requirements introduced by the web application mock used to validate the DomiDo design with stakeholders and early testers. It is an additive requirements source for the Web/PWA baseline and is traced by every other requirements document, so a reader looking for "what does the mock contribute to the platform" can find the full inventory here without scanning the mock files. The delivery-governed product corrections in the software overview supersede any mock copy that implies unsupported payment options, unphased pre-order, threshold, or no-charge checkout semantics, obsolete upload limits, fixed locale, currency, or jurisdiction lists, fixed delivery methods, fixed AI generation costs, fixed moderation or ad-boost costs, fixed payout numbers, active Phase A remixes, specific Workshop or Help article-body facts, a custom public Help frontend in place of the approved Docusaurus publication layer, or locale selection without backend multilingual user-generated content translation. The override matrix below records the resolved decisions so the mock's useful UI states are retained without converting inactive or future-phase demo copy into product truth.
Rendered HTML entry pages are the normative mock surfaces, and standalone prototype files that are not loaded by an entry page are captured as alternative or non-launch requirements so their feature intent is not lost. Prototype artboard tooling — the design canvas, tweak panels, artboard labels, and canvas controls — is not a product requirement except where it reveals intended responsive states, configurable display modes, or alternate states that must be represented in requirements.
| Mock source | Requirement area |
|---|---|
DomiDo Homepage.html, homepage.jsx |
Home, workbench, resume state, featured gallery |
DomiDo Create.html, create*.jsx, create-cube.jsx, tags-input.jsx |
Create wizard, projections, model tryouts, block kit, publishing |
DomiDo Gallery.html, gallery.jsx |
Gallery discovery, filters, designer rail |
DomiDo Listing.html, listing-detail.jsx, listing-sections.jsx |
Buyer listing detail, assembly viewer, Q&A, reviews |
DomiDo Listing.html, listing-designer*.jsx, promo-studio.jsx |
Designer listing authoring, Promo Studio, moderation, royalties, messages, remixes |
DomiDo Checkout.html, checkout.jsx |
Cart, delivery, payment, review, confirmation |
DomiDo Dashboard.html, dashboard*.jsx, mobile-*.jsx |
Buyer and designer dashboards |
DomiDo Designer.html, designer*.jsx |
Public designer profile and owner view |
DomiDo Workshop.html, DomiDo Help Center.html, workshop*.jsx |
Workshop and Help Center knowledge base |
app-header.jsx, auth-modal.jsx, search-modal.jsx, shared.jsx |
Global shell, authentication, search, footer |
pd-*.jsx |
Non-launch product detail alternatives |
styles.css, dashboard-responsive.css |
Design tokens, shared visual language, responsive dashboard behaviour |
HERO_PROMPTS.md, assets/hero/*, img/*, reference/* |
Hero and content art direction and image-led page evidence |
design-canvas.jsx, tweaks-panel.jsx, image-slot.js, ios-frame.jsx |
Prototype tooling and device or frame evidence; not launch product features unless separately promoted |
Compared with the earlier mock, the current mock adds or materially changes several product areas. Promo Studio is now loaded by DomiDo Listing.html and launched from the designer listing Hero section. create-stages.jsx adds a configurable style reference gallery that rewrites or extends the Describe prompt and seeds reference media. Designer dashboard earnings now models Stripe Connect states, payout balances, payout schedules, failed payouts, reserves, dispute states, payout activity, tax export, and mobile parity sheets. DomiDo Create.html changes the prototype tweak default stage to model — this is authoring state only and does not alter the production five-stage wizard requirement. Newly uploaded screenshots are visual evidence only unless the corresponding user-facing feature is loaded by an entry page or directly represented by JSX requirements in this document.
| Mock area | UI feature retained | Override |
|---|---|---|
| Checkout payment copy | Payment step, saved payment references, new payment capture, supported-card reassurance, payment retry affordance | Stripe handles checkout and retry. The platform exposes only masked Stripe card references and jurisdiction-specific Stripe-supported card copy. Any non-Stripe payment-option copy is obsolete prototype text. |
| Checkout pre-order and commitment copy | Review agreement checkbox, confirmation state, pre-order or order reference, dashboard link, next-step messaging | Phase A physical-kit checkout creates a Stripe SetupIntent pre-order commitment: card verified, no charge captured, no promised ship date, cancellation path available. Phase B creates charged orders after capture. Threshold, most-requested, guaranteed fulfilment, or fake popularity copy remains rejected. |
| Checkout VAT and delivery demo values | VAT line, delivery line, sticky order summary, receipt totals | VAT depends on user jurisdiction. Delivery methods, prices, delivery-window copy, collection-point behaviour, and supported jurisdictions come from configuration or order records. |
| Buyer dashboard notifications | Order-update inbox, unread and read state, mark all read, alert severity, linked order and action targets | Notification items are domain records tied to orders, fulfilment, payment, support, payout, or account events, not hard-coded mock feed rows. |
| Buyer dashboard saved carts | Saved cart cards, resume checkout, discard, item summary, delivery and VAT summary | Saved carts and checkout drafts are persisted resources with line items, jurisdiction and config version, selected checkout step, totals, and resume and discard actions. |
| Buyer order sheet tracking | Multi-parcel tracking, tracking map and timeline, parcel and item grouping, ETA changes, delivery instructions | Tracking and ETA details are typed order and shipment data. Carrier names, tracking text, stops, times, and ETA values are record data, not fixed requirements. |
| Buyer order action sheets | Cancel, return, replacement, report issue, dispute, payment retry, delivery preference, address change, message and support flows | Every action has typed request and response data, validation state, eligibility, attachments where enabled, result status, and audit events. Demo provider labels, fixed attachment limits, fixed refund windows, and fixed policy values are not product truth. |
| Designer reviews, questions, messages | Review reply dialog, AI draft and polish controls where configured, Q&A reply and add-to-FAQ, threaded messages, reports, claim actions | These workflows are designer-owned review reply, question reply, FAQ candidate, message thread and report, and claim action resources. Auto-draft text, timing labels, and claim policy demo values are content or configuration. |
| Language controls and free text | Language selector, preferred language setting, user prompts, listing copy, profile bio, reviews, questions, replies, comments, messages, support and report notes | Language choices are backend configuration. Every free-form user-generated text field is stored with source language and context and translated asynchronously through backend LLM jobs for configured supported languages. Structured and sensitive fields are excluded from translation. |
| Designer marketplace and payouts | Designer dashboards, royalty controls, Stripe Connect, payout settings, projected earnings, statements, reserves, disputes | Phase A.5 activates designer acquisition and payout readiness before real fulfilment. Actual payout release requires Phase B captured and delivered eligible orders. |
| Help article comments | Public discussion list, role tags, likes, replies, composer, sort, report and moderation state | Public Help article content is a Docusaurus-published static projection. Help comments are platform backend user-generated discussion records linked to published articles. Admin-only content mutation applies to article, topic, and kind content and Docusaurus publication workflow, not to ordinary comment submission. Specific seeded comments remain demo data. |
The web app provides a universal header with primary navigation for Home, Gallery, Create, Journal, Help, and Dashboard, active-page indication, optional second-row breadcrumbs, optional role switch, optional Submit-a-design action, signed-in and signed-out states, sticky behaviour where specified by page, and responsive desktop, tablet, and mobile navigation. The header collapses to a mobile hamburger drawer that preserves primary navigation, dashboard access, search access, and authentication actions. Authenticated users see an avatar or initials control with a popover showing identity, dashboard navigation, and sign-out; the popover closes on outside click and Escape. Authenticated shell states support a notification button with an unread dot or badge and dashboard or message targets.
Language, locale, and content translation are wired into the shell. The header and footer expose configured language, locale, and currency choices; mock labels are display intent only, and production availability comes from backend configuration and supported-jurisdiction rules. The language selector drives the preferred display language for translated user-generated content, and the frontend treats translated text as backend data with source fallback, pending, failed, and stale states where the API exposes those states. The web app provides a modal OAuth sign-in and sign-up flow using Google, Apple, and Facebook providers, with sign-in and sign-up copy variants, terms and privacy consent copy, backdrop close, Escape close, and body scroll lock.
Global search is exposed as a modal or sheet with debounced search, configured scope filters, scope counts, keyboard up, down, enter, and Escape support, thumbnails, swatch or avatar initials, no-results state, and footer key hints. Mock scope labels — such as all, designs, designers, journal, materials, help — are examples and do not create unsupported content scopes without configuration. Search persists recent searches locally, exposes recents when no query is active, and includes a voice-search affordance with listening state and waveform feedback. The universal footer carries Marketplace, Create, Buy-and-build, Company, and Help-and-Legal link groups; newsletter signup; social links for Instagram, Are.na, Pinterest, and YouTube; company and VAT details; Sitemap; Do not sell my data; Manage cookies; and locale and currency selection.
Every mock-derived page defines desktop, tablet, and mobile behaviour, with mobile drawers, sheets, horizontal scrollers, sticky bottom bars, and condensed cards captured as product requirements rather than visual-only details. The mock's shared visual language — sage, terra, and gold accent tokens, warm paper and canvas backgrounds, Fraunces, Inter, and JetBrains Mono typography roles, focus-visible styling, button variants, pill and chip treatments, hairline dividers, and image-led composition — is preserved; production implementation may translate these into repository-local CSS tokens but does not drop the intended hierarchy and affordance states. The design canvas, tweak panels, image slot, and iOS frame are mock authoring and preview utilities — they inform breakpoint coverage, tweakable display modes, crop and reframe intent, and device safe-area concerns, but they do not introduce production dependencies on sidecar JSON files, host bridge APIs, inline edit-mode protocols, or iOS Liquid Glass components unless a separate product requirement promotes them.
The guest homepage presents a photographic hero, primary copy around buildable garden kits, a seasonal or community kit badge, Start-with-AI and Browse-Gallery calls-to-action, and trust copy that respects the commerce, payment, and delivery corrections. Returning users see a resume strip including configurable AI credit or cost state where enabled, incomplete AI draft progress, active order or fulfilment readiness state, live listing performance, and account-and-dashboard access. The homepage offers three creation rails: AI prompt, Upload model, and Gallery start, and each rail shows credit cost or listing count, preview state, and a primary call-to-action.
The three rails differ in detail. The AI rail includes a prompt textarea, prompt suggestions, configurable generation cost, sketching and progress preview, and step indicator. The upload rail supports drag-and-drop and a file picker for GLB, GLTF, OBJ, and STL model files up to 100 megabytes, with configurable processing cost and post-upload benefit copy. The gallery rail shows live listing preview, price, designer and social proof, and Stripe checkout and fulfilment readiness copy. The homepage also includes Stripe checkout trust copy, Featured Gallery cards, How-it-works milestones, and Create-modes explanation. The hero supports a photographic, image-led layout with enough quiet or low-contrast overlay space for headline copy, responsive landscape and portrait crops, and domestic garden-kit art direction; fantasy and medieval prompt variants are content-direction evidence only and do not override canonical product material or safety requirements.
Create uses a five-stage wizard: Describe, Projections, 3D model, Block kit, Save-and-publish. Desktop shows a vertical stage rail; tablet and mobile show a sticky horizontal rail. Stages expose active, done, locked, and collapsed-summary states. The Describe stage includes a prompt textarea, labelled prompt examples, optional reference image drop or click upload, reference removal, minimum prompt validation, configurable front-view generation cost, and refinements where applicable. It also includes a horizontally scrollable style reference gallery where configured presets can append or rewrite prompt style text and set a reference image — preset data includes label, palette, descriptor, seed prompt, swatches, thumbnail or reference media, enabled state, and order. Mock preset labels (Scandinavian, Industrial, Coastal, Japandi, Brutalist, Cottage, Mid-century, Tropical, Workshop, Desert, Modernist) are examples; the production list is configuration data. Prompt examples support compact labels with full prompt tooltips or content, and the mock examples (Raised garden bed, Wheelie-bin shelter, Privacy screen, Tiered herb planter, Corner bench, Compost bin cover) are also configurable content.
Projections manages six cube faces — front, back, right, left, top, and bottom — each supporting empty, generating, and ready states, generated image, step count, and history. Users can switch between draggable rotatable cube view and grid view, click a face to select it, and see active face labels and version tags. The face editor shows source-and-result preview, refinement prompt, reset-face action, generate-face action, selectable source provenance, and a result zoom lightbox with Escape and backdrop close. Each face preserves history steps and allows a prior step or another face's latest result to be reused as source. The system supports optional auto-generating of missing non-front faces from the front view, with configurable cost, progress pips, streaming and progress state, and timeout and error handling. Projections shows a quality label derived from ready faces and allows rough model progress when minimum face requirements are met.
The 3D model stage offers configured generation paths with configurable costs, estimated duration, vertex and file-size expectations, and quality copy. Model generation shows progress percent, current stage label, remaining time, wireframe and scanner visual, and provider or job identifier. Ready models show interactive preview, quality and stats HUD, vertices, faces, file size, bounding box, volume, generated timestamp, saved tryouts gallery, active tryout selection, generate-another actions, and user feedback capture for model quality. Block kit converts the active tryout into a block kit, with a disabled state when no tryout exists, configurable cost, and progress stages for voxelisation, block placement, overhang resolution, BOM, and assembly steps. The ready kit includes an assembly viewer, assembly controls, searchable and filterable grouped BOM, SKU, quantity and colour swatch rows, no-match state, total blocks, estimated base price, build time, and save-and-publish call-to-action.
Publishing includes name, description, tags, AI autofill, shorten and polish actions, visibility (private, unlisted, public-gallery), Phase A disabled-remix notice, designer royalty slider from 0% to 25%, live price breakdown, zero-royalty community message, preview card, save-draft, and publish-or-list action. Tags support comma entry, ghost autocomplete, Tab, Arrow Right, and Enter acceptance, popularity dots, AI-suggested tags, de-duplication, and a maximum of five tags.
Gallery presents search as the dominant entry, with a category strip, result count, and community-kit scale copy. It includes configured marketplace tabs with counts — mock tab labels are display examples, and no tab implies pre-order, threshold, or no-charge checkout semantics. Filters cover use case, footprint, max price, freshness, popularity and social proof, availability and orderability, and the other discovery facets visible in the mock. Sort options include featured, newest, popularity and social proof, and price-ascending; grid and list view; density controls; chip-style variants; and designer-prominence variants as documented display options. Mobile gallery collapses filters into a sheet with clear-all and show-results actions plus active-filter indication.
Listing cards show image, title, tag chips, new and status markers, availability or design-only state, price where applicable, designer, block count, and configured social-proof or order metrics. Empty result states explain no matches and offer clear-filters and Sketch-with-AI actions. Gallery includes a featured designers rail with avatar, location, kit and listing count, configured sales and social-proof metrics, seasonal feature copy, and a link to all designers.
Buyer listing pages include breadcrumbs, designer credit, title, tags, rating and reviews, configured social-proof or order metrics, facts grid, delivery and fulfilment copy, add-to-cart or buy call-to-action, and Stripe checkout or jurisdictional VAT trust copy where applicable. Listings support a photo carousel, dots and thumbnails, fullscreen media, and a Photos-or-Assembly mode switch. Assembly mode provides draggable rotation, step and layer state, play-and-pause, auto-advance, segmented scrubber, previous and next block, previous and next layer, rewind and end, current block thumbnail, block glyph, and ready, assembled, and layer labels. Buyer listings include story quote, What-you'll-need, order and fulfilment process content, Specs, Questions, Reviews, tags, designer profile, similar kits, and footer.
Listing Q&A allows public buyer questions, designer replies, verified-buyer and designer badges, awaiting-reply state, show-all control, and rich body blocks including paragraphs, lists, and quotes. Listing reviews show aggregate score, star distribution, review list, reviewer location and date, verified signals, and show-all and hide controls. Listings support no sticky call-to-action, sticky bottom bar, and sticky or right-column call-to-action variants. Mobile defaults to a bottom commerce call-to-action for the current listing action.
Designer listing view wraps the same listing with author navigation, visibility chip, buyer-view toggle, save and saved state, and an unsaved-leave guard with stay, discard, and save-and-leave choices. Desktop uses a left author rail, centre editable listing, and right performance-and-payout column; tablet and mobile use compact rails and inline right-column sections. The rail shows listing URL and copy link, author identity, tier, and location, royalty math, last-30-day performance, moderation status, visibility options, uniqueness and similarity matches, lineage, and gating warnings.
Designer listings support clear, flagged, and blocked moderation states. Moderation flags include category, severity, verdict, rating, location, excerpt, reason, allowed visibility restrictions, and safe evidence references. Re-running moderation uses backend-configured cost and eligibility rather than a fixed credit value. Author sections support dashed and hover edit affordances, section-level AI autofill where applicable, editable hero, media, name, story, specs, and tags, platform-read-only fields, custom spec add-and-remove, and request-copy-change actions for platform-owned copy. Designers can adjust royalty from 0% to 25%, see base price, royalty value, listed price, earn-per-sale, monthly payout estimate, reset-and-apply states, and zero-royalty no-earn messaging. The right column includes activity metrics and stream, buyer ghost preview, and designer-funded ad-boost controls with configured budget bounds, impressions, clicks, cost-per-click, order and conversion metrics, acquisition-cost guidance, break-even guidance, and pause, start, and update actions. Designer listings show remixes and lineage, remix attribution, royalty split review where applicable, uniqueness check at publish, and explanatory copy that remixes are separate listings.
Designer listing conversations support unread, pinned, status, and priority signals, collapsible threads, reply composer, internal notes, suggested replies where configured, threaded reply history, report-message flow, claim-and-dispute actions, approve-replacement, refund-instead, request-more-photos, escalate-to-platform-support, and stateful resolution history. Review and Q&A surfaces attached to owned listings also support designer reply drafts, edit, update, and delete where allowed, post reply, add a Q&A answer to FAQ candidates, and moderation and report context — without exposing buyer-private payment or account data.
Promo Studio launches from an owned designer listing Hero section through a visible AI chip or control. It operates on the current listing's model and media and is available only to the listing owner or authorised designer-management role. It opens as a full-screen modal or wizard with Stage, Photos, Video, and Library steps; a left step rail; step counts for generated assets; top bar with listing name; close button; Escape close; body scroll lock; back, next, and done footer controls; and status or toast feedback. Promo Studio shows credit-and-cost state and a top-up affordance when configured — photo and video cost labels, monthly allowance labels, top-up behaviour, and batch-size labels come from backend configuration and are not hard-coded.
The Stage step provides an interactive source-render preview with environment, horizon-and-floor, sun-and-light position, model placement, model scale, rotation, yaw, source-render badge, grid overlay, and reset control. Stage environment controls support configured environment presets — mock examples include Studio, Loft, Garden, Café, Bedroom, and Terrace, with production presets coming from configuration and potentially including custom HDRI or reference environment upload where enabled. Stage camera and model controls support configured lens choices, camera pan, tilt, crane, and dolly state, object move, scale, and yaw handles, model footprint display, and source model reference; the mock lens examples are 35mm, 50mm, and 85mm.
The Photos step provides prompt editing, listing tag chips that append to the prompt, configured photo style selection, current source-scene preview, and a generate action. Photo generation creates traceable photo assets tied to the scene snapshot, prompt, style, and job, and results support keep-and-star, animate-this-photo, download, add-to-listing, metadata display, empty state, progress state, failure state, and accumulated generation history.
The Video step requires at least one generated photo as a first frame and shows a clear empty or prerequisite state when no generated photo exists. Video generation supports source-photo carousel selection, motion prompt, motion-prompt chips, configured duration choices, configured aspect choices, generate action, progress state, and failure state — mock duration examples are 2, 4, 6, and 8 seconds and aspect examples are 9:16 and 16:9. Video assets support play-and-pause preview, keep-and-star, metadata display, download, add-to-listing, and traceability to the source photo and generation job. The Library supports filters for All, Photos, Video, and Starred, per-filter counts, empty states, download-all where authorised, keep-and-star, animate-from-photo, per-asset download, add-to-listing, and archive or remove where implemented. Adding a Promo Studio asset to a listing updates listing-gallery and media state and preserves the asset's private, generated, and public state — generated assets remain private unless explicitly published to listing media. Promo Studio assets and jobs store listing, owner, scene snapshot, prompt, style and motion settings, source media, config version, generated asset references, keep-and-star state, download state, and listing-gallery publication state for audit and troubleshooting.
Checkout uses Cart-and-Bag, Delivery-and-Address, Payment, Review, and Confirmation steps with a desktop horizontal stepper and a mobile dot-and-line stepper. Cart supports item summaries, quantity increment and decrement, remove, save-for-later, continue-browsing, and save-bag-for-later. Cart state includes cart ID, line item IDs, listing references, quantity, thumbnails, designer display, kit summary, line totals, subtotal, discounts, delivery estimate, jurisdictional VAT, total, currency, config versions, and validation messages. Saving a bag creates or updates a saved cart and checkout draft resource that can be listed, resumed, or discarded.
Delivery supports saved addresses, default marker, edit, add-new-address, manual address fields, configured supported-jurisdiction choices, address labels, delivery instructions, phone where required, and jurisdiction-configured delivery methods including collection-point selection where that method is available. Unsupported jurisdictions block payment and show configured coming-soon copy while preserving the cart and checkout draft. Payment supports saved masked Stripe card references, default marker, edit-and-delete where permitted, Stripe-handled new-card capture, billing-same-or-different option where needed, save-card checkbox, Stripe-secured text, Stripe checkout and session state, retryable Stripe readiness errors, and promo or gift code. The web app does not expose any non-Stripe payment option as a requirement, and supported-card copy comes from Stripe support in the buyer's jurisdiction.
Review explains Stripe SetupIntent card verification for Phase A physical-kit pre-orders, Stripe payment readiness for Phase B charged orders, and jurisdiction-dependent VAT where applicable. It shows editable cart, address, and payment summaries, selected jurisdiction, selected delivery method or collection point, supported-card copy, marketing email opt-in where visible, and the mandatory terms, privacy, and kit-purchase or pre-order agreement checkbox that gates confirmation. Review validates stale cart, missing address, unsupported jurisdiction, unavailable delivery option, missing Stripe state, invalid promo code, and unchecked agreement, and it does not state threshold, most-requested, guaranteed-fulfilment, or direct-charge semantics for Phase A pre-orders.
Phase A confirmation shows pre-order ID, receipt and contact email, Stripe SetupIntent verification state, no-capture acknowledgement, cancellation instructions, next-steps timeline, summary with expected price, social sharing where appropriate, dashboard link, and keep-browsing actions. Phase B confirmation shows order ID, receipt email, Stripe payment state, fulfilment readiness, next-steps timeline, order summary with jurisdictional VAT, receipt download, social sharing, track-in-dashboard, and keep-browsing actions. Fulfilment readiness is one of ready-to-ship, waiting-for-missing-blocks, or waiting-for-production-readiness — no state promises a ship date before readiness exists. Desktop and tablet checkout include a sticky order summary with items, subtotal, delivery, jurisdictional VAT, discounts, total, supported-jurisdiction state, Stripe checkout explanation, saved-cart state, and validation messages; fixed VAT rates, fixed delivery and carrier values, and fixed ship-window promises from the mock are data examples only.
Dashboard supports buyer-and-designer role switch, AppHeader role segmented control, section side-nav with badges and urgent markers, sticky tablet tabs, mobile drawer, scroll spy, and designer QuickCreate action. The buyer overview shows tiles, an order-update inbox and notifications, saved carts, assembly progress and build-on-bench cards, suggested kits, and next-action ordering. Notification rows include ID, severity, read state, timestamp, source event, linked order, listing, or support target, call-to-action label and action, and mark-read and mark-all-read behaviour. Saved-cart cards include saved cart ID, item summary, item count, last-updated time, selected checkout step, delivery-and-VAT summary, resume-checkout action, discard action, and unavailable or stale validation state.
Buyer orders support Active, Completed, Issues, and Drafts tabs, a needs-action strip, search, designer filter, sort, needs-my-action toggle, saved cart drafts, and row shortcuts for track, reorder, return, resolve, review, pay, message, and build companion. Each row exposes order reference, fulfilment readiness, payment state, delivery state, ETA or wait-state label, unread notification count, needs-action reasons, and action eligibility. The buyer order sheet opens as a side sheet or fullscreen mobile view with adaptive timeline, items, shipment and parcels, communications, tracking copy, return, cancel, edit-address, delivery preferences, replacement, payment, report-and-dispute, and thread flows. It supports typed tracking detail with parcels, stop and timeline entries, ETA-change labels, delivery option, tracking-reference display, and per-parcel item grouping; typed delivery preferences for safe place, neighbour, hold-and-collection, signature, and instructions; typed return reasons, refund preference, and evidence; typed replacement request with affected items, quantity, reason, and photo evidence; typed report-issue categories; typed dispute and challenge payloads; typed payment retry through Stripe; and typed order messages and support attachments. Fixed mock attachment limits, carrier names, refund timing, VAT rate, or payment-provider labels are configuration or record data only. Buyer dashboard also includes build drafts with progress, resume, discard, and start-new, saved kits, collections, and designers with tag filter and sort, followed designers with new-kit badges, and order and cart shortcuts. Buyer settings include shipping addresses, saved Stripe payment references, profile, avatar upload-and-remove, notification channel matrix, quiet hours, currency, units, language, newsletter, two-factor authentication, password-and-session controls, data export, pause account, and delete account.
The designer overview shows greeting, time-range tabs, stat tiles, sales-and-follower charts, action queue, audience-and-reputation stats, activity feed with filters and export CSV, top performers, and empty first-day-back state. Designer kits support Published, Drafts, and Archived tabs, search, sort, pagination, row menu, pinned state, drafts with stage-and-progress and resume, archived table, and republish. In Phase A.5, designer dashboard shows attributed pre-orders, projected royalty, Stripe Connect and KYC readiness, statement previews, reserve-and-dispute model, annual and lifetime projected earnings, charting, by-kit breakdown, and configurable fee explanation. In Phase B, it adds royalty receipts, order receipt details, available, pending, in-transit, and reserved balances, payout schedule state, payout history, failed-payout resolution, reserve ledger, dispute details, statements with export, tax download, payout request, and payout activity.
Designer sale rows and dialogs support attributed-pre-order, reserved, sold, disputed, and refunded statuses plus lifecycle milestones for verified, captured, cleared, in-payout, and paid where available; disputed sale details show reason and state, reserve impact, handling status, outcome, and royalty and statement effect. Designer earnings represent not-connected, action-required, active, and new-and-first-sale Stripe Connect states; action-required views show safe requirement labels and hand off remediation to Stripe without exposing sensitive provider payloads. Designer earnings support configurable payout cadence, anchor, and minimum labels, pause-and-resume of auto-payout where enabled, payout-on-request availability, below-minimum handling, balance-below-threshold messaging, and notification preferences — fixed demo dates, thresholds, grace periods, and reserve timings from the mock are not requirements. Designer earnings also include the payout transfer ledger with expandable included royalties, paid, in-transit, and failed status, failed-payout resolution and retry, reserve hold-and-release ledger, payout, reserve, and dispute activity events, and mobile parity sheets; provider dispute fees, reserve percentages, and provider tool names are configuration or omitted. Designer settings include review-response queue, reply-and-edit dialogs, inbox triage by support-and-platform context, message threads, payout-and-Stripe-Connect setup, tax region, VAT, and UTR, configurable payout options, payout schedule, payout notifications, minimum payout, Phase A disabled-remix defaults, security, data export, pause shop and account, and delete account. Dashboard responsive behaviour includes side-nav replacement by tablet section tabs and mobile drawer, hamburger visibility on tablet and mobile, collapsed grids, stacked mobile table rows with column labels, horizontally scrollable tablet tables, compressed chart and tile typography, hidden non-critical mobile header actions, sticky tablet tabs, and mobile drawer backdrop behaviour.
Designer profiles show banner, avatar, verified badge, handle, name, location, pronouns, joined date, availability, bio, social links, Follow, Notify, Share, and responsive mobile, tablet, and desktop layout. Public profiles show kits published, total sold, followers, average rating, and response time, and the owner view replaces or augments stats with private sales, revenue, follower, and profile-view analytics. Profiles include a pinned or featured kit, catalogue filters by tag, sort options, kit cards with price, status, block, rating, and sold metadata, configured availability and new markers, and owner edit-and-new-kit affordances. Profiles include curated collections, review cards, an "in conversation with" designer recommendations section, a browse-designers footer, and section-visibility toggles as state coverage.
Workshop and Help Center public article content is delivered through a Docusaurus-published static site that provides one unified knowledge base with hub, topic, and article views. The Help Center organises topics and entry kinds through admin-managed content metadata; mock groups and kinds are examples of information architecture only and do not fix the production topic list. Help search searches entry title, summary, and body text, requires at least two characters, tokenises query terms, returns scored results with snippets, shows a no-results state, and includes quick search chips. The hub includes hero copy, search, browse-by-topic cards with counts, configured featured, popular, and editorial slots, and a support call-to-action. Topic pages show topic breadcrumb and context, topic tree rail or mobile drawer, kind filters, entry cards, topic count, related-entry count, and support rail. Article pages show kind badge, title, author, read time, updated date, body sections, table of contents, related entries, backlinks and used-in entries, previous-and-next cards, and mobile topic drawer.
Article discussion supports seeded and user-entered comments, buyer, designer, and staff role tags, likes, replies, helpful-and-newest sort, composer disabled until text is present, community guidelines link, report-and-moderation status where enabled, and empty discussion state. Help comments are platform backend user-generated discussion records that may be embedded in, linked from, or displayed adjacent to Docusaurus article routes — they are not Docusaurus or Workshop-and-Help article content mutation, and admin-only mutation remains limited to article, topic, and kind content, metadata, and publication workflow. Workshop and Help content mutation and Docusaurus publication-or-export control are admin-only; public and signed-in users may read Docusaurus-published content, submit comments where enabled, and start support where available, but they do not create, update, publish, unpublish, archive, delete, reorder, or trigger publication for help content.
The commerce, magazine, and architectural product-detail alternative components are non-launch product-detail alternatives unless promoted by product decision. The commerce-first alternative captures image gallery, thumbnails, bestseller and promo strip, save-and-share, variant size selector, finish swatches, quantity, add-to-cart, buy-now, trust strip, bundles and upsells, info sections, reviews, and related products. The magazine alternative captures editorial masthead, catalogue issue framing, full-bleed cover, at-a-glance panel, long-form story, pull quotes, sticky order panel, process diary, and also-in-this-issue products. The architectural alternative captures spec-sheet layout, drawing number strip, dimensioned elevation, sheet selector, variant-and-finish controls, spec table, axonometric exploded diagram, block callouts, designer note, and commerce-and-fulfilment schedule presentation.
Data requirements add or extend schemas for user profiles, designer profiles, listings, listing versions, drafts, create style presets, projection faces and history, model tryouts, model feedback, block kits, BOM groups and items, assembly steps, Promo Studio projects, scenes, jobs, and assets, carts, saved carts, checkout drafts, checkout bag, delivery, payment, review, and confirmation snapshots, Phase A pre-orders, Phase B orders, order lines, order notification items, fulfilment readiness, shipments, tracking details, tracking stops, ETA deltas, delivery preferences, typed order actions, return requests, replacement requests, report requests, disputes, return fee assessments, addresses, Stripe payment references, reviews, review replies, Q&A, FAQ candidates, Help comments, Help comment reports, Help entries, Help publication artifacts, Docusaurus route and build metadata, designer message threads, moderation reports, designer claim actions, collections, follows, notifications, moderation flags, similarity matches, Phase A disabled remixes, royalty policy, projected royalties, ad boosts, payouts, payout transfers, payout balances, reserve ledgers, trust restrictions, settings, sessions, data exports, and account deletion requests. User-supplied image surfaces implied by the mock — reference images, listing hero and media, profile and avatar images, and any future promoted image-slot behaviour — have durable production-backed image metadata, crop-and-reframe state, fallback image state, and source traceability; prototype sidecar JSON files are not used as production storage.
Interface requirements cover APIs and frontend-backend contracts for global search, authentication modal and session state, dashboard navigation, create style presets, create jobs, media upload, projection, model, and kit generation, model feedback, listing authoring, Promo Studio scene, photo, video, and library operations, gallery filters, Q&A, reviews, and messages, Stripe checkout, saved carts and checkout drafts, order notifications, tracking detail, delivery preferences, typed order side-sheet actions, return assessments, trust challenges, Help Center search, comments, and admin content, designer review replies, Q&A-to-FAQ, message reports, claim actions, designer profiles, follows, notifications, settings, payout, reserves, disputes, moderation, similarity, ad boosts, and data-subject-access-request export, pause, and deletion. Non-functional requirements include responsive behaviour, focus trapping, keyboard navigation, Escape-and-backdrop close, local-storage recents, modal-and-sheet accessibility, viewer performance, Promo Studio preview responsiveness, debounced search latency, saved-cart-and-checkout recovery, idempotent order actions, notification read-state reliability, table-and-list pagination, long-text handling, and mobile safe-area handling.
Security requirements cover OAuth provider authorisation, route authorisation by role, ownership, and visibility, CSRF and XSS protection for authored rich text and comments, Stripe checkout and tokenisation, no raw card storage, saved cart ownership, order notification ownership, order action authorisation, order message attachment access, Promo Studio private asset access control, moderation evidence access control, payout, KYC, reserve, and dispute access control, trust restriction access control, admin-only Help content mutation, Help comment moderation and report controls, secure data export, two-factor authentication and session management, and erasure and retention boundaries. User image uploads implied by the mock allow only approved raster formats, reject or separately sandbox SVG and animated formats, downscale and process server-side where needed, scan for malware and unsafe metadata, and enforce authorisation on avatar, reference, listing, Help, and designer-profile media mutations. Audit and analytics requirements include events for authentication, search, create stages, style preset application, configured generation cost application, upload validation, Promo Studio scene, photo, video, and library actions, publish, save, and visibility, moderation, similarity, checkout, saved-cart create, resume, and discard, order notifications and read state, tracking-detail access where audited, delivery preference changes, typed order actions, returns, replacements, reports, and disputes, payout, failed-payout retry, reserve hold-and-release, payout activity, ad boost, follow-and-save, review reply, Q&A reply, FAQ candidate, designer message reply-and-report, claim action, Help comment, reply, like, and report, Help search, settings, two-factor authentication and session, export, pause, and delete.
Several mock-vs-requirements conflicts remain logged so that reviewers can resolve them deliberately rather than implicitly. Older requirements and safety documents describe plastic block materials, while the mock includes fired clay, polymer-stone, recycled aluminium, timber, and other material copy — until resolved, the software overview governs web behaviour and the safety file governs material controls, and mock material wording is logged as a copy-or-prototype conflict rather than encoded as product truth. Some mock surfaces say free UK delivery while existing requirements state delivery is calculated separately and never free or included — until resolved, the commerce and compliance requirements govern, and mock free-delivery copy is non-approved marketing copy. The mock includes designer royalties, payouts, Stripe Connect, ad boosts, and marketplace-like monetisation; the software overview governs the active behaviour: designer marketplace activation is Phase A.5 before real fulfilment, royalty values include VAT, payout numbers are configurable, payout readiness starts in Phase A.5, actual payout release starts only after Phase B capture and delivery eligibility, and remixes are disabled in Phase A. Any mock copy implying non-Stripe payment options is superseded — payment is Stripe-only and accepted-card copy is based on Stripe support in the user's jurisdiction. Older documents mention Google, Microsoft, and Apple as OAuth providers; the mock uses Google, Apple, and Facebook — the current requirements record the mock provider set, and the security and interface specifications resolve the approved provider set before implementation. The mock contains demo payout dates, grace windows, dispute fees, reserve percentages, and provider tool names; the platform captures the workflows but normalises all such values to configuration or source transaction-or-provider state. Phase A physical-kit pre-order, no-charge, and card-verification-only language is valid only when it describes Stripe SetupIntent no-capture pre-order commitments; threshold, most-pre-ordered, guaranteed-fulfilment, direct-charge, or unphased pre-order copy is obsolete prototype copy, and Phase B checkout creates Stripe-handled charged orders and then exposes fulfilment readiness as ready-to-ship, waiting-for-missing-blocks, or waiting-for-production-readiness with no promised ship date. Mock language lists, locale and currency lists, country choices, delivery method names, moderation rerun costs, ad-boost budget ranges, and search scope labels are examples unless returned by backend configuration. Mock carrier labels, tracking stops, ETA values, refund timing, attachment limits, receipt VAT rates, return-policy snippets, report categories, claim suggestions, and message auto-replies are UI- or data-shape evidence only, supplied by order records, configuration, support policy, or moderation state before implementation uses them as production facts.
Every requirement group in this document is traced to its source mock files and to at least one acceptance scenario. A requirement review fails if any rendered entry page, user-facing component, modal, sheet, state, dashboard section, or standalone product-detail alternative is unmapped.