Case Study · 2026Ecommerce + CMS · Phase 1+2 · Final

AERO·ADIX

A production-grade ecommerce site and owner-operated CMS for a CFD-engineered, 3D-printed aerodynamics brand. Built end-to-end in ten weeks.

VVV DIGITALS · BRIT, DIRECTOR OF DIGITAL OPERATIONSaeroadix.com →
10
Active Weeks
02
Phases Delivered
04
Vehicle Platforms
9+6
Public + Admin Routes
The Brief
Build a production-grade ecommerce site for a CFD-engineered aerodynamics brand. Make it ownable. Make it self-serve.
PHASE 01Delivered Apr 24, 2026

The Site.

A custom React + Vite single-page application with nine public routes — homepage, shop, category, product detail, cart, checkout, order confirmation, contact, and a custom 404. Branded from logo system through to social card.

Stripe checkout via a serverless Netlify Function. WCAG 2.1 AA accessibility audit and remediation. Forty-eight product photographs processed and a full SEO launch kit shipped — sitemap, robots, meta, Open Graph, font preloading, lazy loading, WebP pipeline.

🔒aeroadix.com
AeroAdix homepage — top fold showing the rotating product carousel, M.A.S.T. concept tagline, and four-platform vehicle selector
01 · Homepage/
🔒aeroadix.com/shop
AeroAdix shop catalog — four vehicle platform tiles for Focus RS, GTR R35, BMW E90/E92, and Subaru STI
02 · Shop catalog/shop
🔒aeroadix.com/shop/category/subaru-sti
STI category page — full Aero-RS system available as a bundle or individual pieces
03 · STI category/shop/category/:slug
🔒aeroadix.com/shop/focus-rs-canard-kit
Focus RS Canard Kit product detail — multi-image gallery, specs table, package breakdown
04 · Product detail · Focus RS/shop/:productId
🔒aeroadix.com/contact
Contact page — Netlify Forms wired with honeypot spam protection
05 · Contact/contact
Phase 01 deliverables · expand
  1. Brand identity — logo system (SVG master, PNG variants, favicon set), social card, Open Graph creative
  2. Custom Vite + React + Tailwind single-page application, nine public routes
  3. Homepage — hero, engineering stack, CFD process, platform selector, About, flagship showcase, footer
  4. Shop catalog, category pages, product detail with multi-image galleries
  5. Cart context, cart page, checkout, order confirmation
  6. Stripe integration via serverless Netlify Function
  7. Initial product data layer — seven SKUs across four vehicle platforms
  8. SEO launch kit, WCAG 2.1 AA accessibility audit and remediation
  9. Product photography processing (48+ assets) and CFD imagery curation
  10. Netlify deployment configuration with security headers, caching, SPA redirects
  11. CodeQL security workflow, clean repository hygiene, full handoff package
PHASE 02Delivered Apr 26, 2026

The Owner Panel.

A self-serve content management system. The owner manages every product, price, photograph, and homepage carousel image through a branded admin panel — no developer involvement required.

Supabase Postgres with Row Level Security. Two public Storage buckets gated to the owner email. Admin routes shielded by both a frontend route guard and database-level enforcement. Stripe checkout uses live admin prices automatically — no Stripe sync when prices change.

🔒aeroadix.com/admin
Admin dashboard — three tiles showing live counts of products, carousel images, and storage
06 · Admin dashboard/admin
🔒aeroadix.com/admin/products
Admin products manager — full list with reorder controls, edit, delete, and featured toggles
07 · Products manager/admin/products
🔒aeroadix.com/admin/carousel
Admin carousel manager — drag-and-drop upload, inline label editing, reorder, replace, delete
08 · Carousel manager/admin/carousel
Phase 02 deliverables · expand
  1. Supabase project provisioning — schema, idempotent migration script, Row Level Security policies, Storage buckets and policies
  2. One-time image migration uploading all existing site assets to Supabase Storage and rewriting database references
  3. React data layer — hooks replacing the static data file, with skeleton loading on Shop, Category, Product Detail, and homepage carousel
  4. Owner authentication — Supabase Auth integration, owner-only gating, branded login page, protected route wrapper
  5. Admin shell — bare-layout admin frame, dashboard tiles, mobile responsiveness, noindex meta on every admin page
  6. Admin products module — list with reorder, full edit form, multi-image drag-and-drop, set-thumbnail, delete-with-Storage-cleanup
  7. New-product flow with auto-generated URL slug, owner-friendly field hiding (Stripe IDs, SKUs, internal fields)
  8. Admin carousel module — list, drag-and-drop add, inline label editing, replace, delete
  9. Owner UX polish — plain-English placeholders, slug protection on existing products, intuitive sort controls
  10. Documentation — idempotent SQL setup, storage walkthrough, environment template, owner operations guide
Stack

Built on.

Modern, minimal, production-grade. Every choice is intentional — chosen for the owner to be able to live with the system long after handoff, and for the codebase to be readable by any competent React engineer.

FrameworkVite 6React 18React Router 7
StylingTailwind CSS 3Framer Motion 11Inter (Google Fonts)
DatabaseSupabase PostgresRow Level Security
File StorageSupabase StorageTwo public buckets
AuthenticationSupabase AuthSingle owner
HostingNetlifyNetlify FunctionsNetlify Forms
PaymentsStripe CheckoutServerless bridge
CI/CD & SecurityGitHubCodeQLAuto preview deploys
Outcome

What shipped.

A production site indexed by Google Search Console at aeroadix.com, owner-operated end to end, with the owner able to add products, change prices, swap homepage imagery, and manage the catalog without touching code.

01

Owner Independence

The site owner manages every product, price, photograph, and homepage carousel image. Zero developer involvement required for ongoing operations.

02

No Stripe Sync Drift

Checkout uses live admin prices via ad-hoc price_data. Change a price in the admin panel — it takes effect on the next checkout.

03

Defense in Depth

Frontend route guard plus database-level Row Level Security. Browser secrets isolated. Storage policies enforce owner-only writes. Bypass either layer and the other still holds.

Live Site · Production
aeroadix.com
Credits

Engagement record.

Build & Brand
VVV Digitals LLCBrit · Director of Digital Operations
Client
AeroAdix Fabrication SolutionsA division of 3DBoomPrint · Richard Garcia
Engagement Window
Feb 14, 2026 → Apr 26, 202610 active weeks · 2 phases · final delivery