SayCraft

Ideas into working products

Wireframe vs Mockup vs Prototype: One Booking Page, Three Useful Deliverables

Compare a wireframe, mockup, and prototype of the same booking page. See what each answers, what to include, and how to check the result.

A wireframe helps you decide what information belongs where. A mockup lets you inspect a proposed visual treatment. A prototype lets someone attempt a task and reveals what happens after an action. Choose the deliverable for the unresolved question: you do not need to produce all three in sequence.

Start with one booking problem

Imagine a small ceramics studio offering a two-hour introductory workshop. Visitors need to choose a session, see the price, enter contact details, and reserve one place. The design problem is specific: people must be able to tell which session they are booking and recover if it fills before confirmation. We will use this worked example for all three deliverables.

Fix the same content before comparing drawings: Saturday 10:00, Sunday 14:00, $45 per person, name, email, and a Reserve a place action. A successful reservation ends with the selected date and a booking reference. A capacity rejection ends with no reservation, preserved contact details, and an explicit alternative. Keeping the task constant makes differences between the artifacts useful.

Wireframe: decide what the page must communicate

Put the workshop name and price above the session choices. Show the chosen date again beside the reservation action, so the visitor can check it without remembering the previous screen. Group name and email together because both belong to the booking, rather than scattering them between promotional sections. Those are structural decisions; they do not require a final font or palette.

The wireframe below has a session list, contact fields, and a booking summary. Use real labels even while boxes remain gray. A placeholder such as Button cannot reveal whether Reserve a place sounds like a commitment or merely opens another step. For a quick check, ask a colleague to point to the cost, available date, and information needed to continue. If they cannot, revise hierarchy before styling.

A gray booking wireframe places session choices before contact fields and repeats Saturday 10:00 and $45 in the reservation summary.
Same booking task, version 1: decide the information order.

Mockup: make the proposed visual choices inspectable

Keep the wireframe content and apply a visual treatment. In this example the selected Saturday card has both a border and a Selected label. The $45 price remains near the session summary, while the primary action has stronger contrast than the secondary Change session link. An unavailable slot needs its own treatment rather than simply a paler version of an available choice.

Now review actual typography, spacing, focus appearance, and narrow-screen wrapping. The date should remain legible at mobile width; the selected state should not depend on color alone. A polished static screen still cannot tell you whether input survives a failed request. Document that as a behavior question for the prototype rather than judging it from a screenshot.

A styled booking mockup uses a selected label and outlined session card, clear contact fields, and a contrasting reservation button.
Same booking task, version 2: review emphasis, legibility, and states.

Prototype: connect the states that decide whether the task works

Build only the branches needed to explore this booking question. Start with Saturday selected and contact fields empty. Let the visitor enter test details and submit. For one run return confirmation; for another return a full-session response. After that rejection, allow Sunday to be selected without erasing contact input, require the visitor to review the changed date, and then confirm Sunday.

The prototype may be clickable screens, paper operated by a facilitator, or code. The deciding property is that someone can attempt the sequence. It does not need live payments, a real inventory service, or production email to answer this particular question. Record which branches are simulated so collaborators know what must still be implemented.

The minimum interaction contract
Starting stateAction or resultNext state
Saturday selected; empty contact fieldsSubmit without emailExplain missing email beside its field; keep the session
Saturday selected; valid test detailsSubmitShow that the reservation is pending
Request pendingConfirmed reservation responseShow Saturday 10:00 and booking reference
Request pendingConfirmed capacity rejectionState no place was reserved; retain contact input
Capacity rejectionChoose Sunday and submit againReview Sunday, then confirm Sunday only after success
Reservation states branch from submission to confirmation or a full-session rejection. Recovery preserves contact details, asks for a new date, and confirms that date.
Prototype storyboard: include the failure and recovery, not only the happy path.

Choose the cheapest artifact that can answer the question

The names describe different jobs, not three mandatory project phases. You can sketch a structure and turn it directly into a rough interactive prototype. You can also produce a mockup of one important state while leaving the rest of the prototype visually plain. NN/g’s deliverables glossary is useful for aligning these terms with a team, but the question should decide what you produce.

Keep comparison criteria consistent: what evidence can this artifact produce, what is missing, and what would cause another iteration? Avoid deciding that a mockup is better because it looks more finished.

Question-to-artifact decision table
Unresolved questionStart withEvidence to collectWhat it does not establish
Can people find price and available dates?Wireframe with realistic labelsWhere they look and what information they missVisual polish or request behavior
Is the selected session distinct and readable?Mockup at desktop and phone widthsLegibility, emphasis, focus and state reviewWhether a reservation is saved
Can someone recover when Saturday fills?Prototype with the rejection branchActions, misunderstandings and final chosen dateProduction inventory or delivery reliability
Does the live system prevent overselling?Implemented service and integration checksConcurrent request and inventory resultsA static artifact cannot answer this

Copy the brief and check the deliverable

Use the following brief to ask a designer or an AI tool for a useful result. Replace the workshop details, but keep the question, states, and check. When reviewing the output, walk through it yourself before bringing in participants; a dead link in the test material should not become a supposed usability finding.

Brief: Create a ceramics-workshop booking prototype for a first-time visitor. Show Saturday 10:00 and Sunday 14:00 at $45 per person, with name and email. Make Saturday become full after submission. Explain the rejection, preserve contact details, and let the visitor choose Sunday. Confirm only the session selected on the second attempt. Use the attached visual mockup for appearance; include empty, pending, rejected, and confirmed states.

Give the participant a situation rather than an interface instruction: You want a workshop place this weekend and can attend either session. Arrange a place using these test contact details. Observe which date they believe they booked and what they do after the rejection. If they think Saturday was reserved, revise the feedback and rerun the same task. If the concern is visual realism rather than artifact choice, use the fidelity guide next.

References

Continue reading

SayCraft is built and operated by Ame ame. Find me on X. Questions or corrections: hello@saycraft.ai.

Explore more articles