// angle · 03

Care
& polish.

The stuff that compounds. Speed, accessibility, longevity.

The work most teams keep meaning to get to and never do. Performance budgets you can hold. Accessibility past the checkbox. Migrations off legacy stacks without the data-loss panic. Custom motion that doesn’t kill your Lighthouse score. Design systems that marketing and product can both ship from. The infrastructure layer that pays for itself in CDN bills.

// what you walk away with

Numbers, docs, and code that lasts.

  • Before/after performance reports (Lighthouse + WebPageTest)
  • A documented perf budget your team can hold the next dev to
  • Accessibility audit + remediated code, WCAG AA at minimum
  • Edge + hosting configuration with annotated runbook
  • Migration plan + rollback strategy when applicable

// the full breakdown

Eight things this angle covers.

Pick one and run it deep. A retainer covers ongoing care; a sprint handles a one-time pass.

  1. Core Web Vitals + performance audits

    A site that loads sub-second, scores 90+ in Lighthouse, and stays that way under real-world conditions. The audit produces a ranked fix list; remediation is a separate scoped engagement.

    What's included

    • Lighthouse + WebPageTest baseline (lab + field)
    • Bundle analysis + tree-shake opportunities
    • Render path audit (critical CSS, FOUC, blocking scripts)
    • Font + image + CSS optimization
    • Third-party script audit + tag-manager hygiene
    • Perf budget setup + monitoring

    Deliverable

    Before/after reports + ranked fix list + documented perf budget

    Typical format

    1–3 week sprint

  2. Accessibility audits + WCAG remediation

    Past the checkbox — keyboard navigation, screen reader UX, reduced motion, contrast, semantic HTML, ARIA where needed (not everywhere). WCAG AA at minimum, AAA where it costs nothing.

    What's included

    • Automated scan (axe-core, Wave, Lighthouse)
    • Manual keyboard navigation testing
    • Screen reader testing (VoiceOver, NVDA)
    • Color contrast audit + remediation
    • Semantic HTML review
    • Prioritized fix list + implementation

    Deliverable

    WCAG AA compliance report + remediated code

    Typical format

    2–4 week sprint

  3. Migrations off legacy stacks

    Off WordPress, off Drupal, off legacy PHP, off ColdFusion, off whatever you're stuck with — without breaking SEO or losing content. Parallel-run, then cutover. Never "go live and pray."

    What's included

    • Content inventory + migration plan
    • URL mapping + redirect strategy
    • Content migration scripts
    • Parallel-run testing environment
    • SEO continuity (canonical, schema, sitemap, robots)
    • 30-day post-migration monitoring + rollback plan

    Deliverable

    Migrated site + 30-day monitoring + rollback plan

    Typical format

    6–12 week migration

  4. Custom interactions + motion

    Animations that earn their bytes. WebGL, view transitions, scroll-driven storytelling — performance-aware, accessibility-respected, never gratuitous. Everything respects prefers-reduced-motion as a starting condition.

    What's included

    • Concept + storyboards
    • Asset prep + optimization
    • Implementation (Three.js, GSAP, Motion One, View Transitions API)
    • Reduced-motion fallbacks
    • Perf budget + lazy-load strategy
    • Tab-visibility + battery considerations

    Deliverable

    Working animation integrated into your site + maintenance notes

    Typical format

    2–6 week sprint

  5. Edge + hosting + caching

    The infrastructure layer most teams don't tune. Cloudflare config, edge functions, smart caching strategy, image optimization at the edge. The kind of work that quietly pays for itself in CDN bills.

    What's included

    • Hosting audit (Netlify / Vercel / Cloudflare / AWS / etc.)
    • CDN + edge tuning
    • Cache strategy design (browser, CDN, origin)
    • Edge function implementation
    • Image pipeline (AVIF/WebP, responsive srcsets, edge resize)
    • Monitoring + alerting setup

    Deliverable

    Optimized configuration + documented runbook

    Typical format

    1–3 week sprint

  6. Design systems + component libraries

    A real design system — tokens, primitives, components, documentation — that marketing and product teams can both ship from. Not a brand-book PDF. Not 200 Figma frames nobody opens.

    What's included

    • Token system (colors, type, space, radii, motion)
    • Component library (in your stack)
    • Storybook (or equivalent) for documentation
    • Accessibility contracts per component
    • Governance + contribution guide
    • Adoption rollout plan

    Deliverable

    Live design system + Storybook site + training session

    Typical format

    6–12 week sprint

  7. Ongoing maintenance retainers

    A reserved chunk of hours every month for the small things — security patches, dependency updates, new sections, performance tweaks, content edits, the things that pile up otherwise.

    What's included

    • Monthly reserved hours (5, 10, or 20)
    • Priority queue + Slack/Linear ticket flow
    • Weekly written status writeups
    • Quarterly architecture review
    • Emergency escalation path

    Deliverable

    Ongoing care + monthly written status + quarterly review

    Typical format

    5–20 hours/month retainer

  8. Branding refreshes

    When the brand needs a polish (not a full rebrand). New logo, palette refinement, typography update, identity system extensions — calibrated for digital-first applications.

    What's included

    • Audit of current state
    • Mood-board + direction exploration
    • Refined logo + brand marks
    • Palette + typography tokens
    • Identity guidelines (1-page or full)
    • Application examples (web, social, presentations)

    Deliverable

    Updated brand assets + 1-page identity guide

    Typical format

    3–6 week sprint

