Portfolio

Projects That Speak for Themselves

Real results from real projects. Each case study shows how AI-accelerated development delivers better outcomes in less time.

Vertical SaaS Platform
Next.js 16Three.jsFastAPIPostgreSQLStripe

Millwork.App

An all-in-one browser platform for custom cabinet makers — a 3D parametric cabinet editor with seven design modes, auto-generated cut lists, grain-aware sheet nesting, CNC G-code export with toolpath preview, plus proposals, invoicing, shop drawings, and a customer CRM.

Challenge

Cabinet shops juggle desktop CAD, separate nesting software, and standalone quoting tools — a fragmented stack that's expensive and never talks to itself. Design changes mean redoing cut lists, estimates, and drawings by hand.

Solution

Built a real-time 3D editor on Three.js and React Three Fiber with a FastAPI backend on PostgreSQL and Redis. Cut lists, nesting layouts, G-code, proposals, and shop drawings all generate from the same parametric model, with Stripe subscriptions and client-side PDF export.

Results

  • Live at millwork.app with 14-day free trial
  • 3D editor with 7 modes + CNC G-code export
  • Grain-direction-aware 2D sheet nesting
  • Pro and Enterprise tiers with Stripe billing
Consumer 3D Design Tool
Next.js 16React 19Three.jsStripeZustand

Outside Blueprint

A free browser-based 3D design tool for outdoor structures. Pick a deck, shed, garage, pole barn, or patio cover, adjust every dimension and material, and watch the model update live — then unlock a full materials list with price estimates and a step-by-step build guide.

Challenge

DIY builders need CAD skills or paid desktop software just to plan a deck and figure out what lumber to buy. Material takeoffs are tedious, error-prone, and usually wrong on the first trip to the store.

Solution

Built a parametric 3D designer with Three.js and React Three Fiber, with Zustand driving live model state. Design is free forever; a one-time Stripe payment unlocks the generated materials takeoff and build instructions for each design.

Results

  • Live at outsideblueprint.com
  • 6 structure types, fully parametric
  • Real-time 3D with live material updates
  • $19 one-time unlock — no subscription
Healthcare Compliance SaaS
FlaskPostgreSQLRapidFuzzAPSchedulerStripe

ExclusionWatch

Automated OIG exclusion screening for healthcare organizations. Screens employees, contractors, and vendors against the federal LEIE exclusion database every month and produces audit-ready, timestamped documentation with email alerts.

Challenge

Healthcare organizations billing Medicare and Medicaid are expected to screen monthly against the OIG exclusion list — penalties can exceed $10,000 per claim — but enterprise screening vendors charge thousands per year for access to public federal data.

Solution

Built a Flask application that syncs the full OIG LEIE dataset monthly and screens rosters with exact, NPI, and fuzzy matching via RapidFuzz. APScheduler drives automated monthly runs, Stripe handles subscriptions, and every screening produces timestamped audit documentation.

Results

  • Live at exclusion-watch.com
  • Screens ~80,000 active federal exclusions
  • Exact, fuzzy & NPI matching with false-positive memory
  • Plans from $49/mo — a fraction of enterprise vendors
FinTech B2B SaaS
Next.js 16FastAPINumPy/SciPyStripeNextAuth 5

YouWantAPlan

Financial-planning software for financial advisors. Collect client data through a guided 10-step wizard, run Monte Carlo simulations and portfolio analytics, generate a 0–100 Financial Health Score, and export branded PDF plans — with a built-in client CRM.

Challenge

Building a comprehensive client financial plan traditionally takes hours of manual spreadsheet modeling and formatting per client, which caps how many clients an advisor can serve well.

Solution

Architected a two-service platform: a Next.js frontend with Stripe subscriptions and client-side PDF generation, backed by a dedicated Python FastAPI calculation engine with 15 modules built on NumPy/SciPy — Monte Carlo, efficient frontier, tax, Social Security, Roth conversion, withdrawal sequencing, and more.

Results

  • Live at youwantaplan.com
  • 10,000-scenario Monte Carlo simulations
  • 15 financial calculation modules
  • Three tiers from $49/mo with white-label option
WiFi Marketing SaaS
Next.js 16FastAPICustom RADIUSNeon PostgresStripe

GuestPortals

A hosted captive-portal platform that turns guest WiFi into leads. A branded splash page captures verified emails and phone numbers on sign-in, syncs contacts to marketing tools in real time, and routes happy guests to Google Reviews — across unlimited locations.

