Journal
Notes onthe work.
- 2026-10-047 min
How to build a scalable css architecture with cascade layers
I organise styles around shared tokens, explicit cascade layers and narrowly scoped utilities, so routine changes don't turn into contests over selector specificity.
- 2026-10-037 min
How to animate an interface without slowing it down
I keep interface animation fast by limiting what moves, matching duration to distance, and making reduced motion part of the behaviour rather than an afterthought.
- 2026-10-037 min
How to start a small team design system with two designers
I start with one active workflow, a few shared foundations and clear ownership, leaving broad component coverage until the product gives me evidence.
- 2026-10-027 min
How to add json-ld structured data search engines can trust
I use page content, stable identifiers and release checks to keep article, product and frequently asked question markup accurate enough for search engines to interpret.
- 2026-10-027 min
What should ux discovery phase deliverables include?
I judge discovery deliverables by the decisions they change: which problem deserves attention, what evidence supports it, and what needs testing before anyone commits to building.
- 2026-10-017 min
How to keep design tokens in sync with code
I keep design tokens aligned by choosing one editable source, separating semantic names from raw values, and treating every token change as a versioned release.
- 2026-10-017 min
How to build a parametric model that survives design changes
I build change-tolerant parametric models by constraining sketches deliberately, choosing stable references, and naming the dimensions that carry design intent before adding detail.
- 2026-09-307 min
How to run a heuristic evaluation: checklist and severity
I use a task-based heuristic evaluation checklist to find usability problems, score their severity, and turn observations into fixes without mistaking inspection for user research.
- 2026-09-307 min
How to model cad parts for manufacturing, not renders
I model around the manufacturing process, then specify tolerances, draft and access so the finished part works without paying for precision it doesn't need.
- 2026-09-297 min
What website navigation structure works best for a small site?
I structure small-site navigation around recognisable labels, shallow groups, and clear routes to useful pages, rather than putting every available link in the header.
- 2026-09-297 min
Technical drawing for manufacturing: how to get a quote
I document parts around the decisions a shop must price: geometry, material, tolerances, finish, inspection and the assumptions that would otherwise trigger clarification calls.
- 2026-09-287 min
How to build a brand identity system beyond the logo
I build brand systems around repeatable decisions for marks, typography, colour and motion, then test whether someone else can apply those decisions without my help.
- 2026-09-287 min
Reliable prompt engineering: how to get consistent results
I make prompts more dependable by defining acceptable behaviour, separating instructions from inputs, validating outputs, and testing failure cases before connecting them to live automation.
- 2026-09-277 min
How to price freelance design work and charge for scope changes
I price design work around a defined outcome, a cost floor and explicit boundaries, then quote changes before they consume the project’s margin.
- 2026-09-277 min
How to pick accessible colour pairs that keep your brand
I choose accessible colour pairs by separating brand colours from functional roles, checking contrast ratios, and testing the combinations that actually appear in the interface.
- 2026-09-267 min
How to build a layout grid for columns, type and spacing
I use columns to control width, baselines to organise text, and a restrained type scale to make repeated layout decisions consistent without flattening the composition.
- 2026-09-267 min
How to design empty states that teach the next step
I design empty states around one useful action, with enough context to explain the blank screen and help someone make their first meaningful contribution.
- 2026-09-257 min
Component library versioning: how to avoid breaking teams
I treat versioning as an agreement with consuming teams, with explicit breaking changes, dated deprecations, useful release notes, and migration work that can be estimated.
- 2026-09-257 min
How to run a design to development handoff without guesswork
I treat design handoff as a small implementation contract: agreed scope, explicit behaviour, testable edge cases, and a short conversation before anyone starts building.
- 2026-09-247 min
How to prepare a cad file for 3d printing
I prepare printable models by checking solid geometry, choosing realistic wall thicknesses, planning orientation and supports, then inspecting the exported file in a slicer.
- 2026-09-247 min
How to reduce form abandonment: order, validation and recovery
I focus on field order, well-timed validation and recoverable errors to reduce avoidable exits, then measure completed submissions rather than clicks on the submit button.
- 2026-09-237 min
How to evaluate an ai feature before you ship it
I evaluate automated features with representative test cases, structured failure logs, and a completion metric that counts correction work rather than hiding it.
- 2026-09-237 min
How to choose injection moulding versus cnc for a first run
I compare first-run quantities, tooling commitments and geometry limits to decide when machining buys useful flexibility and when moulding justifies its higher upfront cost.
- 2026-09-227 min
Workflow automation versus design: which should I choose?
I compare interface fixes with automation by looking at decision quality, exception handling, maintenance cost and the work that should disappear before anything gets connected.
- 2026-09-227 min
How to serve images faster with responsive image optimisation
I treat image delivery as three decisions: which file to send, how much detail the screen needs, and when the browser should request it.
- 2026-09-217 min
How to use spacing tokens with a 4-point spacing system
I use a four-point spacing scale, shared layout rules and a small exception policy to keep design files and production layouts from gradually drifting apart.
- 2026-09-206 min
How to prioritise a backlog when everything is urgent
I use weighted scoring, explicit exceptions and a fixed capacity limit to separate urgent requests from work that deserves a place in the next delivery cycle.
- 2026-09-207 min
How to build an ai content pipeline that stays on brand
I use explicit voice rules, approved examples and automated review gates to keep generated content consistent, with human approval for claims and sensitive material.
- 2026-09-197 min
Design critique format: how to improve the work
I use a timed design critique with explicit roles, focused questions, and a decision record to turn competing opinions into changes worth making.
- 2026-09-197 min
How to build a ui type scale that survives real content
I choose type sizes around actual interface content, then test line height, text width and wrapping before turning those decisions into reusable tokens.
- 2026-09-187 min
How to choose one product success metric for a feature
I choose a feature’s accountable metric by defining the behaviour it should change, fixing the denominator, and checking the measurement before anyone gets access.
- 2026-09-187 min
How to ship accessible components with keyboard support
I build accessible components around native controls, predictable focus and documented keyboard behaviour, then test the rendered result rather than trusting the component library.
- 2026-09-177 min
How to add ai to a product without eroding trust
I treat disclosure, correction and recovery as product requirements, with practical patterns for showing what automation does and keeping consequential decisions under user control.
- 2026-09-177 min
How to design a high converting landing page without shouting
I build landing pages around a clear offer, evidence beside the relevant claim, and one action that makes sense for the visitor.
- 2026-09-167 min
How to automate client onboarding from contract to kickoff
I build client onboarding around verified triggers, recoverable actions and one human approval, with clear rules for missing information, duplicate events and failed handoffs.
- 2026-09-167 min
How to design a pitch deck that reads in 90 seconds
I build pitch decks around a short reading sequence, claim-led headlines and restrained graphics, then test what someone can recall after ninety seconds.
- 2026-09-157 min
How to improve Largest Contentful Paint: four fixes
I diagnose slow Largest Contentful Paint by separating server response, resource discovery, download time and rendering, then fixing the part that actually delays visible content.
- 2026-09-147 min
How to design readable data tables: density and defaults
I design readable tables around the comparison someone needs to make, then set density, alignment, scrolling and defaults to keep that task straightforward.
- 2026-09-147 min
Mobile first web design: layouts that work at every width
I start with content priorities, then use layout pressure, reachable controls and deliberate expansion to make mobile first web design work beyond a narrow screen.
- 2026-09-136 min
How to reduce JavaScript bundle size as a project grows
I keep growing web projects fast by budgeting initial JavaScript, splitting optional features, and checking browser work rather than trusting a smaller output folder.
- 2026-09-137 min
How to write ui microcopy that removes hesitation
I use specific labels, timely explanations and clear consequences to help people complete forms, recover from errors and make decisions without second-guessing the interface.
- 2026-09-127 min
How to set typography for reading long articles on screen
I set long-form screen typography by balancing line length, leading and paragraph spacing, then testing the hierarchy against real content and narrow screens.
- 2026-09-127 min
Web imagery art direction: how to choose meaningful images
I choose website imagery by its purpose, then test whether the crop, placement and alternative text preserve that purpose on small screens.
- 2026-09-117 min
How to map a user journey your team will actually use
I keep journey maps useful by limiting their scope, separating evidence from assumptions, and connecting each friction point to a decision someone can make.
- 2026-09-117 min
Product design brief template: six lines that reduce rework
I use six lines to agree the problem, user, outcome, time budget, boundaries and risky assumptions before design decisions become expensive to reverse.
- 2026-09-107 min
How to prepare artwork for print: colour, bleed and proofs
I treat print artwork preparation as a production check: agree the colour settings, build enough bleed, inspect image resolution and approve a proof that matches the job.
- 2026-09-107 min
How to scope an mvp without cutting its value
I scope a first release around one complete user outcome, then cut variations, automation and reach before touching the parts that make it useful.
- 2026-09-097 min
How to run a usability test with five users
I use five-person usability tests to find friction in a specific task, with a neutral script, consistent notes, and clear limits on the conclusions.
- 2025-03-101 min
The Quiet Interface
On the difference between a product that's busy and a product that's working - and why the best interfaces feel like they were always there.
- 2024-11-021 min
Design Systems Are Not the Point
Why most design systems collapse under their own weight, and what to optimise for instead.