Awesome Vibe Coding – A arte de programar com IA, mas com responsabilidade.

Olá a todos,

Continuando a nossa aventura pelo mundo da IA e do desenvolvimento de software, dei recentemente com um repositório no GitHub que me deixou genuinamente entusiasmado — e ao mesmo tempo a pensar bastante sobre o que significa “saber programar” nesta nova era. Falo do Awesome Vibe Coding, criado pelo utilizador bluegalaxy111, que agrega mais de 500 ferramentas, plataformas, recursos e comunidades dedicadas ao fenómeno que está a varrer o mundo da tecnologia e que já falamos aqui amplamente no passado: o vibe coding.

O conceito foi cunhado por Andrej Karpathy em fevereiro de 2025, quando descreveu uma nova forma de programar onde o utilizador se entrega completamente às good vibes, abraça os exponenciais, e esquece que o código sequer existe. Em termos práticos, significa descrever o que se quer construir em linguagem natural e deixar a IA tratar da implementação. E, se há uns anos isto soava a ficção científica, hoje é uma realidade que está a democratizar o desenvolvimento de software de uma forma que não tínhamos visto desde a chegada das linguagens de alto nível.

O que é o Awesome Vibe Coding?

O Awesome Vibe Coding é um repositório público no GitHub que funciona como um hub centralizado para tudo o que existe no ecossistema do desenvolvimento assistido por IA. Tal como o Awesome Selfhosted ou o Awesome Local AI que já abordámos aqui no blog, este repositório segue a tradição “awesome” de curadoria comunitária e organizada.

O que torna este repositório diferente é a sua abrangência. Não se limita a listar editores de código com IA integrada. Vai muito além: cobre agentes autónomos de software, construtores de aplicações no-code, ferramentas de revisão de código, engenharia de prompts, servidores MCP, frameworks multi-agente, IA local para programação, DevOps assistido por IA, desenvolvimento móvel e de jogos, controlo de versões inteligente, ferramentas de dados e analytics, e muito mais. É literalmente tudo o que precisas para construir software moderno com a IA como copiloto — ou mesmo como piloto principal.

O que encontras lá dentro?

Agentes de Codificação com IDE

A secção dos IDE-Based Agents é provavelmente o ponto de entrada para a maioria das pessoas. Ferramentas como o Cursor, o Windsurf ou o Zed são editores de código construídos de raiz com IA integrada, capazes de editar múltiplos ficheiros simultaneamente, compreender toda a base de código e executar comandos de forma autónoma. Para quem usa VS Code, o GitHub Copilot com agent mode é a opção mais natural.

Na linha de comandos, temos o Claude Code da Anthropic, o Aider (a alternativa open-source mais robusta), o Cline, e muitos outros que operam diretamente no terminal, lendo e escrevendo ficheiros com acesso total ao sistema.

Construtores de Aplicações No-Code

Esta é, a meu ver, a categoria mais revolucionária. Plataformas como o Lovable, o bolt.new, o v0 da Vercel ou o Replit Agent permitem a qualquer pessoa — independentemente do seu background técnico — descrever uma aplicação em linguagem natural e receber de volta uma aplicação web funcional, com frontend, backend, base de dados e autenticação. O conceito de “descreve e publica” nunca esteve tão próximo da realidade.

Modelos Open-Source para Programação Local

Para os entusiastas do self-hosting (e sabemos que somos muitos por aqui), o repositório tem uma secção dedicada à IA local para programação. Ferramentas como o Ollama, o LM Studio ou o Jan permitem correr modelos localmente, e há uma lista extensa de modelos open-source especializados em código: DeepSeek Coder V2, Qwen 2.5 Coder, CodeLlama da Meta, StarCoder 2, Codestral da Mistral, entre outros. A privacidade dos dados e o controlo total sobre a infraestrutura continuam a ser razões válidas para preferir o caminho local.

Protocolo MCP e Automação de Workflows

O repositório dedica uma secção generosa aos Servidores MCP (Model Context Protocol), o standard aberto criado pela Anthropic que permite aos agentes de IA ligar-se de forma segura a ferramentas externas, bases de dados e serviços. Há servidores MCP para GitHub, Filesystem, PostgreSQL, Docker, Vercel, Sentry, Supabase, Notion, Slack, Linear, Figma, e muitos mais. Para quem já experimenta o Claude Code ou outros agentes modernos, o MCP é literalmente a ponte entre a IA e o mundo real.

