THIS SITE'S ENGINE

SCATTER TEXT ENGINE

SCATTER TEXT ENGINE IS THE SYSTEM RENDERING EVERY WORD ON THIS SITE. IT CAME FROM WANTING TWO THINGS AT ONCE: A PORTFOLIO THAT FELT SPECIFIC TO ME, AND A PAGE THAT STAYED PLAIN AND EASY TO READ.
ROLE
CREATOR

THE CONSTRAINT

I DID NOT WANT A BUSY PORTFOLIO. THE CONTENT HAD TO BE EASY TO SCAN, AND NOBODY SHOULD HAVE TO FIGHT AN INTERACTION JUST TO FIND OUT WHAT I DO.
AT THE SAME TIME A COMPLETELY PLAIN PAGE FELT WRONG FOR A PORTFOLIO. THE SCATTER TEXT GAVE ME A NARROW PLACE TO BE EXPRESSIVE, WHERE THE WORDS AND IMAGES COULD HAVE TEXTURE WHILE THE LAYOUT STAYED SIMPLE.

WHY IT BECAME AN ENGINE

THE FASTEST VERSION WOULD HAVE BEEN A SINGLE COMPONENT WITH ALL THE ASSUMPTIONS BAKED IN. THAT WOULD HAVE WORKED EXACTLY ONCE, AND EVERY USE AFTER THAT WOULD HAVE BEEN A PATCH ON TOP OF A PATCH.
SO I SPLIT IT INTO PROPER PIECES: THE TEXT ENGINE, THE BROWSER LAYER, REACT AND ASTRO BINDINGS, AND AN IMAGE COMPILER. THAT MADE THE IDEA PORTABLE ENOUGH TO CARRY THE WHOLE SITE INSTEAD OF DECORATING ONE HERO SECTION.

THE BORING PARTS THAT MATTER

THE VISUAL EFFECT IS THE EASY PART. WHAT KEEPS IT FROM BEING A FRAGILE DEMO IS THE REST: SEMANTIC FALLBACK SO THE CONTENT SURVIVES WITHOUT JAVASCRIPT, SSR SNAPSHOTS, HYDRATION UTILITIES, RENDERER SELECTION, AND COMPILED IMAGE ARTIFACTS LIKE THE HOMEPAGE PORTRAIT.
IF I AM GOING TO PUT A CUSTOM RENDERING SYSTEM IN FRONT OF MY OWN CONTENT, IT HAS TO DEGRADE WELL, LOAD PREDICTABLY, AND STAY MAINTAINABLE AFTER THE NOVELTY WEARS OFF. THAT IS WHERE MOST OF THE ENGINEERING WENT.