~/projects

projects

What I've built — shipped apps, developer tools, and the odd experiment.

Maffs icon

Maffs

Live

Scientific Calculator with AI, Graphs & 6 Themes

A calculator app that goes beyond the basics — featuring a hand-written recursive descent parser, AI-powered Nerd Mode for plain-English math, interactive graph plotting, unit conversion, and a theme system where every theme has its own personality.

  • Recursive descent expression parser — no eval()
  • AI-powered Nerd Mode with step-by-step breakdowns
  • Plot up to 6 functions with pinch-to-zoom and trace
  • 8-category unit converter with inline expression support
  • 6 themes with unique typography, radii, and vibe
  • 3 subscription tiers via RevenueCat

React Native · Expo · TypeScript · RevenueCat · Zustand · MMKV · Claude AI

Petal icon

Petal

Live

Track Subscriptions, Save Money

A subscription tracker that helps you stay on top of recurring payments. Multi-currency support, social subscription sharing, trial management, local-first sync queues, and a design system that makes managing money feel good.

  • Multi-currency with live exchange rates
  • Social subscription sharing between users
  • Smart trial and renewal reminders
  • Local-first architecture with sync queues
  • Spending analytics and category breakdowns
  • Beautiful UI with smooth Reanimated transitions

React Native · Expo · Zustand · Reanimated · MMKV · Supabase

Pulley

Live

GitHub PRs in your macOS menu bar

A tiny native macOS menu-bar app that keeps all your open GitHub pull requests one click away. Each PR's branch is checked out as a git worktree, so your main checkout stays clean while you review and switch context freely.

  • Menu-bar access to all open pull requests at a glance
  • One-click branch checkout as an isolated git worktree
  • Main checkout always stays untouched
  • Lightweight native Swift app — no Electron

Swift · macOS · GitHub API · Git Worktrees

LocalPorts

Live

A beautiful TUI for managing localhost ports on macOS

An interactive terminal UI for finding, inspecting, and killing processes bound to localhost ports. Cuts the mental overhead of juggling dev servers and stale processes — all from a single, beautiful command.

  • Interactive TUI listing all active localhost ports
  • Kill processes directly without memorizing lsof flags
  • Process name, PID, and port at a glance
  • Fast, dependency-light CLI tool

TypeScript · Node.js