Digital Experience & Platforms
A product people use every day is judged on the hundredth interaction, not the first. We build the surface and the system underneath it, including the design system, performance budget and accessibility, as requirements rather than a polish pass at the end.
How the engagement runs
Agreed before we start, not discovered later. You own everything we produce, whether or not you continue with us.
- 01
Audit
Findings + prioritised list
- 02
Foundations
Design system + CI gates
- 03
Surfaces
Working product
- 04
Handover
Docs + editable content
- Starts with
- Audit or greenfield
- You get
- Design system + live product
- Shape
- Project or embedded team
You are probably here because
If none of these sound familiar, this may not be the practice you need. Tell us what is actually happening.
- 01
Four different button styles across the same product
- 02
A redesign that stalled because nothing was reusable
- 03
Lighthouse scores that drop every sprint
- 04
Copy changes queued behind a release
How we keep a front end from drifting
Not all four land in every engagement. We scope to what the problem actually needs.
A design system, not a style guide
Tokens for colour, type and spacing that every surface reads from, so a brand change is one commit rather than a month of find-and-replace.
Performance held by a budget
Core Web Vitals thresholds enforced in CI. A regression fails the build, rather than being discovered in a launch review.
Accessibility checked before merge
Automated axe checks plus a keyboard pass on every pull request. WCAG AA is the floor, not an audit you commission afterwards.
Content your team can change
A modelled CMS with a typed API, so marketing edits copy without a deploy and without breaking the layout.
What we can point at
Including where we cannot. An unproven claim is worth less to you than a stated limit.
Every colour pair on this site passes WCAG AA
Measured with axe across all pages, not asserted. The contrast tokens were changed until they passed.
A booking platform live for a client, end to end
Appooppanthaadi: we designed and built the website, self-serve tour booking, payments, instalments and cancellations, and the AI assistant on top.
See itThis site is the reference build
Design tokens, CI accessibility checks and the CMS model described here are the ones running on galenry.com.
Questions this answers
If you cannot answer these about your current system, that is usually where we start.
Why does the site test well but feel slow on a real phone?
How do we stop every new page drifting from the last one?
Can marketing change copy without booking engineering time?
Will this pass an accessibility audit if a client asks for one?
How the engagement runs
Indicative, not a template. The shape holds; the depth of each phase moves with the problem.
Audit
We inventory what exists, including components, page weight, contrast failures and the routes people actually use, and put numbers against the parts that are hurting.
Findings + prioritised list
Foundations
Tokens, primitives and the layout rules everything else is built from. Accessibility and performance checks go into CI before the first feature.
Design system + CI gates
Surfaces
The real pages, built against real content and edge cases rather than happy-path mockups.
Working product
Handover
Documentation your team writes against, plus the CMS models that let non-engineers ship changes safely.
Docs + editable content
What we reach for first
Not the only things we work with: the ones we default to unless there is a reason not to.
Frontend
- Next.js
- React
- TypeScript
Styling
- Tailwind
- Design tokens
- CSS layers
Content
- Payload
- Sanity
- Typed APIs
Quality
- Playwright
- axe
- Lighthouse CI
Tell us what you’re trying to build
An idea, a stalled project, or a system that has outgrown its architecture. Send it over and we’ll tell you where we would start and whether we’re the right team for it.
- Response time
- Within one business day
- First call
- 30 minutes, no deck
Prefer to write first? Send the brief and we’ll come back with questions before we come back with a proposal.