← voltar para home

Ships

Tudo que construí, lancei ou matei. Sem curadoria.

perene: projeto pessoal ou OSS, mexo quando quero. Sem obrigação externa.

ordenar:
no ar2024

Pip-Boy

Dashboard biométrico ao vivo: frequência cardíaca, sono e composição corporal do wearable para uma página pública

Frequência cardíaca, SpO2, stress, fases do sono e composição corporal, tudo ao vivo do meu pulso para uma página pública. Inspirei no Pip-Boy do Fallout. O que me tomou mais pensamento foi o modelo de privacidade: nenhum timestamp absoluto sai do servidor, e cada tipo de dado tem seu próprio token de ingestão com delay configurável.

Dados biométricos públicos sem expor identidade: privacidade não era esconder os dados, era projetar delays e tokens separados por tipo de dado.
Next.jsPostgreSQLNode.js
no ar2024

Rancho

Marketplace + plataforma de delivery para supermercados no Brasil

Mercados de bairro no Brasil não têm delivery, não têm pedido online, não têm nada. Construí o Rancho pra mudar isso: app do cliente (iOS e Android), app do entregador, dashboard de operações e rede logística própria, tudo do zero. Nove repositórios em produção.

Nove repositórios em produção, dezenas de leads compradores coletados. Cold start de marketplace: construir todos os lados simultaneamente antes do lançamento é inevitável.
NestJSExpoNext.jsRedis
construindo2026

Social Summary

IA que consome stories do Instagram e gera resumos por tipo de relacionamento

Sigo 770 contas. Talvez 50 importem de verdade. Então construí algo que puxa stories do Instagram automaticamente, classifica cada contato por tipo de relacionamento (melhor amigo, menina que curto, família, trabalho, marca) e gera um briefing diário calibrado por vínculo. O story dela recebe uma análise diferente do story do meu chefe.

770 contas, mas só ~50 importam. A camada de relacionamento é o moat: nenhuma ferramenta de resumo hoje personaliza por tipo de vínculo.
PythonAI
construindo2026

PPTA

POC: governo audita atividade financeira entre bancos sem nunca saber a identidade do cidadão

Construí uma POC para provar que o governo pode auditar fraude financeira entre vários bancos sem nunca conhecer a identidade do cidadão. Cinco microserviços: os bancos guardam CPFs, o governo vê apenas IDs de correlação. A única forma de reconstituir a identidade é por um fluxo de divulgação autorizado judicialmente. Vault AES-256, chave master dividida em 3 shares.

O governo pode auditar fraude fiscal sem saber quem está sendo auditado. O problema não era técnico: era de design arquitetural.
TypeScriptNode.jsCrypto
construindo2026

Home Automation

Automação residencial com tinytuya + detecção de pessoas via câmera

Controlo lâmpadas Tuya via Python, acionadas por detecção de pessoas na câmera. O próximo passo é trocar a câmera por um ESP32 com sensor PIR para chegar abaixo de 100ms de latência, mais rápido do que alcançar o interruptor.

Detecção de pessoas por câmera tem latência de 2-3 segundos. Um sensor PIR faz isso em menos de 100ms. Restrições de hardware definem o teto para a inteligência do software.
PythonESP32IoT
construindo2025

AI Central

App desktop local para centralizar todos os seus assets de IA entre projetos

Tinha arquivos CLAUDE.md, definições de agents e prompts espalhados por 80+ repos sem deduplicação. Então construí o AI Central: ele escaneia projetos automaticamente, centraliza tudo em um mirror com hash SHA e me deixa reutilizar assets entre projetos via CLI ou app desktop. Local-first, sem cloud, Tauri em vez de Electron (10MB vs 150MB).

Electron pesa 150MB. Tauri pesa 10MB. Escolha óbvia quando o produto não precisa de um runtime de browser.
TauriReactSQLiteTypeScript
mantido2023

Alahubs

Empresa de infoprodutos com checkout próprio e monitoramento de tendências

Construí a Alahubs na própria infraestrutura desde o início. O checkout é um microserviço independente compartilhado por oito domínios, Radar Hype e Shopping Tool rodam como satélites na mesma stack, e os dois gateways de pagamento passam por uma única interface.

Saímos de Kubernetes para Docker Compose e não perdemos nada. Otimizar pra escala que não existe ainda é desperdício real.
Next.jsNestJS
mantido2023

Radar Hype

Indexador de promoções de streetwear em 20+ lojas brasileiras

Perdeu um drop de streetwear e acabou. Construí o Radar Hype para monitorar 20+ lojas brasileiras por promoções, alterações de preço e disponibilidade de tamanho, atualizado a cada hora. O Priority Scan corta pra 30 minutos nos drops que importam.

Em streetwear, a audiência paga por informação antes que a concorrência chegue. A urgência é o produto, não o indexador.
Next.jsNode.js
perene2026

Gulartix

Console doméstico modular com vigilância de 4 câmeras RTSP e detecção de pessoas via YOLOv8

O console central da casa. Construí o OmniSecurity como um subsistema dentro dele: 4 câmeras RTSP com detecção de pessoas via YOLOv8 a 5fps, streaming via MJPEG nativo (sem overhead de WebSocket), com API HTTP para o dashboard. Projetei tudo para ser modular, cada novo subsistema se conecta sem afetar os outros.

Câmeras inteligentes não precisam de assinatura de vendor. Quatro câmeras RTSP, detecção YOLOv8, rodando totalmente local. Sem cloud, sem lock-in.
Next.jsPythonYOLOv8RTSP
perene2025

Segundo Cérebro

Vault Obsidian pessoal como segundo cérebro, com loops de retroalimentação autônomos via Claude

