westopp open source
Open source & products · 2026

Everything we
build, in the open.

Small, sharp tools for people who ship. Five open-source React libraries that share one design language — plus the products we run on the web.

8 projects/ 5 open source/ MIT licensed

Open Source [ 05 ]

Free, MIT-licensed, and maintained in public. Each has its own docs in its own colourway.

React · Form library v0.2.1
pgform

The bring-your-own-components form library for React. A schema-typed store with per-field reactive subscriptions — pgForm owns state, validation, formatters, and submission.

React · Table library v0.1.1
pgtable

The reactive table store for React. Store-backed and schema-typed, it owns its sort, filter, pagination, and selection state — so your components stay yours.

React · Dev tool v0.1.1 · beta
windo

The zero-infra canvas for React. Point Vite at your *.windo.tsx files and get a resizable canvas with live props, variants, contexts, and a typed state machine — no Storybook, no config sprawl.

Node · CLI · Testing v0.2.0
semtest

Semantic testing for codebases using LLM CLIs. Write specs in plain language, run them against your code, and unlock a new testing vector for your suite.

React · Component v1.0.0
react-collapsible

The CSS-first collapsible for React. Animated with CSS Grid transitions — no height measuring, no animation loops. The browser does the motion, React flips a boolean.

Projects [ 03 ]

Things we run beyond the open-source libraries.

Personal finance

Zemali

A monthly budgeting companion. Track income, savings, and expenses, see exactly where your money goes, and take the first steps toward financial freedom.

Party game

Half a Minute

A fast, friendly trivia game built for a room full of people. Set your teams, start the clock, and see who's quickest under pressure.

Free service

S.Api

A free, hosted API for the everyday building blocks an app needs — clean, well-documented endpoints you can call straight away, without standing up a backend of your own.

// sample endpoints
GET/api/v1/geo/countries
GET/api/v1/banks
GET/api/v1/currencies
GET/api/v1/username-verification/{username}