Senior Full Stack Software Engineer · Open Source Contributor · Brazil
Software engineer with more than 10 years of experience in full stack development, focused on backend systems, APIs and microservices. I work mostly with TypeScript, Node.js, Python and PHP.
In open source I fix bugs in parsers, protocol handling, build tooling and web platform code. Every pull request starts from a failing test and explains the root cause.
Libraries and tools I created and maintain, all MIT licensed, published on npm and documented with their own sites.
hivedesk: A small city of AI agents on your own computer: run npx hivedesk and persistent bees with memory and levels plan, build, review and test real files in their rooms, with a local model or your own API key. Friends join by six words, their PCs become buildings and lend their GPU across the bridge. | |
| howlden: Group chat, voice, video and screen share in the browser with no server: dens for up to 5 friends or 1 to 1 calls, invite only, local account, end to end encrypted. | |
| kastor: The TypeScript ORM for almost every database: PostgreSQL, MySQL, MariaDB, SQLite, Turso, Cloudflare D1, SQL Server, Oracle, CockroachDB and MongoDB. No codegen, readable migrations and a studio. | |
| filefinch: Send files and whole folders straight between your devices in the browser: peer to peer, no server, no account, no size limit, resumable and end to end encrypted. | |
| pixelotter: A layered photo editor that runs in the browser and works offline: selections, filters, background removal, PSD and TIFF, and live editing with friends, peer to peer. | |
| doodleduo: An endless whiteboard you draw on with up to four friends, with chat, voice, camera and screen share, peer to peer with no account. | |
| popcornpals: Watch videos in sync with up to four friends: a local file streamed by the host, YouTube, or screen share, with voice and chat, peer to peer with no server. | |
| tabtango: Browse one tab together with friends: they watch it live with its sound, point with their own cursors and talk, peer to peer with no account. | |
| fontsketch: Create your own font in the browser: draw, edit or scan your handwriting, then export TTF, OTF, WOFF and WOFF2 with kerning, accents, hinting and variable weight. | |
| installkite: Make any website installable and offline with one line: manifest, icons, service worker, offline page, install button and update toast. CLI plus a 4 kB runtime. | |
| a11ymedic: Accessibility checker that explains every problem in plain language and gives the exact fix: 61 WCAG 2.2 rules, contrast fixer, auto fix, browser overlay and CI. | |
| cookieowl: Cookie consent for LGPD and GDPR that really blocks trackers until consent, with Google Consent Mode v2, an accessible banner and 5 languages. | |
| Monsoon: Utility-first CSS with no build step: 167 native components, arbitrary values like bg-[red] from a CDN, a whole accessible theme from one --seed color, two factor and sign in components and an optional interactive layer. | |
| breakhound: Find bugs in any JavaScript library automatically, no tests required: reads the TypeScript types, attacks every function with edge cases and reports minimal repros. | |
| Voodoo.js: JSX running from a plain .html file, with reactive directives and no build step. | |
| vueleap: Migrate Vue 2 to Vue 3 with one command: finds every breaking change, auto fixes the safe ones, prints the @vue/compat flags. | |
| graphemely: Truncate, slice and count strings with emoji safely in JavaScript, plus an ESLint plugin for unsafe string code. | |
| numberparrot: Parse localized numbers and currency strings in any locale: parseFloat("1.234,56") is 1.234, numberparrot gives 1234.56. | |
| edgegoat: Edge case test inputs for JavaScript: time zones, DST, unicode, -0 and NaN, URLs, paths and JSON, ready for test.each. |
JSX-style rendering directly inside plain HTML. No compiler. No transform. No build step.
Voodoo.js reads the markup the browser has already parsed, recovers each JSX expression and runs it through its own lexer, Pratt parser and AST interpreter. There is no eval and no new Function, so it works under a strict Content Security Policy, and every region is a reactive effect that re-renders when its data changes.
<!doctype html>
<html>
<head>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/voodoo.full.min.js" defer></script>
</head>
<body>
{
const user = 'Ana';
const fruits = ['apple', 'pear', 'grape'];
}
<h1>Hello, {user}!</h1>
<ul>
{fruits.map((fruit) => (
<li>{fruit}</li>
))}
</ul>
</body>
</html>Save it as index.html and open it: the page shows a heading that reads "Hello, Ana!" and a list with apple, pear and grape. No bundler, no dev server.
Repository · Website · Playground · npm