Challenge

Venues give away free WiFi and get nothing back. Captive-portal infrastructure is normally enterprise-grade: RADIUS servers, router integration, and compliance requirements put it out of reach for most businesses.

Solution

Built three coordinated services: a Next.js dashboard, a FastAPI backend on Neon Postgres with Redis, and a custom Python RADIUS server on Fly.io that authenticates guests by MAC address. Works with UniFi, MikroTik, OpenWrt, and any RADIUS-capable access point, with GDPR/CCPA consent versioning built in.

Results

  • Live at guestportals.app
  • Works with UniFi, MikroTik, Meraki, Aruba & more
  • Real-time sync to Mailchimp, Klaviyo, HubSpot, Zapier
  • Plans from $9/mo with SMS verification
Local Lead-Gen SaaS
Next.js 16Neon PostgresDrizzle ORMPythonMapbox GL

Mid Valley Leads

A subscription lead service that aggregates building-permit data from every jurisdiction in Oregon's Mid-Willamette Valley and turns it into qualified construction leads — delivered to contractors before competitors know the project exists.

Challenge

Permit data is public but scattered across incompatible government portals — ArcGIS services, Oregon ePermitting, custom city systems. No contractor has time to monitor 21+ municipalities daily.

Solution

Built Python scrapers that normalize permits from Salem's ArcGIS feed and the statewide Accela portal into a unified schema on Neon Postgres. Vercel Cron runs daily scrapes and email digests, with Clerk auth, Mapbox map views, and filtering by city, trade, and date.

Results

  • Live at midvalleyleads.com
  • Covers 6 counties and 21+ municipalities
  • Automated daily scraping + digest emails
  • Hundreds of new permits indexed monthly
Sports League Platform
Next.js 16Prisma 7TursoGHIN APIPWA

GolfScore

An all-in-one golf tournament and league management platform: schedule rounds, draft groups and flights, track live scores in real time, and run season-long leagues through to final results — with USGA-style net and gross handicap math built in.

Challenge

Running a golf league means spreadsheets for scheduling, pairings, handicaps, and scoring, plus a group chat full of confusion. Handicap math alone is enough to scare off most organizers.

Solution

Built an installable PWA with Prisma on Turso (libSQL), GHIN handicap-system integration, and web-push notifications for live scoring updates. Auto-draw or custom group drafting, live leaderboards, and season standings all run from one place.

Results

  • Live at golfscore.cc
  • GHIN handicap integration
  • Live scoring with push notifications
  • Installable PWA — no app store needed
Consumer Reference Site
Next.js 15Prisma 7PostgreSQLTailwind 4IndexNow

OilChangeDIY

A free vehicle-maintenance lookup site for DIYers — manufacturer-verified oil types and capacities, filters, fluids, torque specs, parts, and recall data organized by year, make, and model, with step-by-step DIY guides.

Challenge

Car owners doing their own maintenance dig through owner's manuals and forums for exact specs. Getting the oil viscosity or drain-plug torque wrong is expensive, and the data is scattered everywhere.

Solution

Built a Next.js site on a Prisma/PostgreSQL data layer seeded from verified spec sources, with NHTSA recall data surfaced per vehicle. IndexNow pings search engines on every deploy, and the whole site is free — built for search traffic and DIY trust.

Results

  • Live at oilchangediy.com — completely free
  • Specs for every year, make & model
  • Recalls and TSBs per vehicle
  • 6 step-by-step DIY guides
Marketplace Platform
Next.js 16Prisma 7Stripe ConnectNextAuth 5PWA

RentMyTools

A peer-to-peer tool rental marketplace — Turo for power tools. Full two-sided marketplace with search, real-time messaging, Stripe Connect payments, reviews, and a PWA with push notifications and animations.

Challenge

Building a complete two-sided marketplace with real-time messaging, secure P2P payments with escrow, and a mobile-first experience — without native app development or a large dev team.

Solution

Delivered a full-featured Next.js PWA across 6 development phases using AI-accelerated workflows. Stripe Connect handles P2P payments, WebSocket powers real-time messaging, and service workers enable push notifications.

Results

  • 6-phase MVP delivered in weeks
  • PWA with native-like experience
  • Secure P2P payments via Stripe Connect
  • Complete review & trust system
Public Utility SaaS
FlaskPostgreSQLSendGridTwilioStripe

Salem Sweeper

