01

Library

2025

Plumbline

Reads an API description and gives you a fully typed client, with retries and timeouts you can actually read.

Role

Author and maintainer

Stack

TypeScript, OpenAPI

Install

npm i plumbline

Numbers

2.6M installs a month, 38 kB, no dependencies

Why it exists

Every team I have worked on wrote the same 400 lines of glue between their API and their front end: types copied by hand, a fetch wrapper, a retry loop somebody wrote in a hurry. The types drifted, the wrapper grew, and nobody wanted to touch it.

Plumbline reads the API description you already keep, in OpenAPI or a plain YAML file, and generates a client where every call, parameter and response is typed. If the API changes, the build fails in your editor instead of in production.

What it does

The client is small on purpose: 38 kB with no dependencies. Retries use exponential backoff with jitter, timeouts are per call, and every error carries the request that caused it. You can read the whole retry policy in one screen of code.

How it went

The first release had 40 lines of documentation and 11 users. Two years on it is in about 2.6 million installs a month, mostly because the error messages are good. I spent a full month on those alone and it was the best month of the project.

mail iri

Want something like this? Tell me what it should do.

$ subscribe --notes

New notes by email, when there are any. About one a month.

Iri Halvorsen

Software engineer

Bergen, Norway

Open to work from January 2027

Colophon

Set in Geist and Geist Mono

Built in Framer

No tracking, no cookie banner

buildlog_

© 2026 Iri Halvorsen. All demo work is fictional.

exit 0

Create a free website with Framer, the website builder loved by startups, designers and agencies.