Projects
Libraries, browser tools, games, and interactive apps built in my spare time. Mostly open source, mostly weekend projects. Everything from Tailwind plugins and JS utilities to a full Tetris clone.
GitHubFeatured Projects
ParkFindr
Mobile-first web app for discovering parks, playgrounds, and green spaces near your current location. Two map providers, offline caching, and no account required.
▸OpenStreetMap by default, optional Google Maps, and a layered location strategy so the map is never blank
Florida's Scenic Byways
Every one of Florida's 37 designated scenic byways plotted on a single interactive map. Navigate by region, explore points of interest, and use it offline as a Progressive Web App.
▸All 37 state-designated routes mapped with region filters and offline support
reQuery
Reactive state and declarative DOM binding for jQuery — no build step, no virtual DOM, no component model.
▸Add reactive state to any jQuery project without touching your architecture
SaltyKeys
Client-side API key obfuscation for CodePen projects and public demos. Uses a salt-based reversible encoding to keep credentials out of plain-text source views without requiring a proxy server.
▸Salt-based XOR encoding reduces casual API key exposure in public embeds
create-vvv
Production-ready Vue 3 + Vite + Vercel project scaffolder. One command creates a full-stack app with Tailwind CSS v4, Pinia, Vue Router, serverless API routes, and automated formatting.
▸One command scaffolds Vue 3 + Vite + Vercel with Tailwind v4, Pinia, routing, testing, and pre-commit hooks
ImageProcessor
Browser-based image processing — resize, crop, compress, convert formats, and apply filters without uploading to a server.
▸Resize, crop, compress, and convert images entirely client-side
Route Hub
Multi-stop trip planner for the browser. Add stops, sort by proximity, then hand off the optimized route to Google Maps.
▸Sort stops by proximity and hand off to Google Maps in one click
All Projects
ParkFindr
Mobile-first web app for discovering parks, playgrounds, and green spaces near your current location. Two map providers, offline caching, and no account required.
Wordleish
A browser-based Wordle-style word guessing game with three difficulty levels, unlimited play, stats tracking, daily streaks, and social sharing. Built with Vue 3.
Tetrish
A guideline-compliant Tetris clone built with vanilla JavaScript. Full SRS rotation with wall kicks, 7-bag randomizer, T-spin detection, lock delay, back-to-back bonuses, and mobile touch controls.
Florida's Scenic Byways
Every one of Florida's 37 designated scenic byways plotted on a single interactive map. Navigate by region, explore points of interest, and use it offline as a Progressive Web App.
reQuery
Reactive state and declarative DOM binding for jQuery — no build step, no virtual DOM, no component model.
SaltyKeys
Client-side API key obfuscation for CodePen projects and public demos. Uses a salt-based reversible encoding to keep credentials out of plain-text source views without requiring a proxy server.
create-vvv
Production-ready Vue 3 + Vite + Vercel project scaffolder. One command creates a full-stack app with Tailwind CSS v4, Pinia, Vue Router, serverless API routes, and automated formatting.
ImageProcessor
Browser-based image processing — resize, crop, compress, convert formats, and apply filters without uploading to a server.
smawl URL Shortener
A simple, self-hosted URL shortener with short link generation and no external service dependencies.
Visual Chromatics
Extract dominant colors from any image and export palettes as CSS custom properties, JSON, or hex codes. Runs entirely in the browser.
Route Hub
Multi-stop trip planner for the browser. Add stops, sort by proximity, then hand off the optimized route to Google Maps.
Government Design Systems
A curated reference of publicly documented design systems from federal agencies, state and local governments, civic organizations, and international counterparts.
ResourceLoader
A lightweight, zero-dependency JavaScript library for dynamically loading scripts, styles, and other resources through a unified Promise-based API.
StorageManager
Wraps localStorage and sessionStorage with TTL expiration, LZString compression, namespacing, batch operations, and cross-tab sync.
Tailwind Hue Theme
A Tailwind CSS v4 plugin that remaps your entire color palette to perceptually-uniform OKLCH values controlled by a single CSS custom property.
GetViewport
Lightweight JS utility that bridges CSS media queries and JavaScript. Define breakpoints once. No magic numbers, no resize polling, no duplication.
tailwindcss-visibility
Tailwind CSS plugin adding content-visibility and contain-intrinsic-size utilities. Unlock browser-level rendering optimizations with a single class.
EmbedManager
Zero-dependency JS library for lazy-loaded, privacy-respecting embeds. One data-attribute pattern handles YouTube, Vimeo, Spotify, Gists, Maps, and more.
RepoWidget
Zero-dependency widget that renders live GitHub repo cards on any website. No build tools, no framework required. One script tag, one function call.
Maths.js
Dependency-free JS math library filling the gaps native Math leaves behind. Stats, number theory, and numeric helpers including avg, median, gcd, clamp, and percentile. Under 1 kb.
UtilityHelpers
80+ JavaScript utility functions for arrays, strings, objects, DOM, validation, and performance. One import, zero dependencies. Available via CDN or npm.
Save Image As
Chrome extension that adds right-click image saving with full format control. Convert to PNG, JPG, WebP, AVIF, GIF, or PDF directly from any webpage.