TECNOLOGÍA / CÓDIGO ABIERTO
Piezas ordinarias. Ensambladas una vez.
Todo venture necesita un backend, y ninguno debería construir uno. Las piezas que una empresa necesita para existir se escriben una sola vez, como un harness de código abierto en Rust. Un venture elige los módulos que quiere, los conecta en un solo archivo y se despliega como un único worker sin estado con su propia base de datos.
La fábrica en números
- ventures
- 2317 validación · 1 prototipo · 5 lanzamiento
- en el stack
- 17de 23 ventures, las partes compartidas
- código abierto
- 118 MIT · 3 Apache-2.0
- se ejecutan sobre el harness
- 1818 activos hoy · 1 planificado
- registros de decisión
- 30en el repositorio del harness
CÓMO SE CONSTRUYE UN VENTURE
Un archivo nombra a la empresa.
El backend de una venture es un proyecto pequeño en Rust. Enumera los módulos que usa, los Adapters que los conectan con el mundo y el nombre y el dominio propios de la venture. Todo lo demás es el harness. Lo compilas y el resultado es un Worker que contiene exactamente esos módulos y nada más.
Si un módulo necesita algo que el runtime no puede ofrecer, o dos módulos reclaman la misma tabla, la compilación falla antes de desplegar nada. Un venture mal configurado no puede llegar a producción.
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()?
- Paso 1
Ponle nombre
La venture, su dominio, sus módulos y los Adapters que responden por ellos. Un archivo.
- Paso 2
Compónlo
La compilación rechaza un módulo cuyo Port no ofrece el runtime, y dos módulos que reclaman la misma tabla o ruta.
- Paso 3
Despliégalo
Un Worker sin estado que contiene exactamente los módulos enumerados, con su propia base de datos, secretos y dominio.
LAS CAPAS
Seis capas, desde el runtime hasta los productos.
Léelo de abajo arriba: dónde se ejecuta el código, el harness desde el que se compila cada backend, los backends, los productos compartidos, los agentes que dirigen la empresa y las ventures independientes. Las fichas sólidas están activas hoy, las fichas con contorno están en el harness y las fichas discontinuas están planificadas.
Cloudflare Workers, compilados a WebAssembly
Donde se ejecuta cada Worker de venture. Los datos y el correo están a su lado, y el mismo código puede ejecutarse en un servidor.
Cratefield: el núcleo de código abierto en Rust
Los Ports, el router y los módulos. Un módulo pide un Port; un Adapter responde.
Ports
Módulos
Un Worker y una base de datos por venture
Cada venture se compone a partir del harness y se despliega por su cuenta. Activas hoy en el harness:
El stack: productos a los que se conecta cada venture
Los productos compartidos, ordenados en estantes según lo que hacen. Cada uno es una empresa con sus propios clientes.
Entregar y operar
VibeCaddie
Keep Shipping
release.show
Shoal
Comunicación
Owlpost
Squeezin
Seguridad
promptdecode
Sealbin
Clientes
SupportGenius
PosPlugin
Ledgers
Contenido e IA
Kontinuum
Living Brain
Tokker
Ghostwritin'
Cinco capas, un agente para cada función
Cada función de cada capa es un agente. Colonizer ejecuta los agentes de programación de la capa de construcción.
- DESCUBRIR3 agentes
- CONSTRUIR4 agentes
- OPERAR4 agentes
- DISTRIBUIR3 agentes
- APRENDER3 agentes
Colonizer: agentes de programación que convierten issues de GitHub en pull requests
Las ventures independientes
Ventures fuera del stack. Heredan la fundación y no aportan a ella.
Las seis capas, de abajo arriba
- runtime: Cloudflare Workers, compilado a WebAssembly. Donde se ejecuta cada Worker de venture. Los datos y el correo están a su lado, y el mismo código puede ejecutarse en un servidor.
- harness: Cratefield: el núcleo de código abierto en Rust. Los Ports, el router y los módulos. Un módulo pide un Port; un Adapter responde.
- backends: Un Worker y una base de datos por venture. Cada venture se compone a partir del harness y se despliega por su cuenta. Activas hoy en el harness:
- estantes: El stack: productos a los que se conecta cada venture. Los productos compartidos, ordenados en estantes según lo que hacen. Cada uno es una empresa con sus propios clientes.
- agentes: Cinco capas, un agente para cada función. Cada función de cada capa es un agente. Colonizer ejecuta los agentes de programación de la capa de construcción.
- productos: Las ventures independientes. Ventures fuera del stack. Heredan la fundación y no aportan a ella.
UNA SOLICITUD, DE PUNTA A PUNTA
Quién hace qué cuando un visitante se registra.
Dibujado solo a partir de los enlaces del registro. Una línea continua está activa hoy y transporta tráfico; una línea discontinua está planificada y aún no transporta ninguno.
Visitante
una persona en el sitio de una venture
Worker de la venture
un Worker por venture, sobre el harness de Cratefield
activoOwlpost
correo para los ventures
activoSupportGenius
reportes de errores y soporte
planificadoColonizer
agentes de programación, sobre el harness
activoLiving Brain
conocimiento que conserva lo que funcionó
planificado
Los enlaces de este flujo: visitante al worker del venture, solicitud HTTPS: activo. Worker del venture a Owlpost, correo de confirmación: activo. Worker del venture a SupportGenius, los errores se convierten en issues: planificado. SupportGenius a Living Brain, el soporte alimenta el conocimiento: planificado. Colonizer a Living Brain, los agentes alimentan el conocimiento: activo.
LOS MÓDULOS SOLO VEN PORTS
Ports de un lado. Adapters del otro.
Un módulo pide un Port y nunca un proveedor. El runtime responde a través de un Adapter. Los Adapters son propios del harness; el estado indica dónde los usa hoy una venture activa.
-
Database
tablas, consultas y migraciones
- D1 (activo)
- Postgres (en el harness)
- SQLite (en el harness)
-
Mailer
correo transaccional
- Resend (activo)
- Owlpost (planificado)
-
Captcha
una verificación de bots, que falla en cerrado
- Turnstile (en el harness)
-
KeyValue
estado clave-valor pequeño
- Cloudflare KV (en el harness)
-
RateLimiter
presupuestos de solicitudes por clave
- Cloudflare Rate Limiting (en el harness)
- Redis (en el harness)
-
Payments
checkout y facturación
- Polar (planificado)
- Stripe (en el harness)
-
TextModel
una respuesta de un modelo
- Anthropic (en el harness)
- Compatible con OpenAI (en el harness)
-
Push
avisos a dispositivos
- APNs (en el harness)
- FCM (en el harness)
- Web Push (en el harness)
-
Signer
firma por referencia de clave
- Turnkey (en el harness)
Ports y sus Adapters: Database (tablas, consultas y migraciones): D1 (activo), Postgres (en el harness), SQLite (en el harness). Mailer (correo transaccional): Resend (activo), Owlpost (planificado). Captcha (una verificación de bots, que falla en cerrado): Turnstile (en el harness). KeyValue (estado clave-valor pequeño): Cloudflare KV (en el harness). RateLimiter (presupuestos de solicitudes por clave): Cloudflare Rate Limiting (en el harness), Redis (en el harness). Payments (checkout y facturación): Polar (planificado), Stripe (en el harness). TextModel (una respuesta de un modelo): Anthropic (en el harness), compatible con OpenAI (en el harness). Push (avisos a dispositivos): APNs (en el harness), FCM (en el harness), Web Push (en el harness). Signer (firma por referencia de clave): Turnkey (en el harness).
REGLAS DE DISEÑO
Cuatro reglas que mantiene el diseño.
01
Los módulos solo ven puertos.
Un módulo pide una base de datos, un servicio de correo, un captcha. Nunca toca un binding de Cloudflare ni un cliente de proveedor. Responden los adaptadores. Esa única regla es lo que hace que el cambio posterior fuera de Cloudflare sea cuestión de un solo crate.
móduloMailerAdapter02
La composición ocurre en tiempo de compilación.
Sin carga de plugins, sin servicio de registro, sin sorpresas en tiempo de ejecución. El Worker contiene lo que la venture enumeró, y el compilador es el primer revisor. Un módulo cuyo código fuente no deba entrar en la compilación compartida puede ejecutarse como su propio Worker, montado en la misma ruta mediante un service binding. Sigue estando compuesto, solo que no en el mismo binario.
compilarrechazardesplegar03
Un venture, una base de datos.
No se comparte nada en tiempo de ejecución entre empresas. Cada una tiene su propio worker, sus propios datos y sus propios secretos. Un venture se puede respaldar, mover o cerrar sin tocar a otro.
Workerbase de datossecretosWorkerbase de datossecretosWorkerbase de datossecretosningún runtime compartido
04
Sin estado por construcción.
Nada sobrevive a una petición salvo lo que se escribe en la base de datos. Los enlaces de confirmación y de baja son tokens firmados, así que no hay almacén de sesiones que ejecutar, escalar o filtrar.
solicitudWorkerbase de datossin almacén de sesiones
ESTADO
Dónde está el harness.
El progreso se sigue como issues e hitos, de forma abierta.
- M0hecho
Fundación
Herramientas del workspace, el núcleo, el runtime de Cloudflare, los Adapters de Resend y Turnstile, el Adapter de SQLite, la CLI fz y el kit de pruebas.
- M1hecho
Primeros módulos
Registro por correo, lista de espera, plantillas, la base de seguridad y la observabilidad.
- M2en curso
Primera venture activa
Publicación en crates.io, documentación, versionado de contratos y la primera venture en su propio dominio de API.
- M3hecho
Portabilidad autoalojada
El Adapter de Postgres, el runtime nativo, una suite de paridad sobre SQLite y Postgres, y la exportación e importación de datos.
- DISEÑO
- 30 registros de decisión, todos en el repositorio
- ARQUITECTURA
- 12 secciones en el documento de arquitectura
- PRIMEROS MÓDULOS
- Registro por correo y lista de espera, construido
- PUBLICADO
- La mayoría de los crates están en crates.io. Hay una ronda de publicación pendiente.
- SERVICIO GESTIONADO
- Aún no construido. El plano de control está diseñado, no escrito.
Cifras del harness: leídas de Cratefield/harness el 2026-10-21.
SEGURIDAD Y PRIVACIDAD
Seis capas entre una solicitud y los datos.
Cada capa es un control que documenta el harness. La lista completa está en sus documentos de seguridad y privacidad.
- 01 · BORDE
Solo los orígenes propios de la venture
El Worker de la venture responde en su propio dominio. CORS solo permite los orígenes que la venture enumera, y cada respuesta devuelve un id de solicitud.
- 02 · ABUSO
Bots e inundaciones de tráfico
Turnstile, que falla en cerrado. Límites de tasa en cada escritura pública, a través del Port RateLimiter.
- 03 · SOLICITUDES
Errores y logs sin direcciones
Los errores son problem+json con un slug fijo para cada caso. Una línea estructurada por solicitud, nunca una dirección de correo.
- 04 · TOKENS
Enlaces, no sesiones
Los enlaces de confirmación y de baja están firmados con HMAC, con rotación de claves. No hay almacén de sesiones que operar, escalar ni filtrar.
- 05 · SECRETOS
Cifrado de sobre
Los secretos se cifran con cifrado de sobre y quedan ligados a su fila. El proveedor de archivo local del Port KMS rechaza producción.
- 06 · AISLAMIENTO
Una venture, una base de datos
Ningún runtime se comparte entre empresas. Cada una tiene su propio Worker, sus datos y sus secretos, y puede moverse o apagarse por separado.
QUÉ ESTÁ ABIERTO
El taller de la fábrica es público. Las recetas, no.
El harness, su runtime, sus Adapters y los dos primeros módulos tienen licencia MIT y se desarrollan de forma abierta. Cualquiera puede construir un backend sobre ellos, y todas las ventures que operamos lo hacen. Los módulos que codifican cómo Factory Zero opera sus empresas siguen siendo privados. El backend propio de cada venture también es privado.
Un venture es el propio harness. Cratefield toma el harness de código abierto y le añade la capa gestionada alrededor: aprovisionaría el worker, la base de datos y los secretos dentro de tu propia cuenta de Cloudflare y luego los operaría. El harness es real y funciona; ese plano de control está diseñado y aún no escrito. También es donde el límite de módulos justifica su existencia: un cliente puede construir y desplegar un módulo propio sin que el código fuente llegue nunca a nosotros.
Las decisiones se escriben a medida que se toman. El documento de arquitectura y los registros de decisión están en el repositorio, incluido el que explica por qué se descartó un primer intento.
- MITharnessnúcleo, runtime, adaptadores, registro por correo, lista de espera, CLI, kit de pruebas
- DOCarquitecturael diseño completo, doce secciones
- ADRregistros de decisiónpor qué Rust, por qué Ports, por qué la composición ocurre en tiempo de compilación
- MITplantilla de backend de ventureel punto de partida para el backend de una nueva venture
- SRCeste sitio webestático, sin paso de compilación, sin dependencias
- FZ-004Cratefieldel servicio gestionado que se construye sobre el harness
- ORGgithub.com/Factory-Zerola organización del estudio; el propio harness ahora está bajo Cratefield
Licencias en todo el stack
De los 17 ventures del stack, 11 son de código abierto, cada uno con un repositorio público bajo una licencia OSI. La barra y las fichas se generan a partir del campo de licencia del registro.
KontinuumMIT
CratefieldMIT
ColonizerMIT
SupportGeniusMIT
promptdecodeMIT
Keep ShippingMIT
LedgersMIT
Ghostwritin'MIT
SealbinApache-2.0
Living BrainApache-2.0
TokkerApache-2.0
VibeCaddieNo es código abierto
PosPluginNo es código abierto
OwlpostNo es código abierto
release.showNo es código abierto
ShoalNo es código abierto
SqueezinNo es código abierto
Ventures del stack por licencia: Kontinuum: MIT. Cratefield: MIT. VibeCaddie: No es código abierto. Colonizer: MIT. SupportGenius: MIT. promptdecode: MIT. PosPlugin: No es código abierto. Keep Shipping: MIT. Owlpost: No es código abierto. Sealbin: Apache-2.0. release.show: No es código abierto. Living Brain: Apache-2.0. Shoal: No es código abierto. Tokker: Apache-2.0. Ledgers: MIT. Ghostwritin': MIT. Squeezin: No es código abierto.