Engenharia de Prompts e Ficheiros de Regras

Uma das secções mais práticas e frequentemente subestimadas é a de Engenharia de Prompts para Código e os chamados “rules files”. Ferramentas como o Awesome CursorRules ou o cursor.directory disponibilizam ficheiros .cursorrules e CLAUDE.md com convenções específicas por projeto, framework e linguagem. Estes ficheiros são, na prática, o manual de estilo que dás à IA para que ela escreva código consistente com as tuas preferências e padrões.

A emoção de experimentar — e porque isso é essencial

Uma das coisas que mais gosto neste repositório é que ele normaliza a experimentação. O mundo do vibe coding está em constante ebulição — novas ferramentas surgem todos os dias, os modelos ficam progressivamente mais capazes, e as fronteiras do que é possível deslocam-se semana após semana.

Experimentar é fundamental. Não há outra forma de perceber se o Cursor é melhor para ti do que o Windsurf, se preferes trabalhar com Claude Code no terminal ou com um agente no IDE, se o Lovable resolve o teu caso de uso ou se o bolt.new é mais adequado. Cada pessoa tem um workflow diferente, cada projeto tem requisitos distintos, e só a experiência prática te vai permitir construir o teu próprio stack de ferramentas.

A curva de aprendizagem aqui é curiosamente invertida relativamente ao que estávamos habituados. Em vez de aprender a sintaxe antes de conseguir ver resultados, com vibe coding vês resultados imediatos e aprendes à medida que iteras. Isso tem um efeito motivacional poderoso, especialmente para quem está a começar. O feedback loop é quase instantâneo, e a sensação de “construí isto eu” é genuína — mesmo que a IA tenha escrito a maior parte do código.

Mas há um reverso da medalha que não podemos ignorar

Dito isto, seria irresponsável da minha parte escrever um post sobre vibe coding sem falar daquilo que o próprio repositório, nas suas secções de “Best Practices” e “Opinions & Criticism”, aborda com honestidade: o código gerado por IA não é automaticamente bom código.

O repositório lista explicitamente uma série de preocupações legítimas: problemas de manutenibilidade, vulnerabilidades de segurança que um não-programador não consegue identificar, dependência excessiva da IA, alucinações (o modelo escreve código plausível mas subtilmente errado), dívida técnica acumulada, e dificuldades de escalabilidade quando os fundamentos são frágeis.

Deixa-me desenvolver cada um destes pontos, porque acho que merecem mais do que uma linha.

Valida sempre o código que a IA gera

Este é talvez o princípio mais importante de todos. A IA pode gerar código que compila, que passa nos testes que ela própria escreveu, que parece funcionar na demo — e ainda assim estar errado de formas subtis e perigosas. Uma função de autenticação que tem um race condition. Uma query SQL que é vulnerável a injeção. Um sistema de ficheiros que não valida corretamente os paths de input. Um algoritmo de ordenação que falha em casos extremos.

Tratar o output da IA como um pull request de um junior developer — com toda a revisão crítica que isso implica — é a mentalidade correta. Não porque a IA seja má a programar (frequentemente é excelente), mas porque a responsabilidade pelo código que colocas em produção é tua.

Aprende os princípios básicos de programação

Há uma discussão genuína no mundo tech sobre se o vibe coding está a matar a necessidade de aprender a programar. A minha posição é clara: não está, e nunca vai estar completamente.

Compreender os fundamentos — estruturas de dados, algoritmos, o modelo de memória, a diferença entre processamento síncrono e assíncrono, como funciona uma base de dados relacional, o que é uma stack trace — não é um requisito burocrático. É o que te permite perceber porque o código da IA não está a funcionar, o que te permite fazer perguntas melhores à IA, e o que te permite reconhecer quando a solução gerada é uma gambiarra em vez de uma solução real.

O próprio repositório recomenda livros como “The Pragmatic Programmer” e cursos como o CS50 de Harvard precisamente por isso. Os princípios atemporais do desenvolvimento de software de qualidade — Clean Code, SOLID, DRY, separação de responsabilidades — continuam a ser relevantes mesmo quando a IA escreve o código. Na verdade, são ainda mais importantes porque é a tua compreensão desses princípios que te vai permitir guiar a IA na direção certa e reconhecer quando ela se desviou.