Construí o vault como sistema de conhecimento: projetos, pessoas, conhecimento, diário, ideias. A camada interessante é o CLAUDE.md: um conjunto de regras que faz o Claude se comportar autonomamente dentro dele. Quando menciono algo em conversa, ele escreve entradas no diário, captura observações sobre mim, identifica oportunidades, salva análises e atualiza notas de projetos, tudo sem ser pedido. O vault alimenta contexto pro Claude, o Claude atualiza o vault. Loop fechado.

Um segundo cérebro sem captura automática decai. O atrito de escrever tudo manualmente é o que mata esses sistemas. A solução não foi disciplina. Foi remover a decisão de escrever.
ObsidianClaudeMCP
perene2025Feito em 14 dias

Optix

MCP server que roteia operações baratas de token para modelos do GitHub Copilot

Tool results representam 61% de todos os tokens do Claude Code, e a maioria é ruído. Construí o Optix para interceptar chamadas de Read e Bash antes de chegarem ao contexto do Claude, comprimi-las e rotear operações baratas para modelos do GitHub Copilot (grátis com assinatura Copilot). O contexto caro fica enxuto.

Tool results representam ~61% de todos os tokens do Claude Code. É aí que se otimiza, não nos prompts.
Node.jsTypeScriptMCP
perene2025Feito em 7 dias

Claudeeper

CLI para analisar o uso de tokens do Claude Code a partir dos arquivos de sessão

Construí o Claudeeper para ler os arquivos de sessão locais do Claude Code e detalhar o uso de tokens por sessão, comando e tipo de tool. Precisava medir o desperdício antes de construir algo para corrigir. Par com o Optix.

Medi antes de otimizar. O Claudeeper nasceu pra entender o problema que o Optix foi construído pra resolver.
TypeScriptNode.js
perene2025

AI Subtitler

CLI que traduz arquivos .srt de legendas via LLMs: Ollama, OpenAI ou Claude. Zero dependências.

Construí para traduzir arquivos .srt usando qualquer LLM: Ollama para tradução local gratuita, OpenAI ou Claude para qualidade. Zero dependências pip. Escreve no disco chunk a chunk, então um arquivo parcial já é utilizável se eu cancelar no meio. Cada request inclui chunks anteriores como contexto somente-leitura para manter nomes de personagem e tom consistentes no filme inteiro.

Cada chunk de legenda precisa dos anteriores como contexto somente-leitura. Sem isso, nomes de personagem e tom mudam no meio do filme.
Python
perene2025

GULanguage

Treino de fluência em inglês para devs brasileiros. Foco em velocidade de recuperação cognitiva, não vocabulário.

Dev brasileiro lê inglês bem. A gente trava quando fala. O gargalo não é vocabulário: é velocidade de recuperação cognitiva sob pressão. Então construí o GULanguage para treinar exatamente isso: conversas por voz em contextos técnicos, detecção de hesitação em tempo real e scaffolding adaptativo que revisita os trechos onde eu travei.

O dev brasileiro não trava por não saber inglês. Trava por latência de recuperação cognitiva. Treinar velocidade é diferente de treinar palavras.
Next.jsOpenAIClaude
perene2025

Cloaker Breaker

CLI que detecta cloaking em anúncios comparando resposta HTTP direta com renderização real via Playwright

Anunciantes black hat mostram conteúdo conforme para os bots do Google e conteúdo ilegal para usuários reais. Construí o Cloaker Breaker para pegar isso: ele faz um request HTTP direto, depois renderiza a mesma URL em um Chromium real via Playwright e compara o conteúdo. Divergência significativa significa cloaking. Suporta referers falsos de Facebook, Google, TikTok e Taboola.

Cloaking em anúncios é detectável: o site não consegue distinguir um bot do Google de um Chromium headless bem configurado.
TypeScriptNode.jsPlaywright
perene2024

Polylang

Leitor de PDF com tracking de progresso de leitura por hash SHA-256

Sobe um PDF, recebe um hash SHA-256. Lê. Volta uma semana depois: posição, tamanho de fonte e configurações exatamente onde parou, vinculados ao hash, não ao nome do arquivo. Construí com API REST, leitor web próprio e suporte a arquivos de até 100MB.

Rastrear estado por hash do conteúdo em vez de nome de arquivo significa que o mesmo arquivo aberto de caminhos diferentes ou renomeado ainda é reconhecido. Identidade ligada ao conteúdo, não à localização.
TypeScriptNode.jsExpress
perene2024

Camera Monitor

APK Android de 21KB + proxy Python para exibir 4 câmeras RTSP num e-reader Pandigital Novel 7" de 2009

Tinha um e-reader Pandigital Novel 7" de 2009 acumulando poeira, então transformei em monitor de 4 câmeras de segurança. O APK tem 21KB: Java puro, zero dependências externas, parser MJPEG próprio. Escrevi um proxy Python no Mac que mantém 8 processos ffmpeg ativos (4 câmeras x SD/HD), cacheando o último frame JPEG em memória para troca instantânea de câmera.

APK de 21KB, zero dependências externas, Android 2.1. Bloat em apps não é inevitável, é escolha.
JavaPythonffmpeg
pausado2024

iWatch

Controlador BLE TypeScript para Amazfit Bip U. Acesso direto ao dispositivo sem app ou cloud.

Escrevi um controlador BLE direto para o Amazfit Bip U para ler dados de saúde direto do dispositivo via Bluetooth, sem app, sem cloud. Construí como fonte de dados para o pipeline do Pip-Boy. Eventualmente substituí pela API Zepp quando a confiabilidade superou o protocolo proprietário reverso.

Protocolo BLE direto foi substituído pela API Zepp na nuvem. Confiabilidade ganhou do protocolo proprietário local.
TypeScriptNode.jsBLE