Skip to content
Naftali Lubin

Need a website? Let’s talk

Projects

Games, open-source libraries and Docker images. Download and pull counts include automated installs from CI, so one person can account for many of them.

Tools and libraries

Docker images: gh and dind-buildx

Small, multi-architecture images that other teams run in CI

maniator/gh packages the GitHub CLI; NVIDIA’s Megatron-LM and MockServer run it in their CI and release tooling. maniator/dind-buildx (also published as docker-with-buildx) is Docker-in-Docker with buildx built in. Both rebuild automatically as upstream releases ship.

About 848,000 pulls across the images, from Docker Hub’s lifetime counts (as of Oct 14, 2026)

2021–2026 · Docker, buildx bake, GitHub Actions, Alpine Linux, Trivy, hadolint.

Servable

An Observable library written from scratch

A small, dependency-free implementation of Observables, subjects and two dozen operators, written without AI. I built it from the RxJS documentation, implementing each piece to do what the docs said it should. It is the subject of two meetup talks.

About 13,700 downloads since 2017 under its two package names, from npm’s download counts (as of Oct 14, 2026)

2017–2022 · JavaScript (ES modules), Rollup, Babel, Jest, JSDoc.

react-badly

A React error boundary component

Wrap any part of a React tree so an error in one component unmounts only that part instead of the whole app, with an onError hook for reporting.

About 35,800 downloads since 2018, from npm’s download counts (as of Oct 14, 2026)

2018–2022 · React, JavaScript, npm.

serveside

Server-side rendering as a service

An Express service that lets existing sites embed server-rendered React, Vue or Svelte components, with a CLI that scaffolds the service. Written without AI and published as a monorepo of npm packages.

2020–2022 · Node.js, Express, Lerna, Jest; React, Vue and Svelte plugins.

Praetbot

A chat bot, from Slack in 2016 to Discord today

A bot with cookie karma (@user ++), dice rolls, xkcd and weather commands, and custom commands written in JavaScript by its users. It began as a Slack bot in TypeScript in 2016 and was rebuilt in 2025 as a Discord bot with a Next.js dashboard.

2016, 2025 · TypeScript, discord.js, MongoDB, Next.js, Turborepo.

Smaller and earlier work

check-source-map

Map a minified line and column back to the original source

A small CLI: give it a source map plus a line and column from a production stack trace, and it returns the matching location in the source code. Published as @serveside/check-source-map.

2022 · Node.js.

ang-datepicker

A date picker component for Angular 2

A TypeScript date picker for Angular 2, published to npm as ang-datepicker in 2017.

2017 · TypeScript, Angular 2.