A Nibblify é uma plataforma de entrega completa: uma app para clientes, uma para restaurantes, uma para estafetas, uma consola de operações, um backend e um site em 10 idiomas. Foi construída por uma só pessoa, ao lado de modelos de IA de ponta. Chamamos a este método vibe engineering.
Vibe engineering não é «deixar a IA escrever e torcer». É uma divisão de trabalho: o humano detém a intenção, a arquitetura e a decisão final; os modelos detêm a escrita, a memória e o primeiro rascunho; e o próprio repositório detém a prova — testes, validadores e verificações em tempo de build que falham ruidosamente assim que algo se desvia.
Cada funcionalidade começa como uma decisão, não como um prompt: o que tem de fazer, que dados toca, o que nunca pode quebrar. A arquitetura, o modelo de dados e os compromissos continuam humanos. Nunca se pergunta aos modelos o que construir — apenas como construir aquilo que já foi decidido.
Ecrãs, controladores, migrações de dados, traduções, testes — a primeira versão chega em minutos em vez de dias. E é tratada exatamente como isso: um rascunho, lido linha a linha, reescrito onde erra e deitado fora por completo quando falha o essencial.
Nada vai para produção só por intuição. 296 ficheiros de teste, suites de regras de segurança, um verificador de chaves i18n, uma auditoria de metadados SEO e um validador de reciprocidade de links correm sobre o código. Quando o código escrito por IA está errado, é uma máquina que o diz muito antes de um utilizador.
Cada repositório traz o seu próprio guia de arquitetura — um mapa vivo da sua estrutura, convenções e armadilhas. Os modelos começam cada sessão já a conhecer o código, e é isso que os transforma de autocompletar num colaborador a sério.
Cada modelo foi usado onde é mais forte — e verificado pelos outros onde não é.
Pensamento de produto, naming, textos para o utilizador e as longas discussões sobre o que uma funcionalidade deve realmente ser. A maioria dos ecrãs da Nibblify existiu como conversa muito antes de existir como código.
Pesquisa alargada sobre APIs, regras das plataformas e políticas das lojas de aplicações, além de uma leitura independente dos designs e do código dos outros modelos. Quando dois modelos discordavam, a própria discordância era o sinal útil.
Trabalha diretamente dentro dos repositórios: lê todo o código, escreve e refatora ao longo de centenas de ficheiros, corre as suites de testes, corrige o que partiu e faz commit. É daqui que vem a maior parte das 300.000 linhas.
As quatro apps partilham uma só linguagem e um só toolkit de interface, por isso iOS, Android e web saem de uma única base de código. Flutter com Riverpod, Provider e go_router, sobre Dart 3.10.
Node.js em Firebase Cloud Functions trata de encomendas, pagamentos, atribuição de estafetas, cifragem AES-256 de dados pessoais, exportações RGPD, notificações push e toda a API de administração.
Auth, Firestore, Storage, Messaging, Remote Config, App Check, Crashlytics e Analytics — com regras de segurança escritas à mão a proteger cada coleção. A base de dados é o contrato entre as quatro apps.
Este site é HTML e CSS escritos à mão com Tailwind, compilados por um build em Node que renderiza cada página em 10 idiomas e gera sozinho as tags hreflang, os dados estruturados, o sitemap e as variantes de imagem.
Medido a 2 de agosto de 2026. Dependências e ficheiros gerados automaticamente estão excluídos: estas são linhas realmente escritas para a Nibblify.
A app do cliente: descoberta, exploração no mapa, pesquisa tolerante a erros de escrita, carrinho, pagamento, seguimento do pedido em direto, avaliações e conta. Versão 1.0.127, publicada em 10 idiomas.
A app do restaurante: menus, ofertas, horários, fluxo de encomendas em direto, gestão de equipa, pagamentos e programa de criadores. Versão 1.0.74, publicada em 10 idiomas.
A app do estafeta: entrar ao turno, navegação da viagem em direto, prova de entrega, ganhos e carteira. Versão 1.0.45, feita para ser leve nos telemóveis modestos que os estafetas realmente usam.
A consola interna de operações: verificação de restaurantes, documentos e carteiras de estafetas, apoio a encomendas, mapas em direto, analytics e monitorização — com 102 Cloud Functions exclusivas de administração por trás.
Cloud Functions, gatilhos do Firestore e tarefas agendadas, mais 1.119 linhas de regras de segurança do Firestore e do Storage a cobrir 47 coleções.
296 ficheiros de teste em Dart, além de suites de integração sobre emulador e testes das regras de segurança. É esta a rede de segurança que torna seguro publicar código escrito por IA.
26 ficheiros de idioma para as apps e 10 dicionários para o site, que se expandem em mais 154.700 linhas de Dart gerado. O árabe é publicado com um layout da direita para a esquerda completo, e não um espelhamento acrescentado no fim.
20 páginas de origem transformadas em 200 páginas estáticas localizadas por um build próprio em Node — sem framework e com menos de 250 linhas de JavaScript a chegar ao navegador.
Contando o código de localização gerado a partir dessas traduções, os repositórios têm cerca de 463.000 linhas no total.
Cada repositório documenta a sua própria arquitetura, para que o modelo saiba como este código funciona antes de escrever uma linha.
2.456 commits, não cinquenta. Cada alteração é pequena o suficiente para ser lida na íntegra por uma pessoa antes de entrar.
Testes, paridade das chaves de tradução, auditorias de metadados SEO e suites de regras de segurança correm em cada alteração.
255 builds publicadas nas lojas para as quatro apps, com relatórios de falhas e analytics a dizer-nos o que realmente aconteceu.
«Os modelos não substituíram a engenharia. Tiraram a escrita. O que fica é a parte que sempre foi difícil: decidir o que construir e ter a certeza de que funciona.»
A Nibblify Food começa como um único projeto Flutter com um backend Firebase por trás.
A Nibblify Partner arranca e o projeto deixa de ser uma app para passar a ser um sistema.
Um build estático próprio renderiza o site em 10 idiomas, com hreflang, dados estruturados e auditorias SEO por página.
A Nibblify Driver, o Staff Portal e um repositório de backend partilhado começam todos no espaço de três semanas.
A plataforma entra num piloto à escala da cidade e chega a Le Mans testada, e não teórica.
Ver a parceria →