TECHNOLOGIE / OPEN SOURCE

Gewone onderdelen. Eén keer samengesteld.

Elke venture heeft een backend nodig, en geen enkele zou er een moeten bouwen. De onderdelen die een bedrijf nodig heeft om te bestaan worden één keer geschreven, als open-source harness in Rust. Een venture kiest de modules die ze wil, koppelt ze in één bestand en wordt geleverd als één stateless worker met een eigen database.

De fabriek in cijfers

ventures
2317 validatie · 1 prototype · 5 lancering
op de stack
17van 23 ventures, de gedeelde onderdelen
open source
118 MIT · 3 Apache-2.0
draaien op de harness
1818 vandaag live · 1 gepland
decision records
30in de harness-repository

HOE EEN VENTURE WORDT GEBOUWD

Eén bestand noemt het bedrijf.

Een venture-backend is een klein Rust-project. Het somt de modules op die het gebruikt, de Adapters die ze met de buitenwereld verbinden, en de eigen naam en het domein van de venture. Al het andere is de harness. Bouw het en het resultaat is één Worker die precies die modules bevat en niets anders.

Als een module iets nodig heeft wat de runtime niet kan bieden, of twee modules dezelfde tabel claimen, faalt de build voordat er iets wordt gedeployd. Een verkeerd geconfigureerde venture kan nooit productie bereiken.

Harness::builder() .venture(Venture::new("factory0", "factory0.ventures") .cors_origins(["https://factory0.ventures"])) .module(EmailSignup::new().double_opt_in(true)) .module(Waitlist::new() .products(["kontinuum", "undercover-rockstars"])) .runtime(Cloudflare::new() .db("DB") .mailer(Resend::from_env()) .captcha(Turnstile::from_env())) .build()?
  1. Stap 1

    Geef het een naam

    De venture, haar domein, haar modules en de Adapters die ervoor antwoorden. Eén bestand.

  2. Stap 2

    Stel het samen

    De build weigert een module waarvan de Port niet door de runtime wordt geboden, en twee modules die dezelfde tabel of route claimen.

  3. Stap 3

    Lever het uit

    Eén stateless Worker met precies de opgesomde modules, met eigen database, secrets en domein.

DE LAGEN

Zes lagen, van de runtime tot de producten.

Van onder naar boven te lezen: waar code draait, de harness waaruit elke backend wordt gecompileerd, de backends, de gedeelde producten, de agents die het bedrijf draaien en de zelfstandige ventures. Gevulde chips zijn vandaag live, omlijnde chips zitten in de harness, gestippelde chips zijn gepland.

01RUNTIME

Cloudflare Workers, gecompileerd naar WebAssembly

Waar elke venture-Worker draait. Data en mail staan ernaast, en dezelfde code kan op een server draaien.

Workers (wasm32)D1-databaseResend-mailKVTurnstileRate limitingPostgres, native runtime
02HARNESS

Cratefield: de open-source Rust-kern

Ports, de router en de modules. Een module vraagt om een Port; een Adapter antwoordt.

Cratefield

Ports

DatabaseMailerCaptchaRateLimiterKeyValueSigner

Modules

email-signupwachtlijst
03BACKENDS

Eén Worker en één database per venture

Elke venture wordt samengesteld uit de harness en apart gedeployed. Vandaag live op de harness:

ColonizerFindsYou.workSupportGeniuspromptdecodeGroove GuruPosPluginKeep ShippingOwlpostBloodrankratecla.imSealbinrelease.showLiving BrainShoalTokkerLedgersGhostwritin'SqueezinYoginini
04SCHAPPEN

De stack: producten waarop elke venture aansluit

De gedeelde producten, ingedeeld op wat ze doen. Elk is een bedrijf met eigen klanten.

Ship & run

  • VibeCaddie
  • Keep Shipping
  • release.show
  • Shoal

Communicatie

  • Owlpost
  • Squeezin

Beveiliging

  • promptdecode
  • Sealbin

