Skip to the document
Madhuopen lab

§4 · Builds

Toward one hundred things that run.

One hundred cells. Every lit one is something built and running, or built and honestly retired. The dark ones are dark on purpose. Move over a lit cell to see what it is; open it to go there.

18built
9running now
5research projects behind them
100cells on the wall

Every build, as a list

001liveproduct

bigIndianHub

A community platform for the Indian diaspora in Kansas City — events, check-in, chat, kids' pages.

Next.jsNeon PostgresCloud RuniOS

~/apps/bigIndianHub

002liveproduct

bigImmigrationHub

Who sponsors H-1B visas, who is hiring, for Kansas City and the United States — a dashboard over the DOL disclosure files.

The first application to run entirely on HanuDB. No Postgres, no managed search — one small virtual machine and a bucket.

Next.js 16HanuDBCloud RunOpenRouter

~/apps/bigImmigrationhub

003liveinfrastructure

HanuDB

A document database with search for a free virtual machine, whose durable state lives in a cloud bucket. Formerly TwinDB.

HanuDB is a small database for people who build a lot of apps.

Every app needs somewhere to keep its data, a way to fetch it by id, a way to list it with filters and sorting, and sooner or later a search box. The usual answer is a managed MongoDB or Postgres plus a managed Elasticsearch, and the bill for those grows with every new app and with every gigabyte each app collects. HanuDB is the answer we built instead: one small binary that does documents, filters, sorting and full-text search, runs on the smallest VM Google gives away for free, and keeps the truth in a Google Cloud Storage bucket so the VM can be lost at any time without losing a write.

It costs about a cent a month in bucket operations, and it answers in well under a millisecond. It is public, with releases, a one-line installer, clients for TypeScript, Python and Swift, and nine guides; the preprint reports the 108 experiments that shaped it.

Rusttantivylsm_treeGCS

~/apps/hanudb

004supersededinfrastructure

bucketdb

The first attempt: SQLite over a bucket-backed virtual filesystem. Superseded by HanuDB, kept for the measurements.

~/apps/bucketdb

005shippedproduct

Event Scanner

QR check-in for any event: print a sheet, scan a badge, know who came.

BunDocker

~/apps/qr-code-scanner

006activeresearch

hanumemAI

Long-term memory for assistants: 96.1 on LoCoMo at 1,533 context tokens per question. Proprietary; the results are public and the library is on request.

007activeproduct

14 Peaks

Goal tracking shaped like a Himalayan expedition: fourteen summits, one route at a time.

iOSD3

private folder: 14peaks

008shippedproduct

wordstash

wordstash screenshot

Written in a hospital bed in two days, with optionmantra. A place to keep words you want to own.

~/company/blog/content/wordstash.md

009shippedproduct

optionmantra

optionmantra screenshot

The second of the two hospital apps.

~/company/blog/content/optionmantra.md

010shippedproduct

ContentFlow CMS

ContentFlow CMS screenshot

A weekend content system, deployed to Azure Container Apps.

~/company/blog/content/contentflow.md

011shippedtool

webgpullm

webgpullm screenshot

A language model running in the browser on WebGPU.

~/company/blog/content/webgpullm.md

012activetool

Experiments Lab

The notebook every experiment on this site is written into: a claim, its evidence, and a verdict.

private: the experiments lab

013shippedtool

gptimg

A command that asks the ChatGPT desktop app to draw something and saves the file, by driving its accessibility tree.

SwiftmacOS Accessibility APIone file

~/apps/gptimg

014pausedtool

whatsapp-clipper

A browser extension that clips a page into a message.

~/apps/bck/whatsapp-clipper

015shippedtool

Gobiman

A Postman collection as an interactive mind map and sequence diagram: run the requests, then search every response.

A zero-dependency local web app: clone it, run node server.js, open the browser. Every folder of Postman files is a workspace; the collection is drawn as a collapsible tree, and after a run every node carries its status, time and size. Dashed arrows show which response produced the ID that a later request hard-codes.

The same run as a client-to-API sequence diagram, grouped by folder, with loops. The inspector opens each response in a collapsible JSON viewer with search, depth, copy value and copy JSONPath; ⌘K searches request names, URLs and the full text of every response. The server binds to 127.0.0.1 only and holds tokens in memory, never on disk.

Written on 30 September and 1 October 2026; the write-up with screenshots from a run against JSONPlaceholder is on carebun.com.

Node.jsvanilla JSone HTML file

~/apps/gobiman

016livesite

carebun.com

Small apps, made with care, for the people around us: the community apps in one place.

One address for the community apps: the Reading Room, bigIndianHub, the food-line check-in, the immigration dashboard and the courses. Every app is a subdomain of carebun.com; a new one needs only a mapping.

BunHanuDBCloud Run

~/apps/carebun

017liveproduct

The Reading Room

Point it at a blog, read, quiz, and recall every day.

The standalone twin of this site's old learning pages, for anyone with an account: import a blog or a book, read a clean copy, take a quiz, recall it on a schedule, keep a notebook, and ask an assistant that quotes only what you read.

Discover holds shared shelves — Thinking in Vectors, Memory for AI Agents, the HanuDB guides, Outcome School — and a Chrome extension times reading on the article's own site.

Next.jsHanuDBOpenRouterChrome extension

~/apps/lms

018activesite

This site

One umbrella over the research, the builds, the writing, the books and the day.

Next.js 16HanuDBCloud RunOpenRouter

~/apps/my_site