A new static site for Glowplug , sans Figma

I finally got around to the refresh of the Glowplug.studio site after 2 years and finished it in around 9h from 0 to done.

No need for Figma.

I find that now Figma and exporting or converting from Figma, fighting with autolayout, colour variables etc add friction.

ChatGPT for the images in browser.

Codex 5.6 SOL (medium) for iterative design with taste skill.

The Matrix.

Paying homage to The Matrix the film, along with Jurassic Park that continues to influence me to this day, with a matrix.

This was pure vibe fun, i wanted to make something with pulsing explosions like diesel igniting in a cylinder. Having made something similar for collisions on interface line commander I went with the monospaced text grid again.

Initially Codex produced something cavas based, that looked too smooth when   firing i wanted the characters to flip so just asked for a rewrite using monospaced grid of actuall HTML divs, and left codex to it. Probably 20 prompts later I was happy with the overall look, committed and asked for an optimisation review of the algo, which apparently reduced a lot of redundant processing. I couldn’t even be bothered to pay attention to it if I’m honest the objective was beautiful site fast.

This is what it did:

Added in the optimisation pass

  • Code-split the entire animated scene. On mobile, Motion, the prompt and the character matrix are not loaded or mounted until the panel approaches the viewport. Desktop still starts immediately.
  • Used the matrix container’s measured dimensions to generate only enough rows and columns to cover the visible panel, plus one overflow row/column.
  • Added a dimension ref so resize events rebuild the matrix only when the calculated row or column count genuinely changes.
  • Extracted character scrambling into a bounds-safe helper. It copies only affected rows, splits each changed row once, and safely ignores stale cells during responsive resizing.
  • Added a regression test for the resize race that previously caused next[row].split() to crash.

Pulse optimisations retained and verified

  • Pulse distances are calculated once at pulse start and stored in a Float64Array.
  • Every pulse tick examines only a rough ring around the current frontier, rather than scanning the complete character grid.
  • The rough-edge allowance is included in that candidate ring, preserving the jagged appearance.
  • The pulse updates approximately every 86ms, while CSS handles the smooth flip interpolation.
  • Matrix rows are memoised, helping unaffected rows avoid unnecessary rendering.

For a representative 69×61 grid over 75 pulse ticks, the candidate algorithm reduces cell inspections by at least 70%: from roughly 315,000 full-grid visits to fewer than 95,000. That behavior is covered by an automated performance regression test.

Process

I started with a blank project locally and asked ChatGPT to make a new NextJS Tailwind static site and to look at this sample site to scaffold few sections michaelpumo.com

Iteratively went section by section checking the layout in different resolution viewports, giving clear single sentence prompts to Codex with dev vernacular to get done what i needed.

Checked on mobile in Chrome.

Done.

I merged that source onto the existing repo folder and said scrub the old version but keep things like OG content, favicons, Google analytics ID etc.

Pushed to Github using the old repo CD pipeline to Vercel and it was done.

Combing 

Used a static site checklist prompt to clean up the DOM and cruft, optimised images in the build process and specifically turned off image transformations in Next Image to avoid the Vercel usage.

Used the Chrome MCP and skills.

What’s next

Im coming for the WordPress backednds on Sleevewall which will be merged with ParrotPlayer and eventually this site. My gut feeling is, that managing updates and file system permissions in WordPress, paying hostinger for a dog slow old linux server is yesterdays tech. I don’t need a CMS anymore and the cost and headache. The only benefit has been eroded, I don’t need an interface for managing drafts in the actual site itself, I can do that on google docs or whatever and then publish to the site to Vercel using Codex on my phone.

Was this article helpful?
YesNo