Klanten

  • SupportGenius
  • PosPlugin
  • Ledgers

Content & AI

  • Kontinuum
  • Living Brain
  • Tokker
  • Ghostwritin'
05AGENTS

Vijf lagen, één agent voor elke functie

Elke functie in elke laag is een agent. Colonizer draait de coding agents voor de build-laag.

  • DISCOVER3 agents
  • BUILD4 agents
  • OPERATE4 agents
  • DISTRIBUTE3 agents
  • LEARN3 agents

Colonizer: coding agents die GitHub-issues omzetten in pull requests

06PRODUCTEN

De zelfstandige ventures

Ventures buiten de stack. Ze erven het fundament en voegen er niets aan toe.

Undercover RockstarsYogininiFindsYou.workGroove GuruBloodrankratecla.im

De zes lagen, van onder naar boven

  1. runtime: Cloudflare Workers, gecompileerd naar WebAssembly. Waar elke venture-Worker draait. Data en mail staan ernaast, en dezelfde code kan op een server draaien.
  2. harness: Cratefield: de open-source Rust-kern. Ports, de router en de modules. Een module vraagt om een Port; een Adapter antwoordt.
  3. backends: Eén Worker en één database per venture. Elke venture wordt samengesteld uit de harness en apart gedeployed. Vandaag live op de harness:
  4. schappen: De stack: producten waarop elke venture aansluit. De gedeelde producten, ingedeeld op wat ze doen. Elk is een bedrijf met eigen klanten.
  5. agents: Vijf lagen, één agent voor elke functie. Elke functie in elke laag is een agent. Colonizer draait de coding agents voor de build-laag.
  6. producten: De zelfstandige ventures. Ventures buiten de stack. Ze erven het fundament en voegen er niets aan toe.

EEN REQUEST, VAN BEGIN TOT EIND

Wie wat doet wanneer een bezoeker zich aanmeldt.

Alleen getekend op basis van de links in het register. Een doorgetrokken lijn is vandaag live en voert verkeer; een gestippelde lijn is gepland en voert nog geen verkeer.

  1. Bezoeker

    een persoon op een venture-site

  2. Venture-Worker

    één Worker per venture, op de Cratefield-harness

    live
  3. Owlpost

    mail voor de ventures

    live
  4. SupportGenius

    bugmeldingen en support

    gepland
  5. Colonizer

    coding agents, op de harness

    live
  6. Living Brain

    kennis die vasthoudt wat werkte

    gepland

De koppelingen in deze flow: Bezoeker naar venture-worker, HTTPS-verzoek: live. Venture-worker naar Owlpost, bevestigingsmail: live. Venture-worker naar SupportGenius, fouten worden issues: gepland. SupportGenius naar Living Brain, support voedt kennis: gepland. Colonizer naar Living Brain, agents voeden kennis: live.

Aanmelden bij een venture, en waar het bericht daarna naartoe gaat. Pijlen geven de richting van elke link aan; de status komt uit het register.

MODULES ZIEN ALLEEN PORTS

Ports aan de ene kant. Adapters aan de andere.

Een module vraagt om een Port en nooit om een leverancier. De runtime antwoordt via een Adapter. De Adapters zijn die van de harness zelf; de status laat zien waar een live venture er vandaag een gebruikt.

  • Database

    tabellen, queries en migraties

    • D1 (live)
    • Postgres (in de harness)
    • SQLite (in de harness)
  • Mailer

    transactionele mail

    • Resend (live)
    • Owlpost (gepland)
  • Captcha

    een botcontrole die dichtklapt bij een fout

    • Turnstile (in de harness)
  • KeyValue

    kleine key-value-state

    • Cloudflare KV (in de harness)
  • RateLimiter

    requestbudgetten per sleutel

    • Cloudflare Rate Limiting (in de harness)
    • Redis (in de harness)
  • Payments

    checkout en facturatie

    • Polar (gepland)
    • Stripe (in de harness)
  • TextModel

    een modelcompletion

    • Anthropic (in de harness)
    • OpenAI-compatible (in de harness)
  • Push

    meldingen naar apparaten

    • APNs (in de harness)
    • FCM (in de harness)
    • Web Push (in de harness)
  • Signer

    ondertekenen via sleutelreferentie

    • Turnkey (in de harness)

