Vibe coding

Tenho uma pequena confissão a fazer.
Eu vibe codei este site.
Isso é um pouco constrangedor para alguém como eu.
Passei décadas usando Unix, escrevendo código, configurando máquinas, quebrando sistemas, lendo man pages e acreditando — talvez com um certo orgulho — que entender as coisas importava.
Ainda acredito nisso.

a computer used to feel closer
Eu não programei este site do jeito antigo
Eu conversei sobre ele.
Descrevi o que queria.
Pedi mudanças.
Rejeitei ideias.
Comparei referências.
Muito moderno.
Muito cyberpunk.
Pouco Unix.
Parecido demais com um sistema operacional de brinquedo.
Fui ajustando até reconhecer alguma coisa minha na tela.
Boa parte do código foi escrita por uma IA.
E isso me incomoda um pouco.
Não porque eu ache que exista alguma virtude especial em digitar CSS à mão.
Mas porque programar, para mim, sempre esteve ligado a uma forma particular de intimidade com a máquina.
Você pensa.
Você escreve.
A máquina faz outra coisa.
Você descobre por quê.
Existe conhecimento nesse atrito.

PLACEHOLDER — somewhere underneath
Com vibe coding, parte desse atrito desaparece.
A intenção não chega mais diretamente ao código.
Agora existe alguma coisa no meio.
Antes eu expressava intenção em código.
Agora também posso expressar intenção sobre código.
Essa diferença parece pequena até você começar a trabalhar assim.
Em algum momento, percebi que já não estava dizendo exatamente como implementar as coisas.
Eu estava dizendo o que deveria existir.
quero que isso pareça uma workstation Unix antiga.
menos cyberpunk.
Plan 9 deveria ser mais seco.
esse texto não pertence ao Lab.
o tema precisa mudar a identidade
sem mudar o site inteiro.
Isso se parece menos com programar uma máquina e mais com conversar com outro programador.
Ideias que ficavam na gaveta
Talvez seja por isso que tenho produzido tanta coisa ultimamente.
Sempre tive mais ideias do que tempo para implementá-las.
Algumas viravam notas.
Outras, pequenos toy projects.
Muitas morriam antes mesmo de chegar ao editor.
Nem sempre por falta de interesse.
Às vezes eu simplesmente sabia o tamanho do trabalho que vinha depois da ideia.
E a vida tem outras coisas.
Trabalho.
Casa.
Família.
Uma quantidade finita de noites e fins de semana.
Existe um tipo particular de projeto que você adia não porque não quer fazê-lo, mas porque conhece bem demais o custo de fazê-lo direito.
IA reduziu esse custo de início.
Não tornou as ideias automaticamente boas.
Não eliminou decisões.
Não criou mais horas no dia.
Mas diminuiu bastante a distância entre:
isso seria interessante
e
existe alguma coisa funcionando na minha frente.
Isso mudou meu comportamento.
Tenho conseguido colocar para fora ideias que provavelmente continuariam como arquivos de texto, diagramas ou pensamentos soltos.
Algumas vão morrer depois.
Outras vão virar projetos reais.
Mas agora elas têm a chance de existir por tempo suficiente para que eu descubra qual das duas coisas são.
Talvez essa seja, para mim, a parte mais sedutora do vibe coding.
Não escrever software mais rápido.
Dar uma forma inicial a ideias que antes não sobreviveriam ao custo de começar.
Então quem fez o site?
A pergunta aparece cedo ou tarde.
Eu fiz este site?
Não sei se existe uma resposta simples.
Eu não saberia apontar todas as linhas que foram escritas pelo modelo.
Mas sei por que existem quatro temas.
Sei por que um deles se chama Workstation.
Sei por que não quero neon demais.
Sei por que existe um Lab.
Sei por que uma TV box quebrada merece uma página.
Sei por que certas coisas pertencem a Writing e outras a Notes.
Sei por que estou escrevendo este texto.

vladymir.info, 2026
A intenção continua sendo minha.
Mas a tradução dessa intenção para código mudou de lugar.
Talvez a autoria também tenha mudado de lugar.
Mais uma abstração
Existe uma maneira fácil de discutir vibe coding:
perguntar se ainda é programação.
Não sei se essa é a pergunta mais interessante.
Abstrações sempre mudaram a distância entre intenção e máquina.
machine code
↓
assembly
↓
C
↓
libraries
↓
frameworks
↓
...
Cada camada permitiu dizer menos sobre como e mais sobre o quê.
IA parece continuar esse movimento.
Mas há uma diferença estranha.
Essa abstração responde.
Você pode argumentar com ela.
Pode dizer que uma solução está errada sem saber exatamente onde.
Pode pedir outra.
Pode dizer:
não é isso.
mais simples.
menos bonito.
mais estranho.
agora ficou pior.
volta.
E alguma coisa acontece.
intent
↓
language
↓
model
↓
code
↓
machine
A parte perigosa
Um modelo preenche lacunas.
É exatamente isso que o torna útil.
Mas essas lacunas também são decisões.
Estrutura.
Nomes.
Dependências.
Comportamento.
Estética.
Suposições.
Quanto menos código eu escrevo diretamente, mais preciso perceber quando alguma decisão deixou de ser minha.
É fácil aceitar uma abstração.
É mais difícil perceber quando a abstração começou a escolher por você.
Talvez essa seja a parte do vibe coding que mais me interessa.
Não a possibilidade de gerar código rapidamente.
Mas a necessidade de manter intenção enquanto outra coisa implementa partes dela.
O trabalho muda de forma
Você escreve menos instruções para a máquina.
Passa mais tempo descrevendo limites.
Dizendo não.
Reconhecendo quando algo está quase certo, mas ainda não é seu.
E, curiosamente, isso também permite experimentar mais.
Ideias baratas de testar podem continuar pequenas.
Toy projects podem continuar toy projects.
Nem toda curiosidade precisa justificar semanas de implementação antes de mostrar se havia alguma coisa ali.
Isso, para mim, é uma mudança importante.
Talvez programação tenha sempre sido um pouco disso.
Só ficou mais visível agora.
Este site foi vibe coded.
Eu não sei apontar todas as linhas que foram escritas pelo modelo.
Mas sei por que existem quatro temas.
Sei por que um deles se chama Workstation.
Sei por que não quero neon demais.
Sei por que existe um Lab.
Sei por que uma TV box quebrada merece uma página.
Sei por que estou escrevendo este texto.
O código talvez não seja inteiramente meu.
O site é.


