Skip to content
Giorgi Eliadze
Projects: Epsilon Solutions

Aug 2026 – Sep 2026

Epsilon Lab

206 components for the Epsilon website, measured against Stripe and held by automated gates

  • Sites & apps
  • Component library
Duration
1 month
Company
Epsilon Solutions
Role
Owner; set the quality bar and directed the agents

Overview

A standalone Next.js app with 206 components in 23 categories, the base the Epsilon website is built from. It follows Stripe’s measured geometry, type and motion in Epsilon’s colours, and automated quality gates keep it strict enough for agents to build pages from it without drifting.

Tools

  • Next.js
  • React
  • TypeScript
  • Vitest
  • Playwright
  • axe-core
  • Claude Code

Measured, not eyeballed

The website needed a component base whose quality is measured rather than judged by eye: exact spacing and type, keyboard access, contrast, reduced motion and correct Georgian text rendering. It also had to be strict enough for AI agents to build pages from it without drifting.

Stripe’s geometry, Epsilon’s colour

The values are taken from Stripe’s own shipped CSS and dashboard code, not estimated. The contract is simple: geometry and interaction from Stripe, colour and content from Epsilon. Two token files are the only sources of colour, and a CSS gate enforces it. New components such as the menu, combobox, date picker and data table follow the WAI-APG keyboard patterns.

Gates and agents

One command runs the CSS gates, type checks, lint, the Vitest suite, the production build and a smoke pass for console, network, hydration and axe errors. In a refinement campaign each of the 206 components got its own Claude Code agent, followed by verifier agents, all under my direction. A ClickUp-style app-template pilot of 12 routes was audited until a full pass found nothing.

Result

The refinement campaign fixed 730 defects, and the test suite grew to 5,358 specs. The allowed count of axe colour-contrast findings fell from 127 to 17, all 1,420 elements are reachable by keyboard with 0 traps, idle animation dropped from 180-240 to about 0.2 frames per second, and clipped Georgian descenders went from 141 cut pixels to 0.

Projects: Epsilon Solutions