Ports en hun Adapters: Database (tabellen, queries en migraties): D1 (live), Postgres (in de harness), SQLite (in de harness). Mailer (transactionele mail): Resend (live), Owlpost (gepland). Captcha (een botcontrole die dichtklapt bij een fout): Turnstile (in de harness). KeyValue (kleine key-value-state): Cloudflare KV (in de harness). RateLimiter (requestbudgetten per sleutel): Cloudflare Rate Limiting (in de harness), Redis (in de harness). Payments (checkout en facturatie): Polar (gepland), Stripe (in de harness). TextModel (een modelcompletion): Anthropic (in de harness), OpenAI-compatible (in de harness). Push (meldingen naar apparaten): APNs (in de harness), FCM (in de harness), Web Push (in de harness). Signer (ondertekenen via sleutelreferentie): Turnkey (in de harness).

ONTWERPREGELS

Vier regels die het ontwerp aanhoudt.

  • 01

    Modules zien alleen poorten.

    Een module vraagt om een database, een mailer, een captcha. Hij raakt nooit een Cloudflare-binding of een vendorclient aan. Adapters geven antwoord. Die ene regel maakt de latere verhuizing weg van Cloudflare tot een wijziging van één crate.

    moduleMailerAdapter
  • 02

    Compositie gebeurt tijdens het compileren.

    Geen plugins die worden geladen, geen registry-service, geen verrassingen tijdens runtime. De Worker bevat wat de venture heeft opgesomd, en de compiler is de eerste reviewer. Een module waarvan de broncode niet in de gedeelde build mag, kan als eigen Worker draaien, op hetzelfde pad gemount via een service binding. Hij wordt nog steeds samengesteld, alleen niet in dezelfde binary.

    compilerenweigerendeployen
  • 03

    Eén venture, één database.

    Tussen bedrijven wordt tijdens runtime niets gedeeld. Elk heeft een eigen worker, eigen data en eigen secrets. Een venture kan worden geback-upt, verplaatst of stopgezet zonder een andere aan te raken.

    Workerdatabasesecrets
    Workerdatabasesecrets
    Workerdatabasesecrets

    geen gedeelde runtime

  • 04

    Stateless door ontwerp.

    Niets overleeft een request behalve wat in de database wordt geschreven. Bevestigings- en uitschrijflinks zijn ondertekende tokens, dus er is geen sessiestore om te draaien, op te schalen of te lekken.

    requestWorkerdatabase

    geen sessiestore

STATUS

Waar de harness staat.

De voortgang wordt openlijk bijgehouden als issues en mijlpalen.

  1. M0klaar

    Fundament

    Workspace-tooling, de core, de Cloudflare-runtime, de Resend- en Turnstile-Adapters, de SQLite-Adapter, de fz CLI en de testkit.

  2. M1klaar

    Eerste modules

    E-mailaanmelding, wachtlijst, templates, de beveiligingsbasis en observability.

  3. M2in uitvoering

    Eerste venture live

    Publicatie op crates.io, documentatie, contractversiebeheer en de eerste venture op een eigen API-domein.

  4. M3klaar

    Draagbaar naar eigen hosting

    De Postgres-Adapter, de native runtime, een pariteitssuite op SQLite en Postgres, en data-export en -import.

ONTWERP
30 decision records, allemaal in de repository
ARCHITECTUUR
12 secties in het architectuurdocument
EERSTE MODULES
E-mailaanmelding en wachtlijst, gebouwd
GEPUBLICEERD
De meeste crates staan op crates.io. Een releaseronde staat nog open.
MANAGED SERVICE
Nog niet gebouwd. Het control plane is ontworpen, niet geschreven.

