/foːɾʲ/Irish, verbto help
El backend sobre el que construyen tus agentes.
Contenido estructurado y datos de aplicación, gestionados juntos. Defines tus modelos y Fóir aporta la API, las herramientas de edición, el inicio de sesión de clientes y el aislamiento de tenants.
La construcción
Tu backend empieza como un archivo de configuración.
Escríbelo tú o pídeselo a un agente de programación. Nombra tus modelos, sus campos y cómo inician sesión tus clientes.
Fóir genera la API a partir de él.
Modelos, campos, búsquedas e inicio de sesión de clientes son líneas de configuración. Un push los convierte en una API GraphQL.
Consola
Tu equipo edita junto, en una consola construida a partir de tus modelos.
Cada modelo recibe un editor con campos tipados, versiones y una vista previa. Varias personas pueden trabajar en el mismo registro a la vez y ver los cursores de las demás.
Ask Fóir
Hazle a Fóir una pregunta sobre tus datos.
El asistente de la consola cuenta entre tus registros, compara los pasos y te dice lo que encontró, con los números que usó.
Luego pídele que haga el trabajo.
Busca, escribe y cambia registros con las mismas herramientas que tú, y no puede hacer nada que tu propio rol no pueda. Lo que escribe queda esperando como borrador.
Inicio de sesión y roles
El inicio de sesión viene integrado.
Un único login alojado para tu equipo y tus usuarios: passkeys, verificación en dos pasos e inicio de sesión con Google, Apple, Shopify o cualquier proveedor OIDC.
Un solo conjunto de usuarios, en pools, con roles.
Un pool contiene a las personas que pueden iniciar sesión en un proyecto o en una organización. Una pertenencia da un rol a un usuario, y cada rol se construye a partir de la misma lista de permisos.
Registros
La app lee con una clave publicable.
Se ejecuta en tu propio hosting y pide a la API los productos que cualquiera puede ver.
Los clientes inician sesión, y un registro puede pertenecer a uno.
Fóir aloja el inicio de sesión. Un modelo puede hacer que cada registro sea privado para el cliente que lo posee.
Una escritura se puede enviar dos veces sin riesgo.
Una conexión débil hace que la app vuelva a enviar el pedido. Lleva la misma clave de idempotencia, así que Fóir responde con el primer resultado y no cambia nada.
Nadie más puede leerlo.
Un segundo cliente envía la misma consulta y no obtiene nada. La regla se aplica en la base de datos, así que una comprobación que olvidaste no puede provocar la fuga de una fila.
Publicación
El contenido se edita desde cualquier lugar.
Un editor añade una imagen desde un teléfono. Se guarda como borrador, así que la app sigue mostrando la página publicada.
Publica, y la app lo tiene.
El contenido se resuelve en cada solicitud, así que la siguiente lectura devuelve la versión nueva. No se reconstruye ni se vuelve a desplegar nada.
Personalización
Fóir decide qué versión recibe cada visitante.
Un sitio web, una app y un agente envían la misma lectura. Un visitante al que no corresponde ninguna regla recibe la versión por defecto.
Averigua quién pregunta.
La ubicación viene de la solicitud y los segmentos del perfil del cliente, en el servidor. Este ha gastado más de £1,000, así que se sirve la entrada VIP.
Las reglas se combinan, y la prioridad decide.
Este visitante está en París y ha comprado zapatillas de running antes. Coinciden tres entradas, y la primera de ellas es la que se sirve.
Una variante puede cambiar un campo y dejar el resto.
Puede reemplazar un registro entero, o sustituir un solo campo o un párrafo. Los editores escriben cada versión en el mismo editor y la previsualizan como el público al que va dirigida.
Un visitante no puede hacerse pasar por otro.
La ubicación y los segmentos nunca se toman de quien llama. Editar la solicitud no cambia nada, y vuelve la versión por defecto.
Despliegues
Programa una campaña y lánzala como una sola.
Un despliegue publica un conjunto de registros a la vez en el momento que eliges. Páusalo, reintenta lo que falló o revierte todo.
Claves
Cada clave ve solo la API que se le concedió.
Una mutación que una clave no puede ejecutar falta en el esquema que se le entrega, así que una clave filtrada no tiene nada que descubrir.
Organizaciones
Convierte la app que construiste en un SaaS.
Un segundo cliente quiere lo que construiste para el primero. Añádelo como organización: los mismos modelos y el mismo código, con sus propios datos, sus propios miembros y su propio inicio de sesión.
Ningún cliente puede leer los datos de otro.
La credencial fija el límite antes de que una consulta llegue a una fila, y la regla se ejecuta como row-level security en la base de datos. Una comprobación que olvidaste no puede provocar una fuga.
Muro de pago
Añade un paywall a tu app.
Dale a una operación una cuota por usuario o por organización. Cuando alguien la alcanza, puede pagar, mediante Stripe en la web o una tienda de apps en el teléfono, y su suscripción sube el límite. El dinero va directo a tu propia cuenta.
Operaciones
Tu lógica se ejecuta en código que es tuyo.
Describe lo que necesitas y Fóir redacta el contrato, y luego entrega a tu agente de programación un prompt. El agente lo escribe y lo despliega en tu hosting. Fóir nunca guarda tu código.
Cada llamada llega firmada y con alcance.
Fóir determina quién llama y qué puede tocar la operación, y lo envía con la llamada. Su cliente tipado convierte cualquier cosa fuera de las concesiones en un error de compilación. Cada ejecución queda registrada, y un reintento lleva la misma clave de idempotencia para que nada ocurra dos veces.
Secretos
Los secretos se quedan en el vault.
Tu código guarda una referencia y nunca la clave. Fóir la rellena cuando llama a tu función, solo para el proyecto al que pertenece la llamada, y registra cada lectura.
Cuando un agente necesita una clave, se la pide a una persona.
El agente crea una tarea en Work y espera. Alguien añade la clave desde su teléfono, va directa al vault, y el agente sigue con una referencia que puede usar y un valor que nunca ve.
Hooks
Reacciona cuando algo ocurre.
Un hook ejecuta una operación cuando un registro se crea, cambia o publica, o cuando termina otra operación. La entrega es al menos una vez, y cualquier entrega puede reenviarse.
Notificaciones
Avisa a tus clientes en el momento en que algo cambia.
Una notificación sale como push y llega a la bandeja de entrada de la propia app. Cada cliente elige las categorías sobre las que quiere enterarse, y Fóir respeta esa elección.
Correo electrónico
Correo que lee tus datos.
Una plantilla se rellena con tus registros en el momento del envío. Envíala sobre un registro o a un segmento entero, con una programación, con el consentimiento aplicado y las aperturas registradas.
Medios
Sube una imagen una vez. Cada pantalla recibe la suya.
Un campo de imagen devuelve WebP y AVIF en los tamaños que pide una pantalla, con un blurhash que se muestra mientras carga la imagen.
Búsqueda
Busca por significado, dentro de lo que quien llama puede leer.
Los registros se convierten en embeddings a medida que se escriben. Una pregunta encuentra la coincidencia más cercana, y un registro privado nunca aparece para otra persona.
Cerca
Encuentra lo que está cerca.
Un campo geopunto hace que los registros se puedan buscar por distancia, de modo que una app puede preguntar qué hay a menos de dos kilómetros de donde está alguien.
Trabajo
Una nota en tu sitio en vivo se convierte en una tarea.
Cualquiera a quien permitas puede dejar una nota en una página. Está anclada al registro que hay detrás de la página, así que llega a Work con lo correcto adjunto.
Personas y agentes deciden qué sale, en un solo lugar.
Asigna la tarea a un compañero o entrégasela a Fóir. El agente escribe borradores con libertad, y nada sale en vivo hasta que una persona aprueba la publicación.
Agentes
Dale a un agente un trabajo permanente.
Un agente de larga duración vigila lo que ocurre y mantiene tu contenido al día mediante MCP. Su clave delimita lo que puede cambiar, así que actúa por su cuenta dentro de esos límites.
Tu app en la consola
El administrador propio de tu app, dentro de la consola.
Una app declara una página y los permisos exactos con los que actúa. La consola la muestra en su navegación y le entrega un token, así que no se cruza ninguna contraseña ni cookie.
Integraciones
Conecta los sistemas que ya ejecutas.
Una app de integración asigna los campos de otro sistema a tus modelos y mantiene los registros sincronizados. Un cambio allí actualiza el mismo registro aquí.
Exportación
Tus datos son tuyos y te los puedes llevar.
Un comando exporta cada registro a una base de datos Postgres que es tuya.
Empezar
Crea un proyecto y define tus modelos.
Lo demás ya está ahí.