I write code for pretty much anything that compiles: games, phones, consoles, browsers, servers and, apparently, Brazilian payroll law. Specialization is for people with fewer browser tabs open.
If something annoys me twice, I automate it. If it annoys other people too, it becomes open source. Tests are mandatory; dependencies are on probation.
Powered by tea, lo-fi and "just one more episode".
The tour with screenshots, falling petals and more Frieren: astralunaproject.github.io
- nokudos turns a Strava or Garmin data export into a year in review: route heatmap, totals, personal bests and a card to post. No subscription required, unlike some apps. Open it.
- readrecap is the same idea for Kobo and KOReader: books finished, hours read, streaks, and the uncomfortable number of books you started. Open it.
- songlift moves Spotify playlists to Navidrome, Jellyfin or M3U files from your data export, since the API now tops out at five users. Open it.
- cnpj-alfa-scan finds the code that will break with Brazil's alphanumeric CNPJ:
BIGINTcolumns,parseInt,\d{14}, digit-only masks. CLI, GitHub Action and Semgrep rules. Try it in the browser. - esocial-ts builds, validates, signs and sends eSocial events from Node.js, with your A1 certificate staying on your machine.
- open-servicedesk is an IT helpdesk for small companies: tickets, SLAs, email, knowledge base and asset inventory, on your own server.
- calculadora-rescisao-clt calculates CLT severance pay entirely in the browser, offline. Open it.
- open-contrib is a GitHub Action that turns an issue into an onboarding roadmap for whoever picks it up.
My side projects have the attention span of a gacha player on banner day. Off the clock I break things in creative ways: games, emulators, the smart TV that really didn't need that update, my own sleep schedule. Most experiments die in a branch; the good ones end up here.
![]() hot fix |
![]() after the deploy |




