The Observatory
What I learn building sites, written down so you don’t have to learn it the hard way. Organized by the question each note answers.
Featured reads
Three field notes I'd hand you first. The full log is just below.
Observation log
Two themes: build notes from real projects, and the ideas behind them. Filter by what you’re working on.
Smooth scroll without the stutter: Lenis + GSAP in Webflow
Most Lenis + GSAP stutter in Webflow comes from three things: two animation clocks running at once, Lenis's stylesheet missing, and canvas animations that never pause. Drive Lenis from `gsap.ticker`, add Lenis's CSS, and stop anything that isn't on screen.
Interactive 3D in Webflow that doesn't wreck your mobile score
Heavy 3D doesn't have to mean a slow page. Load the scene only when it's about to be seen, pause it whenever it's off screen, render at a lower pixel ratio on touch devices, and give reduced-motion visitors a still image. The first screen stays fast because the 3D isn't on the critical path at all.
Tap is not hover: the touch bug hiding in interactive Webflow builds
On a touchscreen, a single tap fires `pointerenter`, `pointerleave` and then `click`, one after another. If hover code opens something on enter and closes it on leave, it closes it again before your click handler runs. Ignore touch in the hover handlers (`if (e.pointerType === 'touch') return;`) and let taps use `click` alone.
Reduced motion without losing the magic
When a visitor's device asks for reduced motion, keep everything the motion was saying and drop only the movement. Check `prefers-reduced-motion` in every animation, replace big moves with a fade or a still end state, and design the still version on purpose rather than just switching things off.
Why before how: what a philosophy degree taught me about building websites
The most useful thing philosophy taught me is a habit: asking what something is for before deciding how to build it. In web projects, that one question saves more time than any tool: it turns "we need a new website" into a clear goal, a shorter sitemap and a design that has a reason for every section.
Plato's cave: what a crawler sees is not what your visitors see
In Plato's cave, prisoners mistake shadows on a wall for the real world. A crawler reading your site is in a similar spot: it often sees only the raw HTML the server sends, not the page your visitors get after scripts run. If your links, titles or content only appear after JavaScript, some machines are reading the shadow. The fix is to put the real thing in the HTML itself.
Descartes' method of doubt: publish, then check
Descartes built his philosophy on one rule: accept nothing as true unless you've seen for yourself that it is. On a website, that means a change isn't done when a tool says "saved" or "published". It's done when you've checked the live page and found it there. Descartes' four rules of method (verify, divide, order, enumerate) turn out to be a very good checklist for shipping a site.
Every word links once: how my field notes connect themselves (Webflow, no plugin)
The first time one of my field notes uses a word from my topic list, like "Webflow CMS" or "custom code," that word links to the topic's page. Hover it, focus it with the keyboard, or tap it once on a phone, and a small card shows a one-line definition with a "Read more" link. The links are written into the CMS text itself, not added by a script after the page loads, so search engines and AI assistants see them in the HTML. Every link was approved by hand before it went live. On October 14, 2026, that took my 33 notes from 68 internal links to 109.
Building a tappable 3D house for the web (and the six things that broke)
The hero of kipvillage.com is a 3D dollhouse built in Spline. Each of its five rooms demonstrates one feature of kip, a concept app for families who share a baby's care. Tap a room and the camera glides in, the other rooms dim, and a phone with that feature's screen slides in, ready to tap. About 88 objects in the scene react when you touch them. Getting it to behave like part of a website, especially on a phone, meant moving every control out of the 3D scene and into the page, so the scene only has to look good and report what happened.
Browse by topic
The same 27 words tag every observation, mission and service on this site. Pick one to see everything behind it.