Skip to content
All work

1 min read

Charm Industrial

Rebuilding the site Charm Industrial sells through

Visit live site
  • ClientCharm Industrial (via Bejamas)
  • RoleLed the frontend
  • When2023 to 2025
  • 100k+

    monthly visitors

  • +86%

    performance improvement

  • 3x

    faster loading

Charm removes carbon for buyers like Alphabet, Shopify, Meta and JPMorgan Chase. I led the rewrite from Gatsby to Next.js and built a dashboard that streams live factory cameras.

Charm Industrial homepage with live tonnes of carbon dioxide removed

Context

Gatsby was slow and costly to work in. Plugins bloated the site, and some were deprecated and a security risk. The site needed live data and a modern stack.

What I built

  • charmindustrial.com

    Full rewrite from Gatsby to Next.js, with server rendering for live data. Dead code and unused dependencies gone.

    Visit live site
  • Factory video dashboard (private)

    Internal Next.js app with live camera feeds. Express on Render replays Verkada HLS streams to many viewers.

How it's built

The public site is Next.js on Vercel with Stripe. The dashboard is a separate app: one Express service pulls each stream once and fans it out.

charmindustrial.com
  1. Visitor
  2. Next.js and TailwindVercel
  3. Stripe checkoutPayments
Factory dashboard (private)
  1. Verkada camerasHLS (m3u8)
  2. Express on RenderReplays to many viewers
  3. Next.js app
  4. Charm staff

Hard parts

  • Rewriting a site that takes payments without a day of downtime.

    CallRebuilt behind the same Stripe checkout, so payments never moved.

  • Streaming several camera feeds to many viewers without the backend falling over.

    CallOne Express service pulls each Verkada stream once and fans it out, so the cameras see one viewer.

StackNext.jsTailwindFramer MotionStoryblokStripeVercelExpressRender

Hiring, or need a product built?

I reply within a day. Calls are 15 minutes, no prep needed.