Harness-cijfers: gelezen uit Cratefield/harness op 2026-10-21.

BEVEILIGING EN PRIVACY

Zes lagen tussen een request en de data.

Elke laag is een controle die de harness documenteert. De volledige lijst staat in de beveiligings- en privacydocumenten.

  1. 01 · EDGE

    Alleen de eigen origins van de venture

    De Worker van de venture antwoordt op het eigen domein. CORS staat alleen de origins toe die de venture opsomt, en elke response echoot een request-id.

  2. 02 · MISBRUIK

    Bots en overbelasting

    Turnstile, dat dichtklapt bij een fout. Rate limits op elke publieke schrijfactie, via de RateLimiter-Port.

  3. 03 · REQUESTS

    Fouten en logs zonder adressen

    Fouten zijn problem+json met een vaste slug per geval. Eén gestructureerde regel per request, nooit een e-mailadres.

  4. 04 · TOKENS

    Links, geen sessies

    Bevestigings- en uitschrijflinks zijn HMAC-ondertekend, met sleutelrotatie. Er is geen sessiestore om te draaien, op te schalen of te laten lekken.

  5. 05 · SECRETS

    Envelope-encryptie

    Secrets zijn envelope-versleuteld en gebonden aan hun rij. De lokale-bestandsprovider van de KMS-Port weigert productie.

  6. 06 · ISOLATIE

    Eén venture, één database

    Geen enkele runtime wordt gedeeld tussen bedrijven. Elk heeft een eigen Worker, eigen data en eigen secrets, en kan los worden verplaatst of uitgezet.

WAT OPEN IS

De fabrieksvloer is openbaar. De recepten niet.

De harness, de runtime, de Adapters en de eerste twee modules hebben een MIT-licentie en worden openlijk ontwikkeld. Iedereen kan er een backend op bouwen, en elke venture die wij draaien doet dat. De modules die vastleggen hoe Factory Zero zijn bedrijven runt, blijven privé. De eigen backend van elke venture is ook privé.

Eén venture is de harness zelf. Cratefield neemt de open-source harness en voegt de beheerde laag eromheen toe: het zou de worker, de database en de secrets in je eigen Cloudflare-account inrichten en daarna beheren. De harness is echt en draait; dat control plane is ontworpen en nog niet geschreven. Het is ook waar de modulegrens zich bewijst: een klant kan een eigen module bouwen en deployen zonder dat de broncode ons ooit bereikt.

Beslissingen worden vastgelegd op het moment dat ze worden genomen. Het architectuurdocument en de beslissingsdocumenten staan in de repository, inclusief het document dat vastlegt waarom een eerste poging is weggegooid.

Licenties binnen de stack

Van de 17 ventures in de stack zijn er 11 open source, elk met een publieke repository onder een OSI-licentie. De balk en de tegels zijn getekend op basis van het licentieveld in het register.

  • KontinuumMIT
  • CratefieldMIT
  • ColonizerMIT
  • SupportGeniusMIT
  • promptdecodeMIT
  • Keep ShippingMIT
  • LedgersMIT
  • Ghostwritin'MIT
  • SealbinApache-2.0
  • Living BrainApache-2.0
  • TokkerApache-2.0
  • VibeCaddieNiet open source
  • PosPluginNiet open source
  • OwlpostNiet open source
  • release.showNiet open source
  • ShoalNiet open source
  • SqueezinNiet open source

Stack-ventures per licentie: Kontinuum: MIT. Cratefield: MIT. VibeCaddie: Niet open source. Colonizer: MIT. SupportGenius: MIT. promptdecode: MIT. PosPlugin: Niet open source. Keep Shipping: MIT. Owlpost: Niet open source. Sealbin: Apache-2.0. release.show: Niet open source. Living Brain: Apache-2.0. Shoal: Niet open source. Tokker: Apache-2.0. Ledgers: MIT. Ghostwritin': MIT. Squeezin: Niet open source.