Gabriel Olegário

Open Source

Um diário de leituras que você pode fazer fork

O Gume está aberto, no ar, e é construído por quem aparece. Notas de um publicitário que entregou um banco de dados.

A luminous goldfish drifting above still water, facing a small figure.

A última coisa que escrevi aqui terminava com uma afirmação: traga método e intenção para a ferramenta, e ela vira uma alavanca que move trabalho real.

Isso é fácil de escrever num manifesto. Então fomos testar.

O Gume está no ar, e o código é aberto. É um diário de leituras: um lugar para registrar o que você leu, o que está lendo e o que ainda espera na estante. Roda sobre um catálogo de quase 300 mil edições em língua portuguesa. É licenciado AGPL-3.0. Foi construído no aberto, em público, por um publicitário que não é programador, trabalhando em par com um agente de IA.

E é, de longe, a coisa mais útil com que eu já aprendi.

O que ele é, numa tela

Leitores brasileiros ficaram quinze anos presos a um Skoob em decomposição, e as alternativas são todas estrangeiras, inglês-primeiro, construídas em torno do instinto errado. Então:

A estante do Gume: capas de livros sobre preto, cada uma com uma avaliação de uma palavra em vez de nota.
A estante / as capas são a única cor da página

Uma estante. Quero ler, lendo, lido, abandonado. Releituras. Físico e digital no mesmo lugar. Ter um livro e ler um livro são coisas diferentes, e aqui são contadas separadamente.

Uma avaliação que é uma palavra. Adorei, gostei, achei ok, não gostei, não terminei. Nunca um número. Uma estrela é uma escala, uma escala vira média, uma média vira placar, e um placar transforma leitura em performance.

Um feed cronológico, e uma sala para vagar. O feed é só quem você escolheu seguir, sem nada injetado no meio. E há uma aba separada para explorar, cheia de estantes de gente que você ainda não segue, embaralhadas em vez de ranqueadas. A descoberta existe aqui. Ela só não vem te procurar.

Arquivos que você leva embora. Um clique, e o arquivo baixa: JSON e CSV, com a sua estante, as suas datas de leitura, as suas avaliações, as suas resenhas (inclusive as privadas) e cada correção de catálogo que você fez. Sem fila, sem e-mail, sem "estamos preparando o seu arquivo", que é atrito fantasiado de cuidado. E o CSV usa as colunas de exportação do Goodreads, o formato que Skoob, StoryGraph, Oku e Fable já sabem ler. Uma exportação só é uma saída se outro app consegue abri-la. Um JSON proprietário que ninguém importa é um bilhete de resgate em tipografia bonita.

Um grafo de livros aberto. Os metadados são corrigidos por leitores, e a intenção é publicá-los de volta como dataset aberto. Se este projeto morrer, os dados devem sobreviver a ele.

O manifesto é uma lista de recusas

A parte interessante de um produto raramente é o que ele tem. É o que ele não vai fazer, de propósito, quando fazer funcionaria.

Cada uma dessas é uma recusa de receita. É isso que faz dela uma promessa em vez de uma preferência.

E aqui está a que eu não vou maquiar, porque é a costura honesta da coisa toda: existe uma escada, e ela conta livros. Ferro, Bronze, Prata, e acima, pelo que você leu na vida. Então sim, uma coisa que sobe quando você lê mais existe num produto que diz que leitura não é performance.

O que fizemos foi despir a escada de tudo que torna um número cruel. Não tem placar, então não há ninguém a vencer. Nunca cai, então parar por um ano não custa nada. Nunca olha o relógio, então não há mês nem temporada. Não pode ser ordenada, então não pode ser ranking. O que sobra é uma forma lenta da sua vida como leitor, visível só para você e para quem já te conhece.

Isso é uma vitória limpa? Não. Uma escada que conta livros pode ser farmada com livros finos, e eu sei disso. É uma tensão que carregamos de propósito em vez de fingir que resolvemos. Se você acha que erramos a troca, esse argumento pertence a uma issue, e vai receber resposta de verdade.

E a licença é o que torna a promessa real. Se a instância hospedada um dia parar de honrar essa lista, você pega o código, pega os seus dados e roda o seu.

A saída é o ponto.

É a saída que faz ficar significar alguma coisa.

A parte que a ferramenta não escreve

Aqui está o que eu vim dizer de verdade.

A IA derrubou o custo de escrever código. Ela não derrubou o custo de estar errado. São economias diferentes, e quase todo mundo falando disso em 2026 ainda precifica as duas igual.

Um exemplo desta construção, e é o que ainda me incomoda.

O importador do catálogo leu dois dos três arquivos de dump da Open Library e nunca abriu o terceiro. O terceiro é onde moram os autores. Então dezenas de milhares de livros caíram no banco sem ninguém atrelado a eles, e o próximo passo proposto era apagá-los como órfãos. Flaubert. Tolstói. Torto Arado. Apagados de uma biblioteca porque um arquivo ficou sem leitura.

Sem erro. Sem build vermelho. Sem crash. Todos os testes passaram, e a instrução tinha sido seguida exatamente. Só uma resposta confiante, rápida e errada, entregue em segundos, com um plano arrumadinho de limpeza anexado.

Foi pega porque alguém perguntou o que havia na pilha antes de concordar em queimá-la.

O agente escreveu milhares de linhas que eu não saberia escrever, e chegou a uma pergunta de distância de apagar Tolstói.

As duas coisas são verdade, e quem te vende só uma delas está te vendendo alguma coisa.

