MOONFACTORY

MFX® — WORK N°06

N°06

KANBANi

the conductor 2026

The board that conducts your agents, and waits for your hand.

Client
KANBANi (a MoonFactory product)
Location
In house
Live since
2026
Services
Web Design, Static Site Build, Hosting
Stack
Astro 6, Bun, Cloudflare Access, Docker

The challenge

KANBANi needed a front door before it had a product page: a place that says what the board is in one line, takes a request for early access, and gives nothing else away. The real front page had to exist and be reviewable by invited people without being public, and the whole site had to hold to the house standard it will later be judged by.

The approach

An Astro 6 site on Bun, static-first, built from a locked mockup. The root serves the holding splash — the conductor and the Stream, two keys, a request form; the front page waits at /preview behind Cloudflare Access, so the people invited see it and nobody else does. The form posts to one server route that sends a Slack message and stores nothing, so there is no data to protect. Fonts are self-hosted; there are no third-party requests.

Result

One page, one form, no data held.

The board that conducts your agents, and waits for your hand.

The evidence

Live screenshots, not mockups.

  • Holding page of kanbani.dev: the conductor and the Stream over the request form
    The holding page — the conductor and the Stream, two keys, one form; the front page waits at /preview behind Cloudflare Access.
  • Full length — one static page, fonts self-hosted, the form the only script.
  • Mobile viewport of kanbani.dev at 390px
    Mobile at 390 pixels — the same page, one column.

Case study

KANBANi is the board that conducts coding agents and waits for the operator’s hand. Its site had to say that, take a name, and keep its counsel until launch.

What’s running

kanbani.dev is an Astro 6 site on the Bun runtime, static-first: every page prerenders, and the only server route is the request form’s. It is built in a three-stage Dockerfile and served by one process. Fonts (Geist Mono, Instrument Serif) are self-hosted; there are no third-party runtime requests.

The two doors

The root is the holding page: the conductor and the Stream, two keys, and a request form. The front page itself lives at /preview behind Cloudflare Access, out of the sitemap and disallowed in robots.txt; the operator adds an email to the policy and that person sees it. Launch is a change of route, not a rebuild.

The form

The request form posts to /api/early-access, which sends one Slack message through an incoming webhook held in the environment and stores nothing. No database, no mailing list, no record to secure.

Hosted and operated by MoonFactory

Built from its Dockerfile on infrastructure we own, Cloudflare-fronted, and deployed from a release branch by KANBANi — the product ships its own site.

The live site

Visit the live site at kanbani.dev (opens in a new tab).

Stack proof

Every claim is verifiable.

Astro 6
Static-first: every page prerenders at build time; the one server route is the request form's. Confirmed by the Astro v6.4.8 generator meta on the live site.
Bun runtime
Runs on Bun through the astro-bun-adapter, one process serving the prerendered pages and the form route, built in a three-stage Dockerfile.
Cloudflare Access
The front page lives at /preview behind an Access policy, out of the sitemap and disallowed in robots.txt, until launch. The root holds the operator's splash.
A form that stores nothing
The request form posts to /api/early-access, which sends one Slack message through an incoming webhook held in the environment and keeps no record of its own.
MoonFactory-hosted
Built from its Dockerfile on infrastructure we own and operate, Cloudflare-fronted, deployed from a release branch by KANBANi itself.

Infrastructure

  • App Astro on Bun
MFX-2026-WORK-006 · In house
CHAT WITH NOVA •