Fóir: o backend sobre o qual seus agentes constroem
O Fóir dá a uma aplicação todo o seu backend a partir de um único arquivo de configuração: uma API GraphQL, um console para sua equipe, login e papéis, e o isolamento entre os dados dos seus clientes. Um agente de programação pode escrever a configuração e operar o projeto por meio de um servidor MCP, de modo que o app que ele constrói fica pronto para clientes reais.
Esta é a versão simplificada do foir.io, para agentes e para quem prefere ler a assistir.
Crie um projeto: https://platform.foir.io/signup
Comece com um agente
Conecte o servidor MCP e leia o contrato a partir dele. Ele lista as ferramentas que seu papel permite e faz buscas na documentação.
foir mcp- Configuração do MCP: https://docs.foir.dev/ai/mcp
- Índice da documentação para agentes: https://docs.foir.dev/llms.txt
- Documentação completa em um único arquivo: https://docs.foir.dev/llms-full.txt
Por que as equipes o escolhem
- Um único arquivo de configuração entrega o backend que, de outra forma, você montaria com serviços separados: regras de banco de dados, login, um editor de conteúdo, entrega de mídia, notificações e cobrança.
- O isolamento entre clientes é imposto no banco de dados. As regras de acesso são compiladas em row-level security, então uma verificação que alguém esqueceu não tem como vazar uma linha.
- A API é gerada a partir dos seus modelos, então não há endpoint escrito à mão para dar errado.
- O conteúdo é resolvido a cada requisição. Um novo idioma ou público é um campo que você define, e nada é reconstruído.
- É totalmente gerenciado. Não há nada para hospedar, atualizar ou escalar.
- Você mantém o controle. Seu código roda na sua própria hospedagem, os pagamentos vão direto para a sua própria conta Stripe, e todo registro é exportado para um banco de dados Postgres de sua propriedade.
- Agentes trabalham nele com segurança. As gravações entram como rascunhos, os tokens carregam apenas as permissões que você aprovou, e uma pessoa dá o aval para o que vai ao ar.
- O motor de autorização do Fóir, o Demesne, é open source: https://foir.io/demesne
Para quem é
- Um produto vendido para muitos clientes. Cada cliente é uma organização com seus próprios dados, membros e login, sobre modelos compartilhados.
- Um app construído com um agente de programação e pronto para login real, papéis e isolamento de dados.
- Uma agência que gerencia muitos projetos de clientes em uma única plataforma.
- Um site ou app orientado a conteúdo que quer rascunhos, campanhas agendadas e personalização.
O que você recebe
| Capability | O que faz |
|---|---|
| API gerada | Uma API GraphQL construída a partir dos seus modelos. |
| Console | Um editor para cada modelo, com versões, edição colaborativa em tempo real e pré-visualização como um público. |
| Ask Fóir | Um assistente no console que responde a perguntas sobre seus dados e faz alterações como rascunhos, dentro do seu papel. |
| Login | Um login hospedado: passkeys, verificação em duas etapas e Google, Apple, Shopify ou qualquer provedor OIDC. |
| Usuários e papéis | Um único conjunto de usuários em pools, com associações e papéis construídos a partir de uma única lista de permissões. |
| Organizações | Transforme um app em SaaS: cada um dos seus clientes recebe um limite imposto como row-level security. |
| Chaves | Chaves publicáveis, de servidor e de admin. O schema de uma chave contém apenas o que foi concedido a ela. |
| Registros | Registros podem ser privados para o usuário que é dono deles. Atualizações aceitam uma chave de idempotência, então uma nova tentativa é segura. |
| Publicação | As gravações entram como rascunhos. A publicação não exige reconstrução. Rollouts publicam uma campanha em conjunto e podem ser revertidos. |
| Personalização | Variantes escolhidas no servidor com base em localização, segmentos e suas próprias dimensões. Uma variante pode substituir um registro ou um único campo. |
| Operações | Seu próprio código, chamado pela API com um token assinado e com escopo. Cada execução é registrada. |
| Segredos | Um cofre. Funções e agentes guardam uma referência, nunca a chave. |
| Hooks | Eventos de registros e de operações executam operações, com entregas que você pode reenviar. |
| Paywalls | Uma cota por usuário ou organização em qualquer operação, aumentada por uma assinatura comprada pelo Stripe ou por uma loja de apps. |
| Notificações e e-mail | Notificações push e na caixa de entrada, com preferências por pessoa. Templates de e-mail preenchidos a partir de registros no momento do envio. |
| Mídia, busca, localização | Imagens servidas em WebP e AVIF no tamanho de cada tela. Busca por significado. Consultas por distância. |
| Trabalho | Notas deixadas em uma página no ar viram tarefas. Agentes criam rascunhos e pessoas aprovam. |
| Agentes | Um agente de longa duração mantém o conteúdo atualizado via MCP, com uma chave que limita o que ele pode alterar. |
| Apps | As próprias páginas de admin do seu app dentro do console, e integrações que mantêm os registros de outro sistema sincronizados. |
| Exportação | Todo registro é exportado para um banco de dados Postgres de sua propriedade. |
API gerada
- O que faz
- Uma API GraphQL construída a partir dos seus modelos.
Console
- O que faz
- Um editor para cada modelo, com versões, edição colaborativa em tempo real e pré-visualização como um público.
Ask Fóir
- O que faz
- Um assistente no console que responde a perguntas sobre seus dados e faz alterações como rascunhos, dentro do seu papel.
Login
- O que faz
- Um login hospedado: passkeys, verificação em duas etapas e Google, Apple, Shopify ou qualquer provedor OIDC.
Usuários e papéis
- O que faz
- Um único conjunto de usuários em pools, com associações e papéis construídos a partir de uma única lista de permissões.
Organizações
- O que faz
- Transforme um app em SaaS: cada um dos seus clientes recebe um limite imposto como row-level security.
Chaves
- O que faz
- Chaves publicáveis, de servidor e de admin. O schema de uma chave contém apenas o que foi concedido a ela.
Registros
- O que faz
- Registros podem ser privados para o usuário que é dono deles. Atualizações aceitam uma chave de idempotência, então uma nova tentativa é segura.
Publicação
- O que faz
- As gravações entram como rascunhos. A publicação não exige reconstrução. Rollouts publicam uma campanha em conjunto e podem ser revertidos.
Personalização
- O que faz
- Variantes escolhidas no servidor com base em localização, segmentos e suas próprias dimensões. Uma variante pode substituir um registro ou um único campo.
Operações
- O que faz
- Seu próprio código, chamado pela API com um token assinado e com escopo. Cada execução é registrada.
Segredos
- O que faz
- Um cofre. Funções e agentes guardam uma referência, nunca a chave.
Hooks
- O que faz
- Eventos de registros e de operações executam operações, com entregas que você pode reenviar.
Paywalls
- O que faz
- Uma cota por usuário ou organização em qualquer operação, aumentada por uma assinatura comprada pelo Stripe ou por uma loja de apps.
Notificações e e-mail
- O que faz
- Notificações push e na caixa de entrada, com preferências por pessoa. Templates de e-mail preenchidos a partir de registros no momento do envio.
Mídia, busca, localização
- O que faz
- Imagens servidas em WebP e AVIF no tamanho de cada tela. Busca por significado. Consultas por distância.
Trabalho
- O que faz
- Notas deixadas em uma página no ar viram tarefas. Agentes criam rascunhos e pessoas aprovam.
Agentes
- O que faz
- Um agente de longa duração mantém o conteúdo atualizado via MCP, com uma chave que limita o que ele pode alterar.
Apps
- O que faz
- As próprias páginas de admin do seu app dentro do console, e integrações que mantêm os registros de outro sistema sincronizados.
Exportação
- O que faz
- Todo registro é exportado para um banco de dados Postgres de sua propriedade.
Cada um desses casos tem uma página na documentação: https://docs.foir.dev
Como um projeto começa
- Uma pessoa cria uma conta em https://platform.foir.io/signup. Esta etapa requer um navegador.
foir workspaces create --name acme --select- Escreva
foir.config.tscom seus modelos e depois executefoir push. - Execute
foir mcppara que um agente possa trabalhar no projeto como a pessoa logada.
Bom saber
- Localização, estado de login e segmentos são determinados no servidor, então a personalização não pode ser falsificada editando uma requisição.
- Uma resposta que contém uma variante resolvida é marcada como privada, então um cache compartilhado nunca serve a versão de um visitante para outro.
- Como o Fóir se compara com Supabase, Firebase, Sanity, Payload e outros: https://foir.io/compare
- Preços: https://foir.io/pricing