// how i approach this

Four working principles.

  • 01

    Measure before you fix.

    WebPageTest baseline, Lighthouse runs, real-user-monitoring data. Get the numbers before assuming. Half of perf "problems" are someone's gut feeling.

  • 02

    Fix what matters.

    A 200ms LCP win matters more than a perfectly minified bundle no one will notice. Prioritize the changes that move real metrics for real users.

  • 03

    Accessibility is a floor.

    WCAG AA at minimum. Not a feature to ship later — a starting condition. Most accessibility fixes also improve UX for non-disabled users.

  • 04

    Document the constraint.

    Every config gets a "why this number" note. Cache TTLs, image sizes, perf budgets — all annotated. The next dev shouldn't have to guess.

// frequently asked

Logistics, specifically for this angle.

  • How quickly can you turn around a performance audit?

    Audit-only: 1–2 weeks. Audit + remediation: 3–4. Emergency triage (site down, vitals tanked overnight): 24–48 hours.

  • Will you fix it or just tell me what's wrong?

    Both — separate scopes. The audit produces a ranked fix list. Remediation is a separate scoped engagement if you want it done by me; some teams take the list and run with it in-house.

  • Do you migrate WordPress to Astro / Next / headless?

    Frequently. Always parallel-run before cutover, always with a redirect strategy + SEO continuity plan. 30-day post-migration monitoring included.

  • How do you handle accessibility specifically?

    Axe automated scan, manual keyboard + screen reader testing, color contrast audit, prioritized fix list, then fixes. WCAG AA minimum; AAA in places where it costs nothing extra.

  • Do you offer ongoing retainers?

    Yes — 5, 10, or 20 hours/month. Priority queue, weekly written status, quarterly architecture review. Usually starts after a sprint and runs 3–12 months.

  • What's a realistic perf budget?

    Site-dependent, but a defensible starting point: LCP < 1.5s on 4G, CLS < 0.1, INP < 200ms, JS bundle < 100kb gzip, total page weight < 1MB.

  • Can you handle dependency updates?

    Yes — usually under the retainer. Major version upgrades (Next 14 → 15, Astro 5 → 6, etc.) are scoped as small projects if they're substantial.

// ready when you are

Let’s make it last.

A paragraph about what’s slow, broken, or due for a polish is all you need.

Start a conversation →