Web design
Research-led website design that turns a visitor into an enquiry — accessible, fast, and grounded in what your buyers are actually trying to do.
SBPO Consulting · Design
Most products are not badly drawn. They are badly reasoned: a flow that assumes a user already knows the vocabulary, a form that fails after submission rather than during it, an empty state nobody designed because it never appeared in the demo. We work on those first, and make the result look considered while we are there.
Where we come in
These terms get used interchangeably in proposals, which is convenient for the seller and unhelpful for the buyer, so it is worth being precise about what we mean.
UX design decides what the product does and in what sequence. Structure, flows, vocabulary, defaults, permissions, what happens when something fails, and whether a proposed feature should exist. It is mostly thinking, and its artefacts are cheap: diagrams, sketches, a written argument.
UI design decides how all of that is presented. Layout, typography, colour, spacing, motion, the behaviour of an individual control, the difference between a button that feels pressable and one that does not.
Product design is the term for doing both with commercial context attached — which is what most engagements actually require, because a beautifully resolved screen that solves the wrong problem is still a wasted month.
The distinction matters when you are buying. A firm proposing “UI design” for a product with a broken signup flow is proposing to repaint a room with a structural problem. A firm proposing six weeks of research for a five-screen internal tool is proposing something equally disproportionate in the other direction.
The symptoms are usually operational before they are visual.
Support answers the same question repeatedly and everyone privately agrees the answer should be in the interface. Onboarding requires a call from your team, which was manageable at forty customers and is now a growth ceiling. Sales demos skip a particular screen. Analytics shows a clean drop at one step and nobody can explain it. New features make the product harder to use because there is no longer an obvious place to put anything. Or the product is genuinely more capable than a competitor and loses the evaluation anyway, which is almost always a legibility problem rather than a capability one.
None of those get fixed by a visual refresh. They get fixed by working out what people are trying to do and where the product stops them.
Research has a bad reputation in some companies, generally because someone once commissioned six weeks of it and received a deck that changed nothing. The corrective is not to skip research; it is to size it to the decision it informs.
We start with evidence you already own, because most organisations are sitting on far more than they think. Support tickets and their categories. Sales call recordings. Churn and cancellation reasons. Session recordings and heatmaps from a tool such as Hotjar. Search logs, which are the most underrated source in the list — what people type into your own search box is a direct statement of what they expected to find and did not. Analytics tells you where people stop; it will never tell you why, and treating a funnel chart as an explanation is the most common analytical error in product work.
Then we close the specific gaps. Usually that means a small number of task-based interviews: watching someone attempt a real job in the real product, rather than asking them what they would like. People are unreliable narrators of their own behaviour and entirely reliable demonstrators of it. Where the question is about structure rather than behaviour, card sorting generates candidate groupings and tree testing evaluates whether a proposed hierarchy actually lets people find things — two methods that are frequently confused and do opposite jobs.
A heuristic review runs alongside all of this: an expert pass over the interface against Nielsen’s ten usability heuristics — visibility of system status, match with the real world, user control, consistency, error prevention, recognition over recall, and the rest. It is cheap, it finds a great deal, and it is not a substitute for watching a real user, because an expert knows too much to get lost.
The step teams skip is the one between research and design: writing down, in plain language, what problem is being solved.
We prefer to frame this as the job the user is trying to get done rather than as a feature request, because feature requests arrive pre-solutioned. “Add a bulk export button” is a solution. “Finance needs last month’s numbers in their own spreadsheet before the fifth working day” is a problem, and it has several possible answers, one of which might be that the report should have been emailed automatically and nobody should be exporting anything.
Personas are useful here and frequently misused. A persona that records real differences in goals, context and constraint is a working tool. A persona with a stock photograph, an invented name and a paragraph about weekend hobbies is set dressing, and teams are right to ignore it.
Information architecture is where most large products go wrong, and it goes wrong slowly. Each feature is added in a reasonable place given what existed at the time, and after three years the navigation reflects the order things were built rather than how anyone thinks about them.
Restructuring is uncomfortable because it changes something users have already learned, so it needs evidence rather than opinion — which is precisely what tree testing provides. It is also cheap to test: participants attempt to locate things in a text-only hierarchy with no visual design to compensate for a bad label.
Flows come next, and the part that matters is the part usually left undrawn. Every flow has a happy path that gets designed and a set of failure paths that do not: the payment declined, the session expired mid-form, the file too large, the invitation to an account that already exists, the permission the user does not have. Those moments are where trust is won or lost, and they are cheaper to design than to discover.
Only then do wireframes get made — deliberately rough, because their job is to settle hierarchy and content priority while the artefacts are still cheap to throw away. Arguing about a layout in low fidelity takes an hour. Arguing about it after the visual design exists takes a fortnight and someone’s pride.
When the structure is settled, the visual work has something to be good at.
The parts we spend disproportionate time on are the ones that decide whether a product feels solid: a type scale that stays readable at the sizes real content demands, spacing rhythm that survives a translated string, focus states that are visible against every background they appear on, and motion that clarifies what just happened rather than decorating it.
And states. Every screen has more of them than a design file usually contains: default, loading, empty on first use, empty because a filter matched nothing, partial data, error, permission denied, offline, and content that is far longer than anyone anticipated. The empty state at first use is arguably the most important screen in any product, because it is the one every new user sees and the one most often left as a blank panel with a grey icon.
If a state is not designed, engineering will invent it under time pressure, and it will be the state your user encounters on the day something goes wrong. That is when they decide whether your product is trustworthy.
A clickable prototype settles arguments that a static file cannot. It is also the cheapest way to find out that a flow which reads perfectly well is confusing to operate.
On sample size, the practical answer is smaller than most people expect. Nielsen Norman Group’s finding, which has held up across decades of practice, is that about five participants reveal roughly 85 per cent of usability problems, and that three rounds of five will improve a design more than a single round of fifteen — because the improvement comes from redesigning between rounds, not from the report. The important caveat: that applies to one user group doing comparable tasks. Two genuinely distinct audiences need a small round each.
Sessions are task-based. We ask people to do something and watch what happens, rather than showing them a design and asking what they think. Opinions about interfaces are cheap and unreliable; failures are neither.
Accessibility is a design decision long before it is a development task, and treating it as a pre-launch audit is how it becomes expensive.
The measurable floor is WCAG 2.2 at level AA. In design terms that means contrast of at least 4.5:1 for body text and 3:1 for large text and interface components, with large text defined as 18pt, or 14pt bold. It means pointer targets of at least 24 by 24 CSS pixels unless the spacing exception applies. It means a visible focus indicator on everything interactive, no meaning carried by colour alone, and a heading structure that describes the page rather than sizing the text.
For anything custom — a combobox, a tab set, a date picker, a tree view — we specify behaviour against the ARIA Authoring Practices Guide, which defines the expected keyboard interaction and semantics for each pattern. This is the difference between a component that is technically labelled and one that a screen-reader user can actually operate.
The economics are simple. Changing a contrast-failing colour in a token takes a minute. Changing it after two hundred screens exist takes a sprint and a regression cycle. The same principle applies across the whole build, which is why we would rather constrain the palette early than negotiate it late.
A design system is what stops a product drifting. Without one, the next screen is designed from scratch by whoever is available, and consistency decays at a rate proportional to team size.
At minimum a system is: tokens for colour, type, spacing, radius and elevation; components with every state documented; content rules for labels, errors and empty states; and a short set of decisions about when to use which. We export tokens in the Design Tokens Community Group format so the same values can drive Figma, a Storybook library and the production code without three people maintaining three copies of the same hex value.
The common failure is not the absence of a system but an over-built one: hundreds of components, elaborate documentation, and a team that quietly ignores it because it does not match what they need to build. Start with what is being used repeatedly, document that properly, and grow the system from real demand rather than from an inventory exercise.
Handover as a file transfer produces implementations that are subtly wrong everywhere. Handover as a conversation produces the product you designed.
Practically: a walkthrough with the people building it, specifications that answer the questions they will actually have — what happens on a slow connection, what the maximum content length is, which spacing value is intentional and which is incidental — and a design QA pass against the running build before release, not after. That pass includes keyboard traversal and a screen reader on the real interface, because a Figma file cannot tell you what gets announced.
Where we are also building the product, this is simply how the project runs. Where an in-house team is implementing, the handover pack is written for exactly that, and we would rather answer questions for a month than have the system abandoned quietly in the third sprint.
The measure has to be agreed before the work starts, or every result becomes debatable afterwards.
What to measure depends on the product: task success rate in a moderated test, completion through a defined funnel, time to first successful action, support contacts about a specific flow, activation, or retention at a set interval. For perceived usability, the System Usability Scale produces a comparable 0–100 score from ten questions and has enough published benchmark data behind it to mean something when compared across studies — Nielsen Norman Group cites an average of 68 across 500 studies, which is a useful reference point precisely because it is not flattering.
Where traffic supports it, an A/B test answers the question outright and should be preferred to inference. Where it does not — most B2B products, most internal tools — a small moderated benchmark before and after is honest, provided you say plainly that it is directional. What we will not do is show a before-and-after screenshot next to a number that moved and imply the two are related.
Design rarely arrives on its own. If the thing being designed is a marketing site whose job is to persuade rather than to be used repeatedly, web design is the right discipline and the definition of success is different. If the product is an application people sign into, the design work usually runs alongside application development so that flows, states and permissions are settled once rather than twice. If it is a phone app, platform conventions do a lot of the work and mobile development brings its own constraints on gestures, notifications and store review. And if you need the brand assets that sit around the product — identity, collateral, decks — that is graphic design, a related craft with a genuinely different method.
If you are not sure which of those you are actually buying, describe the problem and we will tell you, including when the answer is that you do not need us yet.
Scope
Every engagement is scoped in writing before it starts. These are the artefacts that leave our hands and become yours.
What we heard, what the analytics corroborate, where users actually stop, and which of those findings are worth designing against. Written so a stakeholder who attended none of the sessions can read it in ten minutes and argue with the conclusions.
A structure for the product's content and functions, validated with card sorting or tree testing where the stakes justify it, plus flow diagrams for the journeys that matter — including the error and recovery paths that usually go undrawn.
Hierarchy, content priority and interaction resolved before any visual decisions are made, so arguments about what matters most on a screen happen on cheap artefacts rather than on finished designs everyone has become attached to.
High-fidelity screens in Figma covering default, loading, empty, partial, error, success, permission-denied and offline where relevant. The states nobody draws are the states engineering invents at three in the afternoon, and they are what users remember.
An interactive prototype at the fidelity the question requires — enough to run a usability session, demonstrate a flow to stakeholders, or settle an internal disagreement without writing code first.
Session recordings or notes, the tasks people failed and how, severity ratings, and a list ordered by impact against effort rather than by how easy each item is to change.
Colour, type, spacing, radius and elevation as tokens, plus components with their states, behaviour, content rules and accessibility notes. Built so a developer can implement from it and a designer can extend it without asking permission.
Focus order, landmark structure, heading hierarchy, accessible names for icon-only controls, keyboard behaviour for every custom component, and measured contrast for every text and background pair against WCAG 2.2 AA.
Specifications, exported assets, motion notes with durations and easing, a walkthrough with the people building it, and a review pass against the running build before release rather than a week after it.
How it runs
Before any research, we write down what the design is supposed to change — activation rate, support contacts about one flow, time to first successful action, completion of a specific task. Design without a stated target becomes an argument about taste, and taste arguments are won by whoever is most senior.
Interviews with real users, a read of what analytics and session recordings already show, a heuristic review against the Nielsen Norman Group heuristics, and a competitive walkthrough. Five well-run interviews usually beat a fifty-response survey for the questions design needs answered.
Findings become a small number of clearly stated problems, framed as the job the user is trying to get done rather than as a feature request. This is the step teams skip, and skipping it is why products accumulate features that individually made sense.
Information architecture first, validated with tree testing where navigation is the suspected problem. Then flows including failure paths. Then wireframes. Visual design comes last because it is the most expensive thing to redo and the easiest thing to fall in love with.
A clickable prototype in front of people who resemble your users, doing tasks rather than giving opinions. Small rounds repeated beat one large round, because the point is to change the design between rounds rather than to produce a comprehensive report at the end.
The patterns that tested well become documented components and tokens. This is what stops the product drifting: the next screen is assembled from decisions already made and tested, rather than redesigned from scratch by whoever happens to be free.
Handover is a conversation, not a file transfer. We review the implemented interface against the design, check keyboard and screen-reader behaviour on the real thing, and answer the questions that only appear once real data is in the layout.
Tooling
We pick tools for the problem, not for the résumé. Where a platform is a poor fit we will say so before you have paid for it.
Non-negotiables
These are checkable. Ask us to demonstrate any of them on your own project before you sign anything.
Loading, empty, error, partial data, permission denied, offline and the longest realistic content. If a state is not in the design, it will be invented during the build, and it will be the one the user sees on their worst day.
Contrast is measured when the palette is chosen. Focus states are drawn when components are designed. Keyboard behaviour is specified for every custom control. Retrofitting accessibility after two hundred screens exist costs an order of magnitude more.
The team that built something cannot see it any more. Every substantial flow is put in front of people who resemble your users before it ships, and we report what they failed at rather than what they said they liked.
No lorem ipsum, no perfectly sized names, no photograph that happens to be exactly the right crop. Designs made against idealised content break the moment they meet a fourteen-word product title or a customer with no avatar.
Figma files, tokens, documentation and research artefacts are yours at handover, with no licence conditions and no dependency on us to make the next change.
Questions
UX design decides what the product should do and in what order — structure, flows, terminology, what happens when something goes wrong, and whether a feature should exist at all. UI design decides how that is presented: layout, type, colour, spacing, motion and the behaviour of individual controls. A product can have excellent UI and terrible UX, which is what you are looking at when something is beautiful and nobody can finish a task in it. The reverse also exists and is usually a startup that works well and looks untrustworthy. In practice they are done by overlapping people and separating them cleanly in a proposal is often a sales device rather than a method.
Either, and we would rather use what you already have than bill you to rediscover it. Most companies are sitting on more evidence than they realise: support tickets, sales call recordings, churn interviews, session recordings, search logs and the questions your own team is tired of answering. We start there, identify what is genuinely unknown, and only then propose research to close those specific gaps. Where research is needed it is usually a small number of task-based interviews rather than a large study, because design questions are answered by watching people attempt things, not by asking them to predict their own behaviour.
Fewer than most people expect. Nielsen Norman Group's long-standing finding is that around five users surface roughly 85 per cent of usability problems in a design, and that three rounds of five is a better use of the same budget than one round of fifteen — because the value is in changing the design between rounds. The caveat is that this applies to one user group performing comparable tasks. If you serve two genuinely different audiences, say clinicians and administrators, you need a small round for each rather than a mixed group of five. Quantitative questions, such as whether variant A converts better than variant B, need entirely different sample sizes and should be answered with a different method.
It depends on how many people will touch the interface and for how long. A design system earns its cost when more than one person designs or builds screens, when the product will keep growing, or when consistency has already started slipping. For a small product with one designer and a stable feature set, a documented set of tokens and a dozen components is enough and a full system is indulgent. The failure mode we see most often is not the absence of a system but a system built too early and too elaborately: hundreds of components, extensive documentation, and a team that ignores it because it does not match what they actually need to build.
By treating it as a set of constraints on the design rather than a test applied afterwards. Contrast ratios are checked when the palette is chosen — 4.5:1 for body text and 3:1 for large text and interface components under WCAG 2.2. Focus indicators are drawn as part of every component, not left to the browser default. Target sizes and spacing are set with pointer accuracy in mind. Custom components — comboboxes, tab sets, date pickers, disclosure widgets — are specified against the ARIA Authoring Practices Guide so their keyboard behaviour and announced roles are defined before anyone writes them. This is also simply cheaper: fixing a contrast failure in a token takes a minute, and fixing it across a built product takes a sprint.
Usually, and it is often the better option. A redesign resets everything a user has already learned, which imposes a real cost on your existing customers that a proposal rarely mentions. Where a product has a sound structure and specific broken flows, targeted work delivers more for less: fix onboarding, rework the one screen that generates support contacts, make errors recoverable, remove the three steps nobody needs. We will tell you when the structure is genuinely beyond patching — normally when the information architecture no longer matches what the product has become — but that is a smaller share of cases than the industry likes to imply.
By agreeing the measure before the work starts, which is the part that usually gets skipped. Depending on the product that might be task success rate in a moderated test, completion rate through a specific funnel, time to first successful action, support contacts about a named flow, or retention at a defined interval. For perceived usability, the System Usability Scale gives a comparable score from ten questions and has enough published benchmark data to be meaningful across studies. Where traffic allows, an A/B test settles the question outright. What we will not do is present a before-and-after screenshot and imply causation from a number that moved for other reasons.
Adjacent work
Research-led website design that turns a visitor into an enquiry — accessible, fast, and grounded in what your buyers are actually trying to do.
Custom web application development for SaaS products, customer portals, dashboards and internal tools — with the scope discipline that decides whether a first release ships at all.
Native and cross-platform apps for Android and iOS, scoped honestly, designed to platform conventions, and maintained through the OS releases and store deadlines that arrive every year.
Design
Send us the problem, the constraint and the deadline. You will get a considered reply from someone who would actually do the work — not a templated proposal.