A subscription notification service for Salem, Oregon residents. Users sign up with their address and receive email/SMS reminders before street sweeping days so they can move their cars and avoid tickets.

Challenge

Needed to scrape and parse city street sweeping schedules, match addresses to zones, and deliver timely notifications via email and SMS — all with a clean signup flow and subscription billing.

Solution

Built a Flask application with SQLAlchemy, SendGrid for email, Twilio for SMS, and Stripe for subscription payments. APScheduler handles automated notification dispatch based on sweeping schedules.

Results

  • Deployed to production on Railway
  • Automated email notifications live
  • Stripe subscription billing integrated
  • Custom domain at salemsweeper.com
API SaaS Product
FastAPIPostgreSQLRedisStripeCloudflare

Property Pulse API

A US property data REST API offering geocoding, flood zone lookup, demographics, and nearby amenities. Built as a sellable SaaS with tiered API key access, usage tracking, and Stripe billing.

Challenge

Aggregating multiple property data sources into a single, fast, developer-friendly API with proper rate limiting, usage metering, and tiered subscription pricing.

Solution

Architected a FastAPI application with PostgreSQL and Redis caching. Stripe handles subscription tiers with usage-based billing. Deployed with a marketing site on propertypulse.dev.

Results

  • Phase 1 deployed to production
  • Full API documentation site live
  • Tiered pricing with Stripe integration
  • Sub-200ms response times with Redis
Public Information App
FlaskSQLAlchemyBeautifulSoup4APSchedulerRailway

CanIBurn MC

A simple, useful web app for Marion County residents to check whether outdoor burning is allowed today. Users add their address and get an instant answer based on current county burn status.

Challenge

The county publishes burn status in formats that aren't user-friendly. Residents needed a quick, mobile-friendly way to check before lighting a burn pile.

Solution

Built a Flask app that scrapes the county burn status, matches it to user addresses, and presents a clear yes/no answer. Clean UI with address management and automated status updates via APScheduler.

Results

  • Live at caniburn-mc.com
  • Automated daily status scraping
  • Simple, mobile-friendly interface
  • Deployed on Railway
API SaaS Product
FastAPIPostgreSQLRedisStripeNext.js 16

Vehicle Finder API

A REST API delivering normalized vehicle data for developers — specs, maintenance schedules, oil and fluid specs, VIN decoding, recalls, diagnostics, TSBs, valuations, reliability scores, and more across 35,000+ vehicles and 30 endpoint categories.

Challenge

Vehicle data is scattered across manufacturer docs and government databases in inconsistent formats. Developers building automotive products end up rebuilding the same data pipelines from scratch.

Solution

Built a FastAPI backend with SQLAlchemy and Alembic on PostgreSQL, Redis-backed caching and rate limiting, and Stripe metered billing with API-key auth. A Next.js docs site ships 40+ documented endpoints with code samples and a live no-signup VIN decoder.

Results

  • Live at vehicle-finder.com with paying customers
  • 35,000+ vehicles, 1.3M+ TSBs, 800K+ complaints
  • 40+ endpoints with live test interface
  • Free, Starter & Pro tiers plus RapidAPI distribution
Consumer Web App
Next.js 16React 19TypeScriptTailwind v4Vercel

Property Search

A public-facing property search frontend that lets users look up any US address and view detailed property data including tax info, flood zones, demographics, and nearby amenities — powered by the Property Pulse API.

Challenge

Creating an intuitive search experience that presents complex property data in a digestible format, with fast autocomplete and responsive design across all devices.

Solution

Built a Next.js frontend consuming the Property Pulse API. Features address autocomplete, detailed property cards, and a clean data-dense layout. Deployed on Vercel with environment-based API key management.

Results

  • Live on Vercel
  • Real-time address autocomplete
  • Rich property data display
  • Responsive across all devices
API SaaS Product
FastAPIPostgreSQLRedisStripeBeautifulSoup4

Permits Data API

A SaaS REST API for building permits, inspections, code violations, and contractor data. Aggregates public records from multiple government sources into a single developer-friendly interface with tiered API key access.

Challenge

Government permit data is scattered across multiple portals with inconsistent HTML formats and no public API. Developers and proptech companies need normalized, queryable access to this data.

Solution

Built a FastAPI application with custom scrapers for the Salem PAC Portal, Marion County ArcGIS, and Compliance Services. Data is normalized into a unified schema with Redis caching, Stripe subscription billing, and sliding-window rate limiting.

