Frederick Sona
HomePortfolio › Prototype
UX · Digital project

Prototype

Figma interactive. Summary of the project, the stack, and the design decisions.

A prototype is where a static design finally has to justify itself. The screen below is the annotated invoice detail from the Ledger prototype, with the click hotspots marked and interaction notes running down the side. Each red-outlined region is a tappable area, each numbered dot pairs with a note in the column.

← Invoices Invoice #2026-042 Send BILLED TO Powerhouse Studio accounts@powerhouse.co DUE Nov 12, 2026 14 days Brand system exploration $3,200 Landing page design $1,800 Component library $2,400 Subtotal $7,400 Tax $0 Total $7,400 Record payment Download PDF Duplicate Delete 1 2 3 4 5 6 7 INTERACTION NOTES Invoice detail · v0.4 1 · Back to invoices Returns to filtered list. State preserved. 2 · Send Opens modal with recipient + note. Confirmation email fires on submit. 3 · Line item row Hover: reveal edit and remove. Click: inline edit, no modal. 4 · Record payment Opens drawer with amount, date, and note. Status updates on save. 5 · Download PDF Streams generated PDF. No refresh. 6 · Duplicate Copies to new draft. Opens edit view. 7 · Delete Confirm modal. Soft delete, 30 day recovery from trash. Full clickable Figma at figma.com/proto/ledger
Ledger · annotated prototype · invoice detail with hotspots and notes

What a prototype resolves

Wireframes settle layout. Visual design settles brand. Prototypes settle behaviour. The hotspots on the screen show which parts of the interface are actually reachable in the current version, and the notes column tells engineering what happens when the user gets there.

The notation on the right

Every hotspot on the left is a numbered dot. The dot corresponds to a block in the notes column. Each note answers three questions: what opens, what state changes, and where the user lands after. Vague notes like "goes to modal" get rejected during review because they leave too much for engineering to guess. Specific notes let a developer build without a follow-up meeting.

Why the prototype is not the design file

The design file is the source of truth for pixels. The prototype is the source of truth for flow. Keeping the two separate stops the prototype from turning into a graveyard of half-finished screens whenever the visual design iterates. The prototype references frames from the design file, but its structure lives in a dedicated FigJam board.

The one interaction that always gets missed

Empty state. Prototype reviews tend to focus on the loaded state because that is what the wireframe drew. The prototype forces the design to answer what happens when there are no invoices, when the search returns nothing, when the network fails. Every prototype I ship has at least three empty and error states drawn alongside the primary screens.

Design decisions

The stack

Tool
Figma prototype mode for interaction. FigJam for the notes overlay.
Testing
Maze for unmoderated usability, five participants per iteration.
Handoff
Live prototype URL in the engineering ticket plus a static annotated PDF.
Portfolio artifact. Ledger is a fictional invoicing app.

Want a similar project built or reworked? Tell me what you are trying to move.

Start a conversation
← Back to portfolio