A segurança não é opcional — mesmo no vibe coding

Este é um tópico que me é particularmente caro, dado o foco deste blog em segurança e arquitetura de sistemas. O vibe coding introduz alguns riscos de segurança específicos que vale a pena conhecer.

Em primeiro lugar, a IA tende a gerar código que funciona, não necessariamente código que é seguro. Validação de input, sanitização de dados, gestão de sessões, controlo de acesso, gestão de segredos e variáveis de ambiente — estas preocupações nem sempre aparecem espontaneamente no output da IA, especialmente quando o prompt se foca na funcionalidade.

Em segundo lugar, ferramentas como o Socket (listada no repositório) existem precisamente para detectar ataques à supply chain e código malicioso em dependências open-source — uma superfície de ataque que aumenta exponencialmente quando estás a instalar pacotes npm ou pip a uma velocidade de vibe coding. Nunca corras npm install de algo que a IA sugeriu sem olhar para o que estás a instalar.

Em terceiro lugar, o próprio protocolo MCP, apesar de ser uma inovação fantástica, abre novos vetores de ataque se não for configurado com cuidado. Dar a um agente de IA acesso ao teu filesystem, às tuas bases de dados ou ao teu repositório GitHub é uma decisão que deve ser feita conscientemente, com o princípio do menor privilégio sempre em mente.

Ferramentas como o Snyk, o CodeRabbit ou o Trunk (todas listadas no repositório) são exatamente o tipo de camada de segurança que deves ter no teu pipeline, especialmente quando estás a trabalhar com código que não escreveste linha a linha.

O workflow de “pensar primeiro, codificar depois”

O próprio repositório documenta o que chama de “Think First, Code Second Workflow” — e é um conselho excelente. Define os requisitos antes de abrir o editor. Cria um plano de arquitetura (a IA pode ajudar aqui também). Divide o trabalho em tarefas pequenas. Usa a IA para implementar cada tarefa individualmente. Testa e verifica após cada tarefa. Faz commit frequentemente para o git.

Este workflow não é diferente do bom senso de engenharia de software que se pratica há décadas. A IA não muda os fundamentos — apenas muda o quão rápido consegues mover-te quando os tens bem assentes.

O que mais me entusiasmou no repositório

Para além do conteúdo em si, há algumas coisas na forma como o repositório está construído que me parecem modelares.

A secção de Benchmarks & Comparisons é particularmente útil — o SWE-bench, o Aider Leaderboard, o Chatbot Arena e o Artificial Analysis são recursos que permitem comparar modelos e ferramentas com base em dados reais, não em marketing.

A secção de Learning Resources é impressionante na sua amplitude: artigos, canais de YouTube, cursos, livros, newsletters e podcasts. Destaco o canal do Fireship para quem quer acompanhar a evolução das ferramentas de forma rápida e bem-humorada, e o trabalho de Simon Willison no seu blog para análises mais aprofundadas e práticas.

E a secção de Communities lembra-nos que o vibe coding é, acima de tudo, um movimento comunitário. Subreddits como r/vibecoding e r/LocalLLaMA, os Discord oficiais do Cursor, Anthropic e Replit, e o Hacker News são onde as conversas mais interessantes acontecem.

O Awesome Vibe Coding é, tal como os outros repositórios “awesome” que já abordámos aqui, uma mina de ouro para qualquer pessoa que queira explorar o estado da arte do desenvolvimento de software assistido por IA. Quer sejas um developer experiente à procura de novas ferramentas para o teu workflow, quer sejas um não-programador que quer construir o seu primeiro produto, há algo neste repositório para ti.
A mensagem que fica, e que espero que este post tenha comunicado com clareza, é dupla: experimenta sem medo, mas aprende com responsabilidade. O vibe coding é uma ferramenta extraordinariamente poderosa. Como qualquer ferramenta poderosa, é tanto mais útil quanto mais compreenderes como funciona e quais são os seus limites.

Valida o código. Aprende os princípios básicos. Leva a segurança a sério. Usa o git. E diverte-te — porque há algo genuinamente emocionante em descrever uma ideia e ver uma aplicação a tomar forma à tua frente.

Espero que tenham gostado do post desta semana. Como sempre, se encontrarem algo fora do sítio, ou que mereça reparo, já sabem onde me encontrar.
Um abraço.
Nuno

Links mencionados neste artigo: