This page applies Jakob Nielsen's ten classic usability heuristics to every screen in DomiDo at the specification level. Each heuristic is described, the positive evidence in the design is summarised, and the issues found during examination are listed with their severity. Every finding is resolved in the current design; this page records the present state — what the design does well, and what it does deliberately to avoid each heuristic violation. Findings are rated on a four-point scale: cosmetic issues need not be fixed unless time permits, minor issues have low priority, major issues are important to fix, and catastrophic issues are imperative to fix before release. Every catastrophic and major finding has been addressed; the sections below record the satisfied state.
The design always keeps users informed about what is going on through appropriate feedback within reasonable time. The twelve-stage pipeline processing screen is the strongest implementation: a vertical stepper with named stages, green checkmarks for completed stages, a spinner for the current stage, and Server-Sent Events for real-time updates. File upload uses a determinate progress bar with percentage and megabyte progress and a cancel button. Order tracking and return status mirror this with their own timeline steppers. The cart badge provides persistent feedback on cart contents.
For Artificial Intelligence (AI) generation — historically the weakest wait state — the design uses a staged animation with an elapsed-time counter, "fun facts" for waits exceeding thirty seconds, and provider-fallback messaging when a generation cascade triggers an alternate provider. Three-dimensional model generation uses a countdown timer with stage descriptions. Per-projection generation has the same staged feedback. The Assembly Viewer's initial three-dimensional model load shows a branded loading screen with progress. Admin dashboards load progressively: metric cards first, then tables, then charts, each with its own skeleton. There are no blank dashboards. The "AI In Progress" status badge on My Designs gives a customer a clear indicator that their abandoned AI-mode design can be resumed.
The design speaks the user's language. Pipeline stage names are human-readable ("Importing your model", "Repairing geometry", "Planning assembly sequence", "Mapping the block layout") rather than technical identifiers. Product names use familiar gardening terms — Garden Border, Raised Bed, Privacy Screen, Heat-Pump Cover, Wheelie-Bin Shelter. Return reasons use plain language. The Mode Selector labels avoid jargon. The "Upload Your File" option speaks plainly to the upload mode rather than assuming the user knows what a three-dimensional model file is. Three-dimensional provider selection uses outcome-based labels — "High Quality (recommended, around sixty seconds)", "Fast (around thirty seconds)", "Detailed (around ninety seconds)" — rather than infrastructure names. Solver options describe outcomes, not algorithms.
Users have clearly marked emergency exits at every step. The upload screen has a cancel button. Stripe checkout supports cancellation back to the cart. Design Review offers Save Design, Share Preview, and Publish to Gallery as alternatives to ordering. The Return Request has a cancel option. Every processing screen — pipeline, AI generation, three-dimensional generation, projection workflow — has a cancel control with a confirmation dialog so a user is never trapped in a long-running operation. Previously approved projections in the AI-mode workflow can be tapped to un-approve and re-generate. Cart item removal uses a swipe gesture but is paired with a five-second undo toast that delays server commitment, so an accidental swipe is reversible. The Order Confirmation includes a "Continue Shopping" call-to-action so the user has an obvious next step after a purchase.
The tab bar follows iOS and Android conventions: five tabs with both icons and labels, standard badge patterns, the system safe-area inset respected. Open Authorisation sign-in uses standard provider buttons with recognised logos. Bottom-sheet modals follow platform conventions. The same commercial action uses the single label "Add to Cart — [price]" everywhere — never "Order This Kit", "Buy This Kit", or "Place Order". Status badges follow one semantic palette across every surface: green is final positive (Ready, Delivered), blue is active (Processing, Shipped), amber is waiting (Pre-ordered), red is negative (Failed, Cancelled), purple is social (Published). Every wait state uses one of the unified loading patterns — determinate progress bar, twelve-stage stepper, staged animation, or skeleton — chosen by duration and content type rather than ad hoc invention. Back-button availability during processing follows one rule: every processing screen has a cancel control with a confirmation, never a silent trap. The transition from customer to admin context uses a branded "Admin Mode" banner so the change is announced, not implicit.
Client-side file validation catches invalid format and oversize uploads before they begin. Pre-order cancellation requires a confirmation dialog with an optional reason. Account deletion requires typing "DELETE" as confirmation — the strongest pattern available. The upload pipeline auto-retries with exponential backoff for transient failures. The credit-sufficiency gate on the Mode Selector tells the user the AI-mode pipeline costs around thirteen credits and warns them if their balance is lower; they can still proceed with informed consent but they are never invested before they are told. The same persistent credit balance with cost breakdown sits inside the projection workflow so a user does not invest fifteen to thirty minutes in projection approvals before discovering they cannot fund the next step. Every action button enters a Submitted state on tap (spinner replaces label, pointer events disabled) and every mutating request carries an idempotency key so a double tap is safe. The cart pre-validates the United Kingdom delivery region before redirecting to Stripe.
Gallery search supports three input modalities — text, voice, image — so users recognise rather than recall what they want to find. The projection workflow's eight-thumbnail grid keeps every approved view in sight so the user does not have to remember which angles they have done. Design Review pairs the Bill of Materials with the three-dimensional viewer so every decision-relevant piece of information sits on one screen. Example prompts on the AI Prompt screen reduce the recall burden of "what should I write". The Mode Selector surfaces in-progress designs with a "Resume your design" card so the user does not have to remember to navigate to My Designs. The credit balance shows the contextual cost ("you have fifteen credits, this will use thirteen") next to the Generate button. My Orders cards carry a design thumbnail so a user recognises the order at a glance instead of recalling order numbers.
Accelerators exist for expert users without distracting newcomers. The solver quick-switch on Design Review lets advanced users re-optimise without restarting. Voice and image search expand input options. The auto-generate-remaining-views accelerator inside the projection workflow appears above the fold after the first approval — saving fifteen to thirty minutes on the AI-mode path for the user who finds it. The admin dashboard provides keyboard shortcuts: command-K for global search, J and K for vertical list navigation, E for edit, A for approve. Tables support sorting, filtering, and column-resize. The gallery supports saved searches and quick-filter presets.
Every screen contains only what advances the user's current decision. Design Review collapses secondary information (solver selector, re-optimise history, detailed Bill of Materials) into expandable sections; the primary purchase decision sits above the fold with the price and the sticky call-to-action. Admin dashboards group widgets by frequency of use, not by data type. The visual system uses a three-note colour signature (sage, terracotta, gold) with restrained typography and a single shadow scale; nothing competes for attention except the next decision the user has to make.
Error messages are written in plain language, identify the problem precisely, and offer a constructive next step. A pipeline failure shows a stage-specific message and three actionable suggestions — repair the mesh, simplify the model, or reduce triangle count — with "Try Again", "Upload Different File", and "Go Home" controls. An AI generation failure distinguishes a platform outage from a safety filter trigger and offers the appropriate recovery for each. A price-calculation error gives the user a "Save design and notify me" option rather than dead-ending the flow. Gallery search distinguishes "no results" from "search error". A WebGL failure on Design Review falls back to a Bill-of-Materials text summary so the user can still proceed.
In-context help appears where it is needed rather than as a separate manual. A first-time gesture-guide overlay teaches the three-dimensional viewer controls (drag to rotate, pinch to zoom, tap blocks for details) and dismisses after the first interaction; it appears on every three-dimensional viewer instance. The projection workflow opens with a brief explanatory panel: "We need eight views of your design to build an accurate three-dimensional model. Approve each view, or let us auto-generate the rest." Unusual angles (top, bottom) carry visual reference examples. The subscription screen explains the credit economics — how many credits each step uses and when the balance refreshes.
The original examination found thirty-eight heuristic violations across the ten heuristics. Four were catastrophic, twenty were major, twelve were minor, and two were cosmetic. The dominant categories were system status (mostly AI- and three-dimensional-generation wait feedback), consistency (purchase labels, status badges, loading indicators), and error prevention (credit gating, double-submission). Every finding is now satisfied at the specification level by the design choices summarised above.