Portfolio

Real projects. Real results. Hover a tech badge to see what it does.

Granite Details

Next.jsReact framework with SSR/SSG/ISR for fast first paint and crawlable HTML. Plain speak: pages load quick and Google can read them → better SEO.Cloudflare ImagesManaged image storage + resizing + CDN at the edge. Plain speak: smaller, faster images worldwide → better Core Web Vitals and SEO.FirebaseAuth, storage, serverless functions. Plain speak: production features without managing servers.SEOSearch Engine Optimization. Plain speak: structure & content that help the right people find you.Custom DesignHand-crafted CSS and components beyond a framework. Plain speak: your brand looks unique, not template-y.

About

A local family-owned and ran countertop fabrication & installation company located in Mooresville who needed an upgrade from their GoDaddy site. Custom brochure site with audience aware UI, SEO, weekly updates, gallery, and live remnant inventory showcasing what they currently have in their warehouse.

How we solved it

Rebuilt from GoDaddy → fast brochure site with live remnant inventory, local SEO, and weekly content updates. Images served via Cloudflare Images for speed and quality.

AI Autofill – Web App + Chrome Extension

Next.jsReact framework with SSR/SSG/ISR for fast first paint and crawlable HTML. Plain speak: pages load quick and Google can read them → better SEO.Chrome ExtensionRuns inside the browser to extend site behavior. Plain speak: adds features right where users already work.WXTDX toolkit for building extensions with Vite + TS. Plain speak: faster dev and smaller bundles for snappier installs.Auth.js JWTToken-based auth for APIs and protected routes. Plain speak: only the right people see the right stuff—securely.OpenAI APILLM-powered analysis, generation, and tools. Plain speak: smart features (summaries, autofill) without heavy backends.Tailwind CSSUtility-first CSS for rapid, consistent styling. Plain speak: faster design during build process, fewer bugs; designs stay tidy across the site.

About

AI-driven survey autofill: the extension detects survey pages and lists, validates the correct entrypoint, auto-navigates, and completes forms with human-like pacing across selections, checkboxes, and text inputs. Security first: JWT-secured API routes and extension access gated by server-side authentication. Users can build a profile with real data to improve accuracy. NDA limits specifics; client is Japan-based.

How we solved it

Secured API with Auth.js JWT, robust entrypoint detection, human-like form pacing, and fallback navigation.

Ryan Mackenzie Dancewear

Next.jsReact framework with SSR/SSG/ISR for fast first paint and crawlable HTML. Plain speak: pages load quick and Google can read them → better SEO.Stripe APIPayments, subscriptions, and webhooks. Plain speak: checkout that just works and clears on time.MongoDBDocument DB for flexible schemas. Plain speak: move fast early; great for content and evolving data.Custom DesignHand-crafted CSS and components beyond a framework. Plain speak: your brand looks unique, not template-y.ResendTransactional email API. Plain speak: reliable order receipts, resets, and alerts.MailchimpEmail marketing lists, templates, and automations. Plain speak: stay in touch and track what works.Custom Admin DashboardInternal tools for operations. Plain speak: less spreadsheet chaos; faster day-to-day work.Shipstation APILabels, carriers, tracking integration. Plain speak: shipping that doesn’t fight you.Cloudflare R2 (S3-compatible)Object storage with S3 API, zero egress to Cloudflare. Plain speak: reliable uploads and media at low cost; plays nice with existing S3 tools.

About

Fully custom e-commerce built from the ground up for a competitive dancewear line. Punk-chic branding, bold color system, and custom product flows. Comes equipped with a custom administrator dashboard - ability to add, edit, delete products, create shipping labels and track shipments (for customers and admin), track analytics and sales, ability to communicate between customer and admin in-app. Full customer dashboard page with the ability to view past and current orders and change profile information.

How we solved it

Custom ecommerce with Stripe, admin tools, label generation, and customer portal to reduce support churn. Product/media uploads go to Cloudflare R2 (S3-compatible) for durable storage.

Surge

Next.jsReact framework with SSR/SSG/ISR for fast first paint and crawlable HTML. Plain speak: pages load quick and Google can read them → better SEO.PrismaType-safe ORM over SQL/Mongo. Plain speak: fewer data bugs and easier queries; your data is the app’s backbone.FFmpegMedia transcoding and analysis. Plain speak: video/audio load quickly and play everywhere.