Results

  • Phase 1 complete with full data pipeline
  • 3 government data sources integrated
  • 4-tier billing from free to enterprise
  • Domain secured at permitsdata.com
Health Tech Web App
Next.js 16Claude APIPrisma 7LeafletPWA

QuickCare Finder

An AI-powered urgent care finder. Users describe their symptoms, Claude AI determines the appropriate care level (ER, urgent care, or primary care), then the app matches them with nearby facilities that can handle their specific needs.

Challenge

People often don't know whether their symptoms warrant an ER visit or a simple urgent care trip — and not all urgent care centers handle the same conditions. This leads to wasted time, money, and delayed care.

Solution

Integrated Claude Sonnet for real-time symptom triage with ER escalation warnings. Built a facility database with 17 capability types and a match-scoring algorithm. Leaflet maps show results with capability badges, and the app works offline as a PWA.

Results

  • AI symptom triage with ER escalation
  • 12 facilities with capability matching
  • Interactive map + list view
  • PWA-ready with dark/light themes
Content Platform
Next.js 16Prisma 7StripeRechartsFramer Motion

CalcMountain

A comprehensive financial and utility calculator platform with 100+ interactive calculators across 30 categories — from mortgage and retirement to fitness, chemistry, and construction. Features user accounts, PDF export, and a premium subscription tier.

Challenge

Building a massive library of accurate, interactive calculators that load fast, look great, and are individually SEO-optimized — while supporting user accounts, saved calculations, and monetization.

Solution

Architected a Next.js 16 app with a modular calculator registry system. Each calculator is a self-contained component with Recharts visualizations, jsPDF export, and Stripe-powered premium access. Framer Motion provides polished animations throughout.

Results

  • 100+ calculators across 30 categories
  • PDF export for all calculations
  • Premium tier with Stripe billing
  • User accounts with saved history
Event & E-Commerce Site
Next.js 16SquareNextAuth 5Prisma 7Framer Motion

Koster Family Golf Tournament

A premium event website for an annual charity golf tournament benefiting Salem Area Youth Golf. Features online ticket purchasing via Square, live countdown, sponsor showcases, and event details — all wrapped in a luxury golf aesthetic.

Challenge

Creating an elegant, conversion-focused event site that handles ticket sales, captures registrations, and presents sponsor information — while reflecting the prestige of a long-running community fundraiser.

Solution

Built a Next.js 16 site with Square payment integration for ticket purchases, NextAuth for user accounts, and a golf-inspired dark theme with gold accents. Framer Motion scroll animations create a premium feel throughout.

Results

  • Live at kostersaygolf.com
  • Square-powered ticket sales
  • Animated premium golf aesthetic
  • 20+ years of tournament history
B2B SaaS Platform
Next.js 16StripePrisma 7ResendSentry

QuoteBidBill

A proposal-to-payment platform for freelancers and small businesses. Create professional proposals with e-signatures, convert accepted quotes to invoices, and collect payments — all from one streamlined workflow.

Challenge

Small businesses juggle separate tools for proposals, contracts, invoicing, and payments. This fragmentation causes lost deals, slow payments, and administrative overhead.

Solution

Built a full-stack Next.js SaaS with a drag-and-drop proposal editor, legally binding e-signatures, one-click invoice generation from accepted proposals, and integrated Stripe payments. Includes real-time analytics on proposal views and client management.

Results

  • Complete quote-to-cash workflow
  • E-signatures with legal compliance
  • Stripe-powered instant payments
  • Free and Pro subscription tiers
Sports & Gaming App
Next.js 16Prisma 7ESPN APISendGridNextAuth 5

Bracket Squares

A squares pool platform for March Madness, the Super Bowl, and any sporting event. Create a grid, assign squares, share a link, and track scores live — with automatic ESPN score updates for NCAA games.

Challenge

Running a squares pool traditionally means spreadsheets, manual score tracking, and group chats full of confusion. There was no simple, free tool to create, share, and auto-score a squares game online.

Solution

Built a Next.js app with real-time ESPN score integration for NCAA games, CSV import for bulk player entry, automatic payout calculations, and shareable game links that require no account to view. SendGrid handles notifications.

Results

  • Auto-updating ESPN scores for NCAA
  • CSV import/export for player grids
  • Shareable links — no account needed
  • Custom payout structures per round

Your Project Could Be Next

Let's talk about what you're building and how we can help bring it to life.

Start a Conversation