Skip to content
Paul CarlsonJunior Developer

Personal Projects

A few things I've built and what I learned doing them.

01 / Personal

Frapp

Greek life operations platform

Status
Development
Timeline
2025 - Present
Stack
TypeScript, NestJS, Next.js, Expo, Supabase
View Repository
Why

Greek organizations don't have a software problem. They have a coordination problem. The tools exist but they're spread across four or five services that don't talk to each other, and someone (usually the chapter president) ends up being the human glue. Frapp puts that stack in one app.

How

Frapp runs on a Turborepo monorepo with a NestJS backend, a Next.js web admin, an Expo mobile app, and a separate Next.js marketing site. Postgres on Supabase, Stripe for billing, Expo Push for notifications. I write everything spec-first. Product, behavior, and architecture decisions go in spec/ before any code is changed.

02 / Internship

Interactive GIS Map

Web mapping application

Status
Live
Timeline
May 2025 - Dec 2025
Stack
JavaScript, Mapbox, QGIS, Python
View Live Site
Why

The legacy system at East-SouthEast took hours to push a single update out to 9 New England towns. Every infrastructure change meant a manual rebuild, and town residents waited days for accurate maps. The replacement had to be faster, accessible to non-technical staff, and built on something that would still work in five years.

How

One JavaScript codebase serves all 9 towns, configured per-town for parcel data, sewer plans, and topographic layers. Mapbox handles rendering. I built a dynamic legend, a multi-page printing utility for plan-sized exports, and the underlying interactive map by digitizing 100+ sewer plans in QGIS. Instead of paying third-party APIs for USGS topographic data, I replaced it with a custom tile loader using tippecanoe to vectorize DEM tiles. Same map, no API bill.