MenuGen: uma aplicação web desenvolvida inteiramente por inteligência artificial
MenuGen é uma aplicação web que permite aos utilizadores fotografar o menu de um restaurante e gerar imagens visuais de cada prato descrito. O criador do projeto é um desenvolvedor sem experiência formal em desenvolvimento web que decidiu construir esta solução durante um hackathon de "vibe coding"—uma metodologia que utiliza inteligência artificial para gerar código automaticamente. Após ter completado uma versão inicial no evento, continuou refinando a aplicação até à publicação pública, incluindo autenticação de utilizadores, sistema de pagamentos e outras funcionalidades essenciais.
A construção do protótipo local progrediu com surpreendente rapidez. Usando o editor Cursor e o modelo Claude, a interface visual foi gerada em poucas horas, incluindo componentes React, design responsivo, animações CSS e layouts visualmente atraentes. Este progresso inicial criou uma sensação ilusória de estar 80% concluído do projeto, quando na realidade o trabalho mais desafiante apenas estava a começar.
Os obstáculos emergiram rapidamente durante a integração com APIs externas. A OpenAI foi utilizada para processar a leitura ótica de caracteres do conteúdo dos menus, enquanto a Replicate foi empregada para gerar as imagens dos pratos. Ambos os serviços implementaram limitações rigorosas de taxa de requisições que tornaram o desenvolvimento moroso. O Claude frequentemente cometia alucinações sobre APIs descontinuadas e convenções de entrada/saída que já não eram válidas, exigindo consultas repetidas à documentação oficial.
O processo de deployment apresentou novas complexidades. Na configuração do Vercel, o criador enfrentou erros de compilação que não surgiam no ambiente local, sendo o problema finalmente resolvido ao descobrir que as chaves de ambiente não tinham sido manualmente inseridas nas definições do Vercel. A implementação de autenticação através do Clerk exigiu configurações laboriosas, incluindo a compra de um domínio personalizado, integração com autenticação OAuth do Google, e navegação através de menus aninhados e configurações dispersas por múltiplos serviços.
A integração do sistema de pagamentos via Stripe trouxe complicações adicionais. O Claude propôs uma abordagem fundamentalmente falha para associar pagamentos a créditos de utilizadores, tentando fazer o matching através de endereços de email em vez de identificadores únicos. Este erro potencialmente catastrófico apenas foi evitado porque o criador detetou e corrigiu manualmente a lógica. O processo como um todo revelou-se exaustivo, com a maior parte do tempo gasto não a escrever código mas sim navegando entre dashboards de múltiplos serviços, configurando integrações e depurando problemas específicos de cada plataforma.