Fóir: el backend sobre el que construyen tus agentes
Fóir le da a una aplicación todo su backend a partir de un único archivo de configuración: una API GraphQL, una consola para tu equipo, inicio de sesión y roles, y el aislamiento entre los datos de tus clientes. Un agente de programación puede escribir la configuración y gestionar el proyecto a través de un servidor MCP, de modo que la app que construye está lista para clientes reales.
Esta es la versión sencilla de foir.io, para agentes y para quien prefiera leer en lugar de ver.
Crea un proyecto: https://platform.foir.io/signup
Empieza con un agente
Conecta el servidor MCP y lee el contrato desde ahí. Enumera las herramientas que permite tu rol y busca en la documentación.
foir mcp- Configuración de MCP: https://docs.foir.dev/ai/mcp
- Índice de la documentación para agentes: https://docs.foir.dev/llms.txt
- Documentación completa en un solo archivo: https://docs.foir.dev/llms-full.txt
Por qué lo eligen los equipos
- Un único archivo de configuración te da el backend que, de otro modo, montarías con servicios separados: reglas de base de datos, inicio de sesión, un editor de contenido, entrega de medios, notificaciones y facturación.
- El aislamiento entre clientes se aplica en la base de datos. Las reglas de acceso se compilan a row-level security, así que una comprobación olvidada no puede filtrar una fila.
- La API se genera a partir de tus modelos, así que no hay ningún endpoint escrito a mano que pueda fallar.
- El contenido se resuelve en cada solicitud. Un nuevo idioma o público es un campo que configuras, y no se recompila nada.
- Está totalmente gestionado. No hay nada que alojar, parchear ni escalar.
- Mantienes el control. Tu código se ejecuta en tu propio hosting, los pagos van directamente a tu propia cuenta de Stripe y cada registro se exporta a una base de datos Postgres de tu propiedad.
- Los agentes trabajan en él de forma segura. Las escrituras se guardan como borradores, los tokens llevan solo los permisos que aprobaste y una persona da el visto bueno a lo que se publica.
- Su motor de autorización, Demesne, es de código abierto: https://foir.io/demesne
Para quién es
- Un producto que se vende a muchos clientes. Cada cliente es una organización con sus propios datos, miembros e inicio de sesión, sobre modelos compartidos.
- Una app construida con un agente de programación, lista para inicio de sesión, roles y aislamiento de datos reales.
- Una agencia que gestiona muchos proyectos de clientes en una sola plataforma.
- Un sitio o una app centrados en el contenido que quieren borradores, campañas programadas y personalización.
Qué obtienes
| Capability | Qué hace |
|---|---|
| API generada | Una API GraphQL construida a partir de tus modelos. |
| Consola | Un editor para cada modelo, con versiones, edición colaborativa en directo y vista previa como un público concreto. |
| Ask Fóir | Un asistente en la consola que responde preguntas sobre tus datos y hace cambios como borradores, dentro de tu rol. |
| Inicio de sesión | Un único inicio de sesión alojado: passkeys, verificación en dos pasos y Google, Apple, Shopify o cualquier proveedor OIDC. |
| Usuarios y roles | Un único conjunto de usuarios organizado en pools, con membresías y roles construidos a partir de una sola lista de permisos. |
| Organizaciones | Convierte una app en un SaaS: cada uno de tus clientes recibe un límite que se aplica como row-level security. |
| Claves | Claves publicables, de servidor y de administración. El esquema de una clave contiene solo lo que se le ha concedido. |
| Registros | Los registros pueden ser privados para el usuario que es su propietario. Las actualizaciones aceptan una clave de idempotencia, así que reintentar es seguro. |
| Publicación | Las escrituras se guardan como borradores. Publicar no requiere recompilar. Los despliegues lanzan una campaña en bloque y se pueden revertir. |
| Personalización | Variantes elegidas en el servidor según la ubicación, los segmentos y tus propias dimensiones. Una variante puede sustituir un registro o un solo campo. |
| Operaciones | Tu propio código, llamado a través de la API con un token firmado y con alcance acotado. Cada ejecución queda registrada. |
| Secretos | Un vault. Las funciones y los agentes guardan una referencia, nunca la clave. |
| Hooks | Los eventos de registros y de operaciones ejecutan operaciones, con entregas que puedes volver a enviar. |
| Muros de pago | Una cuota por usuario u organización en cualquier operación, que se amplía con una suscripción comprada a través de Stripe o de una tienda de apps. |
| Notificaciones y correo electrónico | Notificaciones push y de bandeja de entrada con preferencias por persona. Plantillas de correo electrónico que se rellenan con registros en el momento del envío. |
| Medios, búsqueda, ubicación | Imágenes servidas en WebP y AVIF al tamaño de cada pantalla. Búsqueda por significado. Consultas por distancia. |
| Trabajo | Las notas que se dejan en una página publicada se convierten en tareas. Los agentes redactan borradores y las personas los aprueban. |
| Agentes | Un agente de larga duración mantiene el contenido al día mediante MCP, con una clave que limita lo que puede cambiar. |
| Apps | Las páginas de administración propias de tu app dentro de la consola, e integraciones que mantienen sincronizados los registros de otro sistema. |
| Exportación | Cada registro se exporta a una base de datos Postgres de tu propiedad. |
API generada
- Qué hace
- Una API GraphQL construida a partir de tus modelos.
Consola
- Qué hace
- Un editor para cada modelo, con versiones, edición colaborativa en directo y vista previa como un público concreto.
Ask Fóir
- Qué hace
- Un asistente en la consola que responde preguntas sobre tus datos y hace cambios como borradores, dentro de tu rol.
Inicio de sesión
- Qué hace
- Un único inicio de sesión alojado: passkeys, verificación en dos pasos y Google, Apple, Shopify o cualquier proveedor OIDC.
Usuarios y roles
- Qué hace
- Un único conjunto de usuarios organizado en pools, con membresías y roles construidos a partir de una sola lista de permisos.
Organizaciones
- Qué hace
- Convierte una app en un SaaS: cada uno de tus clientes recibe un límite que se aplica como row-level security.
Claves
- Qué hace
- Claves publicables, de servidor y de administración. El esquema de una clave contiene solo lo que se le ha concedido.
Registros
- Qué hace
- Los registros pueden ser privados para el usuario que es su propietario. Las actualizaciones aceptan una clave de idempotencia, así que reintentar es seguro.
Publicación
- Qué hace
- Las escrituras se guardan como borradores. Publicar no requiere recompilar. Los despliegues lanzan una campaña en bloque y se pueden revertir.
Personalización
- Qué hace
- Variantes elegidas en el servidor según la ubicación, los segmentos y tus propias dimensiones. Una variante puede sustituir un registro o un solo campo.
Operaciones
- Qué hace
- Tu propio código, llamado a través de la API con un token firmado y con alcance acotado. Cada ejecución queda registrada.
Secretos
- Qué hace
- Un vault. Las funciones y los agentes guardan una referencia, nunca la clave.
Hooks
- Qué hace
- Los eventos de registros y de operaciones ejecutan operaciones, con entregas que puedes volver a enviar.
Muros de pago
- Qué hace
- Una cuota por usuario u organización en cualquier operación, que se amplía con una suscripción comprada a través de Stripe o de una tienda de apps.
Notificaciones y correo electrónico
- Qué hace
- Notificaciones push y de bandeja de entrada con preferencias por persona. Plantillas de correo electrónico que se rellenan con registros en el momento del envío.
Medios, búsqueda, ubicación
- Qué hace
- Imágenes servidas en WebP y AVIF al tamaño de cada pantalla. Búsqueda por significado. Consultas por distancia.
Trabajo
- Qué hace
- Las notas que se dejan en una página publicada se convierten en tareas. Los agentes redactan borradores y las personas los aprueban.
Agentes
- Qué hace
- Un agente de larga duración mantiene el contenido al día mediante MCP, con una clave que limita lo que puede cambiar.
Apps
- Qué hace
- Las páginas de administración propias de tu app dentro de la consola, e integraciones que mantienen sincronizados los registros de otro sistema.
Exportación
- Qué hace
- Cada registro se exporta a una base de datos Postgres de tu propiedad.
Cada uno de estos casos tiene una página en la documentación: https://docs.foir.dev
Cómo empieza un proyecto
- Una persona crea una cuenta en https://platform.foir.io/signup. Este paso requiere un navegador.
foir workspaces create --name acme --select- Escribe
foir.config.tscon tus modelos y luego ejecutafoir push. - Ejecuta
foir mcppara que un agente pueda trabajar en el proyecto como la persona con sesión iniciada.
Conviene saber
- La ubicación, el estado de inicio de sesión y los segmentos se determinan en el servidor, así que la personalización no se puede falsear editando una solicitud.
- Una respuesta que contiene una variante resuelta se marca como privada, así que una caché compartida nunca sirve la versión de un visitante a otro.
- Cómo se compara Fóir con Supabase, Firebase, Sanity, Payload y otros: https://foir.io/compare
- Precios: https://foir.io/pricing