~/pages$cd projects/
~/pages/projects$ls ../
home>projects contact
~/pages/projects$cat title.txt

Projects

~/pages/projects$ls -la
[Expo][React Native][TypeScript][NativeWind][Go][PostgreSQL][AWS][Terraform][Clerk][Vercel]

Letterboxd for DJ sets — log the DJs you've seen live, rate them, write reviews, and follow other users to see their sets in your feed. Events link to real venues via Google Places, with event series, full-night lineups, and whole-night reviews. Built as a single Expo codebase for iOS and web, backed by a Go REST API with hand-written SQL on Postgres, Clerk auth, and an OpenAPI spec that generates the client's TypeScript types (enforced in CI). Infrastructure on AWS (EC2 + RDS) is provisioned with Terraform; the web app is deployed on Vercel.

[details →]
users: 54 (chrome 21 · firefox 33)
[JavaScript][Manifest V3][Xcode]

Inspired by the annoyance of continuing to dismiss cookie banners, Cookie Refuser is a cross-platform browser extension that automatically denies all cookie consent banners. Supports Chrome, Firefox, and Safari. Uses a three-tier detection strategy — known platform selectors, banner container scanning, and a broad fallback — along with MutationObserver for late-loading popups. Covers major consent platforms (OneTrust, Cookiebot, Quantcast, Didomi, and more) across 9 languages. Built with Manifest V3. Published on the Chrome Web Store, Firefox Add-ons, and the App Store.

[details →]
users: 0 (firefox 0)
[JavaScript][Manifest V3][Xcode]

A browser extension that suggests a unique, trackable email alias for every site you sign up on — using Gmail-style plus-addressing (yourname+sitename@gmail.com) — so that if spam starts showing up, you know exactly which company leaked or sold your address. Every fill is logged locally with the site, alias, first-seen date, use count, and last-used date, viewable in the popup with CSV export. Supports Chrome, Firefox, and Safari via Manifest V3.

[details →]
[React][TypeScript][Next.js][Tailwind CSS][Vercel]

You are here 😊 A personal site to showcase my work and projects. Built with React and TypeScript, deployed on Vercel with analytics and automatic deployments on every push to main.

[details →]
[React Native][Expo][TypeScript][Supabase][Maestro][EAS][Claude][Cursor]

A mobile app that gamifies rejection exposure therapy — users log rejections with titles, descriptions, dates, and photos while tracking progress toward 1,000 total rejections. Built with Supabase for auth and data, comprehensive unit and E2E testing via Maestro, and a CI/CD pipeline via EAS Build. Reframes failure as forward momentum.

[details →]
[Solidity][JavaScript][Hardhat][OpenZeppelin][Ethereum]

A mintable ERC-20 token (QTPI) built with Hardhat and OpenZeppelin, deployed on Ethereum's Sepolia testnet. Implements peer-to-peer transfers and admin minting on top of a 1 million token initial supply. Leverages OpenZeppelin's battle-tested contract libraries for security. The deployed contract is publicly verifiable on-chain and importable directly into MetaMask.

[details →]
[React Native][Expo][TypeScript][Expo Router][Claude][Cursor]

A React Native mobile app serving as a complete reference guide for Little Alchemy 2 — featuring a searchable catalog of 720+ elements, crafting recipe lookup, and reverse ingredient search. Includes an automated web scraper that pulls element data and icons directly from the game's wiki to keep the database current.

[details →]
█