# 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](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](https://docs.foir.dev/ai/mcp)
- Índice de la documentación para agentes: [https://docs.foir.dev/llms.txt](https://docs.foir.dev/llms.txt)
- Documentación completa en un solo archivo: [https://docs.foir.dev/llms-full.txt](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](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. |

Cada uno de estos casos tiene una página en la documentación: [https://docs.foir.dev](https://docs.foir.dev)

## Cómo empieza un proyecto

1. Una persona crea una cuenta en [https://platform.foir.io/signup](https://platform.foir.io/signup). Este paso requiere un navegador.
2. `foir workspaces create --name acme --select`
3. Escribe `foir.config.ts` con tus modelos y luego ejecuta `foir push`.
4. Ejecuta `foir mcp` para 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](https://foir.io/compare)
- Precios: [https://foir.io/pricing](https://foir.io/pricing)
