Experience & Design
Design connected from the user to the shipped pixel
A designer does many jobs: mapping journeys, framing the real problem, sketching concepts, building prototypes, running tests, codifying a design system, and holding the brand. In most teams each of those jobs lives in a separate tool that references none of the others, so the journey maps a persona research never confirmed, the prototype tests a hypothesis strategy never set, and the design system drifts from the flows it is meant to serve. UPG holds the whole arc as one graph: a stalled journey step becomes a framed opportunity, a concept becomes a tested prototype, and a tested prototype becomes a systematised, accessible component that ships, each step linked to the one before it.
“When we consider more than one option, we make better decisions.”
The journey, mapped onto the persona who walks it
The work begins with the journey. A user journeyuser_journeyAn end-to-end map of a user experience contains ordered journey stepjourney_stepA single step in a user journey nodes and maps the canonical personapersonaAn archetype representing a user segment who walks them, so the experience under design is the same user the strategy named and research confirmed, rather than a fresh archetype invented for the workshop.
Because the steps are typed and ordered, a friction point is a node. The step where activation drops is a place in the graph that links forward to the work that addresses it. That node is the anchor the rest of the design work hangs from.
user_journeyAn end-to-end map of a user experienceA journey contains ordered journey steps and maps the persona who walks it. So the friction point is a node, not a sticky note: the step where activation drops links to the opportunity that fixes it and the design concept that tries to.
From a friction point to a framed opportunity
Framing is a chain of edges. A friction step reveals a needneedA user need, pain, desire, or constraint; the need is measured by a desired outcomedesired_outcomeWhat the user hopes to achieve; the gap in that outcome reveals an opportunityopportunityA validated gap worth solving. The path from a symptom to a problem statement is recorded rather than asserted.
The opportunity a designer pursues points back to the journey step that raised it and forward to the solutions that address it. The reason behind a redesign stays attached to the work, traceable in both directions.
where the journey stallsjourney_stepA single step in a user journeyneedA user need, pain, desire, or constraintdesired_outcomeWhat the user hopes to achieveopportunityA validated gap worth solvingDesign starts where the experience breaks. A friction point is not a sticky note; it is a journey step that reveals a need, which is measured by a desired outcome, whose gap reveals the opportunity worth solving. The problem the designer takes on traces straight back to the moment in the journey that raised it.
Several concepts per opportunity, each one kept
An opportunityopportunityA validated gap worth solving explores via several design conceptdesign_conceptA possible design direction or approach nodes, and each concept is sketched in a wireframewireframeA low-fidelity structural layout and realised as a user flowuser_flowA navigation path through the product. The divergence is captured as typed nodes rather than left in a file.
A concept the team parks stays in the graph, linked to the opportunity that prompted it. A good idea that was early rather than wrong can be found again, since the branch that did not ship is recorded next to the one that did.
opportunityA validated gap worth solvingdesign_conceptA possible design direction or approachdesign_conceptA possible design direction or approachwireframeA low-fidelity structural layoutuser_flowA navigation path through the productDivergence is captured, not lost. An opportunity explores via several design concepts, and each concept is sketched in a wireframe and realised as a user flow. The exploration lives in the graph as a branch from the problem, so a parked idea can be found again instead of disappearing into a Figma archive.
The prototype, tested against a hypothesis
A design conceptdesign_conceptA possible design direction or approach is realised as a prototypeprototypeAn interactive mockup for testing, and the prototype carries its evidence. It simulates a screenscreenA distinct screen or view in the product, tests a hypothesishypothesisA testable belief about a solution, validates a featurefeatureA product capability or feature, and is annotated with the annotationannotationA note or markup on a design artifact it draws.
The question “did the design work?” resolves to the result recorded on those edges. A failed test is a learning linked to the concept that prompted it, so the next iteration starts from what the last one found.
design_conceptA possible design direction or approachprototypeAn interactive mockup for testingscreenA distinct screen or view in the producthypothesisA testable belief about a solutionfeatureA product capability or featureannotationA note or markup on a design artifactThe prototype does work, not decoration. It simulates the screen, tests a hypothesis, validates a feature, and is annotated with the feedback it draws. So “did the design work?” is answered with evidence on an edge, and the annotation that flags a problem is linked to the exact artifact that caused it.
The design system, from token to component
A design systemdesign_systemThe root design system entity contains design componentdesign_componentA reusable UI component nodes, defines design tokendesign_tokenA design token (colour, spacing, typography) nodes, and is codified in design guidelinedesign_guidelineA design usage guideline nodes. It is part of the same graph as the product, scoped to the parts meant to scale across screens.
One component carries the whole chain: styled by a token, conforming to an accessibility standard, implementing the featurefeatureA product capability or feature it ships, and consuming the serviceserviceA deployable service or microservice behind it. When a token changes, the graph names every component, feature, and screen it touches, so the blast radius of a design-system change is a traversal rather than an estimate.
design_systemThe root design system entitydesign_componentA reusable UI componentdesign_tokenA design token (colour, spacing, typography)interaction_specA specification for an interaction behavioura11y_standardAn accessibility standard (WCAG, Section 508)featureA product capability or featureserviceA deployable service or microserviceThe design system is not a separate artifact; it is the same graph, zoomed in. A system contains components, defines tokens, and is codified in guidelines. Then one component carries the whole chain: styled by a token, conforming to an accessibility standard, implementing the feature it ships, and consuming the service behind it. Change the token, and the graph names every component, feature, and screen it touches.
The brand the system carries, the standards it meets
A brand identitybrand_identityThe root brand identity entity is coloured with its brand colourbrand_colourA brand colour definition, typeset with its brand typographybrand_typographyBrand typography specifications, and speaks with its brand voicebrand_voiceBrand voice and tone guidelines, all linked to the design system that carries them.
Accessibility is recorded on an edge. A design componentdesign_componentA reusable UI component conforms to an accessibility standard as a typed relationship, so “what fails AA?” resolves to a query over the graph at any time, rather than a once-a-year audit retrofitted before launch.
brand_identityThe root brand identity entitybrand_colourA brand colour definitionbrand_typographyBrand typography specificationsbrand_voiceBrand voice and tone guidelinesbrand_logoA brand logo or markdesign_componentA reusable UI componentBrand is expressed, not appended. A brand identity is coloured with its palette, typeset with its type, and speaks with its voice, all linked to the design system that wears them. And every component conforms to an accessibility standard as a typed relationship, so “what fails AA?” is a query, not an annual audit.
Experience and design links in both directions: back to the user it serves, and forward to the build that ships it.
Journeys, concepts, prototypes, design systems, components, and tokens, with every property and edge.
The persona a journey maps and the need a journey step reveals.
The service a component consumes and the feature it implements.