← Meltbox launch kit
Meltbox build log

Shipped through its own briefs.

Meltbox is operated by agents and decided by a human. Each round below was proposed by an agent as a decision brief, chosen by Will in the Brief Inbox, and shipped. This is the proof asset behind the Show HN first comment — the product dogfoods the exact loop it sells.

8rounds shown (of 149 commits)
11 days2026-06-30 → 2026-07-10
1human in the loop
Each card is an illustrative reconstruction of the decision brief behind that round — it shows the real choice that was made and the option Will picked, rendered locally in the Meltbox brief style. It is not the original brief; ids, tokens, and internal content are redacted or synthetic. The what shipped and dates are real, sourced read-only from the repo's git history.
shipped2026-06-30 → 2026-07-06

Keyboard-fast brief triage

A zero-inbox reader for agent output. Read/unread and u-restore shipped first on 2026-06-30; the full Superhuman-style set — j/k move, e archive, z undo, enter open — filled in across the following plan-9 rounds, through the round-20 polish on 2026-07-06. The core of the Brief Inbox: your choices and notes flow straight back to the agent as its next step.

meltbox.ai/#/brief/br_•••••
Decision · briefs
Brief reader — keybinding model
Triage has to be muscle-memory fast or the inbox rots. Pick the model.

Superhuman keys (j/k/e/u/z + n note)Will picked

Nothing new to learn for the target user; e = mark-done, z = undo everywhere.

Gmail-style (arrows + shortcuts behind ?)

Familiar but slower; no single-key archive.

Mouse-first, no keys

Rejected — the whole pitch is speed.

Will's note: Ship j/k/e/u/z. Add n for a per-item note box — every item is a decision, not an FYI.

Reconstruction · illustrative

shipped2026-07-07 · verified on real devices

Push notifications, even when the app is closed

Full PWA with Web Push: your agent pings your phone when it needs a decision — Mac (FCM) and iPhone (APNs), closed-app included, both verified on real hardware. "Check the terminal" stops being the workflow.

meltbox.ai/#/brief/br_•••••
Decision · pwa / push
Push transport for briefs-when-closed
Notify on a pushed brief while the tab is closed. Pick the transport.

Web Push (VAPID) → FCM + APNsWill picked

One standard, reaches closed Mac + installed iPhone. Rotation orphans subs — documented.

Foreground polling only

No closed-app reach — defeats the purpose.

Will's note: Title-only wording on the lock screen — no body preview leaking brief content. Test iOS with a real device, not incognito (no Push API there).

Reconstruction · illustrative

shipped2026-07-06

MCP hub — Gmail toolpack, drafts-only

Meltbox as an MCP hub: gmail_search / get_thread / create_draft on meltbox.ai/mcp. Writes are drafts-only by design — agents propose, the human sends.

meltbox.ai/#/brief/br_•••••
Decision · mcp
Gmail toolpack — write scope
How much can an agent do to a mailbox through the hub?

Drafts onlyWill picked

Agent composes; a human presses send. Matches the whole "decided by humans" stance.

Send with per-message confirm

Confirm fatigue; you stop reading by day two.

Full send

Rejected — no.

Will's note: Drafts-only. Consent screen must be "In production" — Testing mode kills refresh tokens in 7 days.

Reconstruction · illustrative

shipped2026-07-03 · live in ChatGPT

ChatGPT app — Apps-SDK widget

Meltbox briefs render as an Apps-SDK widget inside ChatGPT, with respond_to_brief and domain verification. The same decision loop, in the surface the operator already has open.

meltbox.ai/#/brief/br_•••••
Decision · chatgpt app
Widget palette inside ChatGPT
The widget lives in ChatGPT's chrome. Pick the palette.

Indigo NEUTRAL — whole window indigoWill picked

Reads as one Meltbox surface, not a cream card bolted into chat.

Cream card on ChatGPT default

Looks embedded/foreign; content-keyed re-render fights the host.

Will's note: Indigo neutral. Don't re-render on set_globals; surface callTool errors; the widget's data tool must be template-less.

Reconstruction · illustrative

shipped2026-07-06 · live on prod

Realtime — Durable Rooms

Live presence and live-updating briefs via Cloudflare Durable Objects + WebSocket hibernation. Multiple humans and agents watching the same brief, in sync.

meltbox.ai/#/brief/br_•••••
Decision · realtime architecture
How does realtime collab work?
Presence + live briefs need a transport. Pick the architecture.

Durable Rooms (DO + WS hibernation)Will picked

Per-workspace room, replay/catch-up, cheap while idle. Staging first.

Poll every 60s

Simple, but no presence and laggy live briefs.

Third-party realtime SaaS

Another vendor + another key to proxy.

Will's note: Durable Rooms. Staging is the prerequisite; no rooms for drive-by anon visitors; hold the prod binding until slice 1 is proven.

Reconstruction · illustrative

shipped2026-07-06 · round 20

Session resume — one press, copied

The session panel moved off the Decisions rail to a bar button that copies the resume command the instant you press it, then pops the session details. Menus close on Esc relayed from inside the sandboxed brief frame.

meltbox.ai/#/brief/br_•••••
Decision · shell polish (round 20)
Where does "resume this agent" live?
Copying the resume command should be one motion. Pick the placement.

⧉ bar button — copy-on-press + popoverWill picked

Beside full-screen; copies immediately, details on demand.

Stay in the Decisions rail

Crowds the rail; two clicks to copy.

Will's note: Bar popover. Rail rows 44→40px. Menus must close on iframe-click too (blur = clicked elsewhere).

Reconstruction · illustrative

shipped2026-07-09 · from a voice memo

Notification wording — title only

Push notifications carry the title only, no body preview — the lock screen says a brief needs you without leaking its content. Proposed from a voice memo, decided, shipped.

meltbox.ai/#/brief/br_•••••
Decision · push wording
What does the lock-screen notification say?
Dedupe + wording for the "new brief" push. Pick one.

Title only — "New brief in Meltbox"Will picked

No content preview on a shared lock screen; one notification, not a stream.

Title + first line of the brief

Leaks content; noisy.

Will's note: Title only, AL mark icon, and dedupe so a re-push doesn't double-ping.

Reconstruction · illustrative

shipped2026-07-10

First-party analytics, blocker-resilient

Product analytics routed through a first-party proxy (static.autogeniclabs.com) so ad-blockers don't blind the funnel — signups → invited agent → first brief. The privacy stance was decided up front: product events only, first-party, no personal-data harvesting by default.

meltbox.ai/#/brief/br_•••••
Decision · analytics
How do we count without being creepy?
We need the funnel, not a surveillance reputation. Pick the transport.

First-party proxy (PostHog via our domain)Will picked

Resilient to blockers; data stays on our infra; no third-party pixel.

Direct third-party pixel

Blocked for exactly our audience; bad look.

Will's note: First-party proxy. Product events only; no emails/usernames harvested by default — measure the funnel, don't build a surveillance reputation.

Reconstruction · illustrative