Douglas RichesDouglas Riches
The workshop

Work

Things I've built and shipped — for teams, for communities, and occasionally just because the idea wouldn't leave me alone on a long run.

AI · DevTools

Vor

AI · DevTools

Vor reviews pull requests the way a good colleague does — it reads the diff, thinks about intent, and leaves a small number of comments that matter. Built on the Claude Agent SDK and shipped as a GitHub Action, so adding it to a repo is one workflow file.

The hard part was restraint. Anyone can generate fifty comments per PR; the craft is deciding which three are worth a human’s attention.

TypeScriptClaude Agent SDKGitHub Actions
Web · Community

Travelling Circus

Web · Community

A running and triathlon club is a small, chaotic, wonderful organization. Travelling Circus gives it real software: member dashboards, event automation, and the kind of stats runners actually argue about over post-race coffee.

It runs on surprisingly serious infrastructure for a community project — because the community deserves software that doesn’t fall over on race morning.

TypeScriptReactNodeGKE
Design · Tokens

Design system

Design · Tokens

The Douglas Riches design system: warm cream paper, espresso ink, terracotta, and a serif reserved for the inspirational moments. DTCG design tokens compile to CSS custom properties and Flutter Dart from a single source, so platforms never drift.

It ships as a React library with Storybook and a Flutter library with a Widgetbook gallery. The site you’re reading is built from it — every button, card, and quote on this page is a system component.

Design tokensReactStorybookFlutter
Web · Astro

douglasriches.com

Web · Astro

A personal site should load like a text file and read like a magazine. This one is static Astro with the design system’s React components rendered to plain HTML at build time — no client JavaScript, no spinners, no cookie banner.

Twelve field notes migrated from Wix with their images self-hosted and optimized, plus RSS, a sitemap, structured data, and privacy-first analytics.

AstroTypeScript@driches/react
AI · Teaching

AI hackathon demo

AI · Teaching

Retrieval-augmented generation and the Model Context Protocol sound like a lot until you watch a small Python script do both. This demo strips the ideas to their working minimum so a hackathon room can fork it and start building.

PythonRAGMCP
Let's talk

Coffee's on me.

Building something warm and ambitious? Tell me about it — I read every message.