Portfolio

Personal Projects

Party Split

live

A bill-splitting and expense-sharing app for groups — track shared costs, settle up, and pay each other directly, built mobile-first as a PWA.

ReactTypeScriptPostgreSQLMercado PagoPWAMobile-first

Aline & Ricardo — Wedding

live

The wedding website for Aline and Ricardo's ceremony in Teresópolis — invited guests log in to RSVP, add companions, book lodging near the venue and pay for gifts by card or Pix, while a couple's admin manages the guest list, payments and stays, sends expiring personal invitation links and can view the site as any guest. In Portuguese.

Next.jsTypeScriptPostgreSQLDrizzleNeon AuthMercado PagoAdmin dashboard

Client Work

Aline Loura

live

Gallery and shop for visual artist Aline Loura — photography, sculpture and lighting pieces in limited editions, with card or Pix checkout, live shipping quotes, buyer order history, and a custom admin backed by a Neon Function to manage collections, editions and orders. In Portuguese and English.

React RouterTypeScriptPostgreSQLNeon FunctionsNeon AuthREST APIWebhooksMercado PagoMelhor EnvioSentryE-commerceCustom CMSi18n

Corpoesia

live

An intimate LMS for movement and body-expression courses — teachers publish recordings and routines, students check in and log how they feel, and a teacher dashboard handles enrollments, subscription plans and engagement rankings over a GraphQL API.

Next.jsTypeScriptGraphQL APIPostgreSQLDrizzleBetter AuthGoogle OAuthResendSubscriptionsPWA

Open Source

react-stub-component

A lightweight library for stubbing React components in tests — swap any component with a minimal stub to isolate units and keep test setups clean.

ReactTestingTypeScript

Prototypes

Linear Stack Prototype

live

A side-by-side performance comparison of a simple Next.js HTTP API route versus Linear's full stack — measuring latency, throughput, and real-world overhead.

Next.jsLinearHTTP