About

Local music discovery app with competitive rankings, tipping, and playlists. Ocean-themed UI.

How we solved it

Kept UI lightweight, wired media handling with FFmpeg, and focused on quick discovery + ranking UX.

Magnolia Memories — Photography

Next.jsReact framework with SSR/SSG/ISR for fast first paint and crawlable HTML. Plain speak: pages load quick and Google can read them → better SEO.SSR/ISRServer render + incremental rebuilds. Plain speak: fresh pages without slow builds; great for SEO and speed.SEOSearch Engine Optimization. Plain speak: structure & content that help the right people find you.Image OptimizationNext/image pipelines, proper formats, and sizing. Plain speak: crisp pics, faster loads, better Core Web Vitals.Design SystemReusable tokens/components for consistency. Plain speak: changes roll out across the site without regressions.

About

Cottagecore-styled photography site: warm galleries, film-grain accents, and clean inquiry flow. Fast, mobile-first, SEO-ready.

How we solved it

Warm, fast galleries, clear inquiry flow, and structured SEO so clients actually find and book.

FleaWatch — Pet Medicine Effectiveness by Area

Next.jsReact framework with SSR/SSG/ISR for fast first paint and crawlable HTML. Plain speak: pages load quick and Google can read them → better SEO.Prisma/PostgresPrisma ORM on PostgreSQL. Plain speak: reliable data at scale; fast queries = responsive UI.Geolocation/MapsMap tiles, coords, and proximity filters. Plain speak: local results that actually feel local.AnalyticsTraffic, funnels, conversions. Plain speak: see what’s working so you can double down.

About

Crowdsourced flea-treatment outcomes by location (brand, dose, pet, home/yard pro vs DIY) to surface what actually works near you.

How we solved it

Geolocation + filters + analytics to surface local treatment outcomes at a glance.

Needle — Record Collection

Next.jsReact framework with SSR/SSG/ISR for fast first paint and crawlable HTML. Plain speak: pages load quick and Google can read them → better SEO.Prisma/PostgresPrisma ORM on PostgreSQL. Plain speak: reliable data at scale; fast queries = responsive UI.AuthSessions, roles, and permissions. Plain speak: accounts that behave and data that stays private.Server ActionsServer-first mutations (Next.js). Plain speak: fewer client fetches; simpler, faster flows.CRUDCreate/Read/Update/Delete app backbone. Plain speak: the day-to-day actions users need to get stuff done.

About

Private vinyl catalog: pressings, condition, artwork, fast search/filters, and export. Built for long-term, low-friction use.

How we solved it

Private, fast catalog with sensible filters and exports—built for long-term use.

Prism Signalboard — Client Analytics Hub

Next.jsReact framework with SSR/SSG/ISR for fast first paint and crawlable HTML. Plain speak: pages load quick and Google can read them → better SEO.Prisma/PostgresPrisma ORM on PostgreSQL. Plain speak: reliable data at scale; fast queries = responsive UI.AnalyticsTraffic, funnels, conversions. Plain speak: see what’s working so you can double down.Data PipelinesScheduled imports + parsers that normalize CSV/JSON from tools like GA4/Plausible. Plain speak: all the stats land in one place, apples-to-apples.HeatmapsAggregated click/scroll maps. Plain speak: shows where visitors actually interact so we can fix dead zones and double down on hot spots.Call TrackingUnique forwarding numbers per campaign/page. Plain speak: we can prove which traffic sources make the phone ring—great for ROI and client trust.SSR/ISRServer render + incremental rebuilds. Plain speak: fresh pages without slow builds; great for SEO and speed.Tailwind CSSUtility-first CSS for rapid, consistent styling. Plain speak: faster design during build process, fewer bugs; designs stay tidy across the site.

About

Internal dashboard to centralize monthly client analytics: visitors, page views, click heatmaps, bounce rate, and tracked phone calls via unique forwarding numbers. Imports CSV/exports from sources like GA4/Plausible, normalizes metrics, and generates a client-ready monthly summary.

How we solved it

Focused on speed, clarity, and measurable outcomes.