Work / Arc'teryx
A component library and Storybook, from scratch
The legacy design system had rotted past upgrading. I architected its replacement: a React component library with Storybook as the workbench and an alpha/beta/prod release pipeline.
- Role
- Architect of the new library
- When
- 2023
- Stack
- ReactTypeScriptStyled ComponentsStorybookRollupNPM
- Release channels
- alpha / beta / prod
- Measured
- Adoption and velocity impact
- Unmeasured
- Unmeasured
The situation
The existing design system could no longer be maintained. Its Node and TypeScript versions had fallen far behind, and several attempts to upgrade it had failed.
What I built
- A new React component library organised by atomic design, so primitives, composites and page sections each had a clear home and a clear owner.
- Storybook as the workbench and the documentation site: every component developed and reviewed in isolation, with its states visible to designers and product people, not only engineers.
- Rollup builds published to NPM through an alpha, beta and production release pipeline, so consuming apps could try a change before it became everyone's change.
- Alongside it, I led the new Next.js homepage architecture and the React component layer for the Content Pages app.
The people side
After the CMS migration I split the team into a design-system stream and a content stream so the library had owners rather than visitors. I also mentored two co-op engineers through the work; one was hired full-time after the term.
What I would build today
This site carries a small version of the same idea, rebuilt with what I would choose now: tokens in one JSON file generated into CSS custom properties and a Tailwind theme, so the values in Storybook, in utilities and in plain CSS cannot drift; light and dark themes from the same tokens; and the Storybook accessibility addon checking every story. It is public at /storybook.