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()?
- Stap 1
Geef het een naam
De venture, haar domein, haar modules en de Adapters die ervoor antwoorden. Eén bestand.
- 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.
- 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.
Cloudflare Workers, gecompileerd naar WebAssembly
Waar elke venture-Worker draait. Data en mail staan ernaast, en dezelfde code kan op een server draaien.
Cratefield: de open-source Rust-kern
Ports, de router en de modules. Een module vraagt om een Port; een Adapter antwoordt.
Ports
Modules
Eén Worker en één database per venture
Elke venture wordt samengesteld uit de harness en apart gedeployed. Vandaag live op de harness:
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'
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
De zelfstandige ventures
Ventures buiten de stack. Ze erven het fundament en voegen er niets aan toe.
De zes lagen, van onder naar boven
- runtime: Cloudflare Workers, gecompileerd naar WebAssembly. Waar elke venture-Worker draait. Data en mail staan ernaast, en dezelfde code kan op een server draaien.
- harness: Cratefield: de open-source Rust-kern. Ports, de router en de modules. Een module vraagt om een Port; een Adapter antwoordt.
- backends: Eén Worker en één database per venture. Elke venture wordt samengesteld uit de harness en apart gedeployed. Vandaag live op de harness:
- schappen: De stack: producten waarop elke venture aansluit. De gedeelde producten, ingedeeld op wat ze doen. Elk is een bedrijf met eigen klanten.
- 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.
- 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.
Bezoeker
een persoon op een venture-site
Venture-Worker
één Worker per venture, op de Cratefield-harness
liveOwlpost
mail voor de ventures
liveSupportGenius
bugmeldingen en support
geplandColonizer
coding agents, op de harness
liveLiving 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.
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.
moduleMailerAdapter02
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.
compilerenweigerendeployen03
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.
WorkerdatabasesecretsWorkerdatabasesecretsWorkerdatabasesecretsgeen 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.
requestWorkerdatabasegeen sessiestore
STATUS
Waar de harness staat.
De voortgang wordt openlijk bijgehouden als issues en mijlpalen.
- M0klaar
Fundament
Workspace-tooling, de core, de Cloudflare-runtime, de Resend- en Turnstile-Adapters, de SQLite-Adapter, de fz CLI en de testkit.
- M1klaar
Eerste modules
E-mailaanmelding, wachtlijst, templates, de beveiligingsbasis en observability.
- M2in uitvoering
Eerste venture live
Publicatie op crates.io, documentatie, contractversiebeheer en de eerste venture op een eigen API-domein.
- 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.
- 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.
- 02 · MISBRUIK
Bots en overbelasting
Turnstile, dat dichtklapt bij een fout. Rate limits op elke publieke schrijfactie, via de RateLimiter-Port.
- 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.
- 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.
- 05 · SECRETS
Envelope-encryptie
Secrets zijn envelope-versleuteld en gebonden aan hun rij. De lokale-bestandsprovider van de KMS-Port weigert productie.
- 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.
- MITharnesskern, runtime, adapters, e-mailaanmelding, wachtlijst, CLI, testkit
- DOCarchitectuurhet volledige ontwerp, twaalf secties
- ADRdecision recordswaarom Rust, waarom Ports, waarom samenstellen bij compilatie gebeurt
- MITventure-backendtemplatehet startpunt voor een nieuwe venture-backend
- SRCdeze websitestatisch, geen buildstap, geen dependencies
- FZ-004Cratefieldde beheerde dienst die op de harness wordt gebouwd
- ORGgithub.com/Factory-Zerode studio-organisatie; de harness zelf valt nu onder Cratefield
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.