Ships
Everything I've built, shipped, or killed. No curation.
evergreen: personal or OSS project, I contribute when I feel like it. No external obligation.
Pip-Boy
Live biometric dashboard: heart rate, sleep and body composition streamed from a wearable to a public page
Heart rate, SpO2, stress, sleep stages and body composition, all live from my wrist to a public page. I designed it after the Pip-Boy from Fallout. What took the most thought was the privacy model: no absolute timestamps ever leave the server, and I gave each data type its own ingest token with a separate configurable delay.
Public biometric data without exposing identity: privacy wasn't about hiding the data, it was about designing delays and separate ingest tokens per data type.
Rancho
Marketplace + delivery platform for supermarkets in Brazil
Neighborhood grocery stores in Brazil have no delivery, no online orders, no nothing. I built Rancho to fix that: customer app (iOS and Android), delivery driver app, operations dashboard and own logistics network, all from scratch. Nine repos in production.
Nine repos in production, dozens of buyer leads already collected. Marketplace cold start: building every side simultaneously before launch is unavoidable.
Social Summary
AI that consumes Instagram stories and generates summaries by relationship type
I follow 770 accounts. Maybe 50 actually matter. So I built something that pulls Instagram stories automatically, classifies each contact by relationship type (best friend, girl I like, family, work, brand) and generates a daily briefing calibrated per bond. Her story gets a different analysis than my manager's.
770 accounts, but only ~50 matter. The relationship layer is the moat: no summarization tool today personalizes by type of bond.
PPTA
POC: government audits financial activity across banks without ever knowing the citizen's identity
I built a POC to prove the government can audit financial fraud across multiple banks without ever learning who the citizen is. Five microservices: banks hold CPFs, the government only sees correlation IDs. The only way to reconstruct identity is through a judiciary-authorized disclosure flow. AES-256 vault, master key split across 3 shares.
Government can audit tax fraud without knowing who is being audited. The problem wasn't technical: it was architectural design.
Home Automation
Residential automation with tinytuya + person detection via camera
I control Tuya smart bulbs via Python, triggered by person detection from my camera. The next step is swapping the camera for an ESP32 with a PIR sensor to get latency below 100ms, faster than reaching for a light switch.
Camera-based person detection has 2-3 second latency. A PIR sensor does it in under 100ms. Hardware constraints set the ceiling for software cleverness.
AI Central
Local desktop app to centralize all your AI assets across projects
I had CLAUDE.md files, agent definitions and prompts scattered across 80+ repos with no deduplication. So I built AI Central: it scans projects automatically, centralizes everything into a SHA-hashed mirror, and lets me reuse assets across projects via CLI or desktop app. Local-first, no cloud, Tauri instead of Electron (10MB vs 150MB).
Electron weighs 150MB. Tauri weighs 10MB. Obvious choice when the product doesn't need a browser runtime.
Alahubs
Digital products company with own checkout and trend monitoring
I built Alahubs on its own infrastructure from day one. Checkout is a standalone microservice shared across eight domains, Radar Hype and Shopping Tool run as satellites inside the same stack, and both payment gateways go through a single abstracted interface.
Moved from Kubernetes to Docker Compose and lost nothing. Over-engineering for scale you don't have yet is real waste.
Radar Hype
Streetwear promotion indexer across 20+ Brazilian stores
Miss a streetwear drop and it's gone. I built Radar Hype to monitor 20+ Brazilian stores for promotions, price changes and size availability, updated every hour. Priority Scan cuts that to 30 minutes for the drops that matter.
In streetwear, the audience pays for information before their competitors get it. Urgency is the product, not the index.
Gulartix
Modular home console with 4-camera RTSP surveillance and YOLOv8 person detection
The central console of the house. I built OmniSecurity as a subsystem inside it: 4 RTSP cameras through YOLOv8 person detection at 5fps, streaming via native MJPEG (no WebSocket overhead), with an HTTP API for the dashboard. I designed the whole thing to be modular, each new subsystem plugs in without touching the others.
Smart cameras don't need a vendor subscription. Four RTSP cameras, YOLOv8 person detection, running fully local. No cloud, no lock-in.
Segundo Cérebro
Personal Obsidian vault as a second brain, with autonomous Claude feedback loops
I built the vault as a knowledge system: projects, people, knowledge, diary, ideas. The interesting layer is the CLAUDE.md: a set of rules that make Claude behave autonomously inside it. When I mention something in conversation, it automatically writes diary entries, captures observations about me, identifies opportunities, saves analyses and updates project notes, all without being asked. The vault feeds context to Claude, Claude updates the vault. Closed loop.
A second brain without automatic capture decays. The friction of writing everything manually is what kills these systems. The answer wasn't discipline. It was removing the decision to write at all.
Optix
MCP server that routes cheap token ops to GitHub Copilot models
Tool results account for 61% of all Claude Code tokens, and most of it is noise. I built Optix to intercept Read and Bash calls before they hit Claude's context, compress them, and route cheap operations to GitHub Copilot models (free with a Copilot subscription). The expensive context stays lean.
Tool results are ~61% of all Claude Code tokens. That's where you optimize, not the prompts.
Claudeeper
CLI to analyze Claude Code token usage from local session files
I built Claudeeper to read Claude Code local session files and break down token usage by session, command and tool type. I needed to measure the waste before I could build something to fix it. Pairs with Optix.
Measured before optimizing. Claudeeper was built to understand the problem Optix was built to solve.
AI Subtitler
CLI that translates .srt subtitle files via LLMs: Ollama, OpenAI, or Claude. Zero dependencies.
I built it to translate .srt subtitle files using any LLM: Ollama for free local translation, OpenAI or Claude for quality. Zero pip dependencies. It writes to disk chunk by chunk, so a partial file is already usable if I cancel mid-run. Each request includes previous chunks as read-only context so character names and tone stay consistent across the whole film.
Each subtitle chunk needs the previous ones as read-only context. Without it, character names and tone shift mid-movie.
GULanguage
English fluency trainer for Brazilian devs. Target: cognitive retrieval speed, not vocabulary.
Brazilian devs read English fine. We freeze when speaking. The bottleneck isn't vocabulary: it's cognitive retrieval speed under pressure. So I built GULanguage to train exactly that: voice conversations in technical contexts, real-time hesitation detection and adaptive scaffolding that revisits the exact chunks where I got stuck.
Brazilian devs don't freeze because they don't know English. They freeze because of cognitive retrieval latency. Training speed is different from training words.
Cloaker Breaker
CLI that detects ad cloaking by comparing raw HTTP response vs real Playwright browser rendering
Black hat advertisers show compliant content to Google's bots and illegal content to real users. I built Cloaker Breaker to catch it: it sends a raw HTTP request, then renders the same URL in a real Playwright Chromium and diffs the content. Significant divergence means cloaking. It supports fake referers for Facebook, Google, TikTok and Taboola.
Ad cloaking is detectable: sites can't reliably tell a real Google bot from a well-configured headless Chromium.
Polylang
PDF reader with per-document read progress tracking via SHA-256 hash
Upload a PDF, get a SHA-256 hash. Read it. Come back a week later: your position, font size and settings are exactly where you left them, tied to the hash, not the filename. I built it with a REST API, a web reader, and support for files up to 100MB.
Tracking state by content hash instead of filename means the same file opened from different paths or renamed is still recognized. Identity tied to content, not location.
Camera Monitor
21KB Android APK + Python proxy to stream 4 RTSP cameras on a 2009 Pandigital Novel 7" e-reader
I had a 2009 Pandigital Novel 7" e-reader collecting dust, so I turned it into a 4-camera security monitor. The APK is 21KB: pure Java, zero external dependencies, custom MJPEG parser. I wrote a Python proxy on the Mac that keeps 8 ffmpeg processes alive (4 cameras x SD/HD), caching the latest JPEG frame in memory so switching cameras is instant.
21KB APK, zero external dependencies, Android 2.1. App bloat isn't inevitable, it's a choice.
iWatch
TypeScript BLE controller for Amazfit Bip U. Direct device access without app or cloud.
I wrote a direct BLE controller for the Amazfit Bip U to read health data straight from the device over Bluetooth, no app, no cloud. I built it as the data source for the Pip-Boy pipeline. Eventually replaced it with the Zepp cloud API when reliability beat the reverse-engineered protocol.
Direct BLE protocol was replaced by the Zepp cloud API. Reliability beat the local proprietary protocol.