Então o recurso escasso não é código. É a pergunta feita antes da escrita. É saber que um registro compartilhado não é seu para sobrescrever. É notar que a chave de um fornecedor é proveniência, não identidade, porque a Open Library tem três chaves diferentes para Tolstói e nenhuma delas é ele.

Isso é julgamento, e é a única coisa que não ficou mais barata.

Então o repositório se defende sozinho

Se o mantenedor não é programador, nenhuma proteção pode depender do mantenedor revisando um diff. Eu não pegaria um bug lendo um, e fingir o contrário seria teatro.

Então a defesa teve que ser estrutural. Este é o método, e ele transfere para toda venture que operamos:

A lição generaliza para além de apps de leitura. Quando a geração é grátis, o trabalho inteiro sobe a montante, para decidir o que nunca pode ser verdade e codificar isso onde não pode ser esquecido. As organizações que vencerem esta década não serão as de melhores prompts. Serão as que tiverem restrições executáveis.

O que eu quero com isso

Vou ser direto, porque fingir que isso é altruísmo puro seria outro tipo de teatro.

Eu crio e opero empresas que colocam IA para trabalhar em influência, ciência e IA aplicada. Eu vendo julgamento sobre IA. Não dá para vender julgamento sobre uma coisa que você só mandou os outros fazerem.

Então construí a vertical inteira eu mesmo, mal no começo, e em público. Desenho de schema. Autorização. Uma busca por trigramas sobre 300 mil linhas e por que estava lenta (chutei debounce; errei; o agente mediu e era uma chamada externa travando a tecla). Migrações de Postgres. Headers de CSP. CI. Um design system. Governança de comunidade. Escolha de licença. Deploy.

O formato que chamam de T-shaped só funciona se a vertical for real. A minha é publicidade, posicionamento, gosto, a leitura de uma tela. O que me faltava era a horizontal que esta década exige de fato: fluência suficiente na maquinaria para saber quando a máquina está mentindo para mim com confiança, e gosto suficiente no processo para estruturar o trabalho de modo que a mentira seja pega por algo além de sorte.

Isso não se aprende num curso sobre IA. Se aprende às 2h da manhã, quando o filtro de substring está prestes a apagar Jung.

E existe uma segunda razão, menor e mais honesta: eu leio. Voltei a ler para baixar a ansiedade. Funcionou. O app que eu queria não existia, então a coisa que construí para aprender é a coisa que eu uso todo dia. Não é coincidência. É o único tipo de projeto que sobrevive ao meio entediante.

O convite

O Gume existe para ser construído por quem o usa. Essa é a premissa inteira, e agora mesmo faltam mãos.

Você pode contribuir sem escrever uma linha de código, e hoje essa é a ajuda mais valiosa que existe. O catálogo veio de um arquivo aberto e chegou incompleto: quase 266 mil edições sem capa, milhares sem ano e sem editora. Isso não se conserta sozinho, e não precisa de programador. Precisa de alguém segurando o livro.

A página "o que falta": o trabalho aberto no catálogo, começando pelos livros da sua própria estante.
/ o trabalho aberto, começando pelos livros da sua própria estante

Abra o o que falta e comece pelos livros da sua própria estante. Você é a única pessoa na Terra que pode consertar esses agora, porque basta virar o livro. Cada correção fica registrada com o seu nome, na página do livro, para sempre. E o seu nome vai para a página de contribuidores, na mesma lista, no mesmo tamanho, que o das pessoas que escrevem o código.

A página de contribuidores: quem cuida do catálogo e quem escreve o código, lado a lado com o mesmo peso.
Quem faz o Gume / catálogo e código, mesma página, mesmo tamanho

Uma capa corrigida vale o que um commit vale.

Se você escreve código: as labels good first issue são de verdade. Cada uma diz o que é, por que importa, que arquivo tocar e como testar. Nenhuma exige entender o app inteiro.

Você não precisa pedir uma issue. Comente "peguei essa" e vá. Trabalhe numa branch, abra um PR, e o CI decide: zero aprovações humanas, verde significa que sai. Conte se usou um agente de IA, sem vergonha, porque nós também usamos: só diz aos testes onde olhar com mais força.

E se você acha que uma das recusas está errada, abra uma issue. O schema, o plano e o design system são públicos precisamente porque são caros de mudar depois e baratos de discutir agora.

Por que eu mantenho aberto

O Gume não ganha dinheiro e não está tentando. Um dia haverá um jeito de apoiá-lo, e será opcional e cosmético: uma marca no seu perfil, nada mais. Apoio nunca desbloqueia recurso. Quem paga e quem não paga usam exatamente o mesmo Gume.

Então por que eu continuo lançando isso?

Porque "de verdade" é o padrão que eu cobro de mim: a linha que todo projeto tem que cruzar, da promessa à prova. Open source é a versão mais dura dessa travessia que existe. Você não pode alegar que funciona quando qualquer um pode clonar e descobrir em dois comandos. Não pode alegar que entende a stack quando a stack está sobre a mesa. Não pode alegar que o produto tem princípios quando a licença entrega a um estranho o poder de fazer fork do seu projeto no dia em que você quebrar um.

Todo o resto que eu construo passa por um cliente, um contrato, um NDA. Este passa por você.

Gume é o nome do fio de uma lâmina. A parte que corta.

Uma lâmina que ninguém afia não enferruja da noite para o dia. Ela perde o fio devagar, e continua parecendo exatamente uma lâmina. Você só descobre quando ela falha em cortar o que sempre cortou.

Mentes funcionam assim. As coisas que a gente constrói também.

A mente nunca
perde o fio.

O Gume é mantido por Gabriel Olegário e hospedado em gume.club. AGPL-3.0. Faça o fork.