Skip to main content
v6.28.0

Header-Aware Sticky, OG Revalidation & Token Refresh

Another new release! In this release, I focused on making navigation feel more intentional and trimming a few things that no longer needed to be there.

The navbar now watches the hero header in desktop too and only pins after you scroll past it. I also fixed the stacked cards offset underneath, so content no longer jumps. The scroll feels calmer and more predictable.

I removed the custom smooth scroll system (Lenis). It just stopped feeling like “me”. The extra smoothness started to feel more like a layer between me and the content than an improvement. Native scroll with a lighter lock does the job with less JavaScript, especially on mobile. The desktop header keeps its drag interaction, but heavy animation logic is now limited to desktop. Mobile loads faster and feels snappier, while content still renders for SEO.

Open Graph images are now generated per slug with revalidation, so sharing Writing and Work pages to social is more consistent. Titles now scale to length so long titles don’t overflow, and tweet embeds have a fallback so one failing embed doesn’t break the page.

I tidied the design tokens. Font loading is more consistent, warning text has proper contrast in light and dark modes, and sizes use rem for better scaling. Overall type now has a more consistent rhythm and first paint is a bit lighter.


  • Allowed the site to be embedded in iframes for previews
  • Tightened security headers for tracking and proxying
  • Added rate limiting to the Singline waitlist
  • Updated the build setup with the Netlify Next.js plugin and bumped Node, pnpm, and Next for better stability
  • Made the header stripe and responsive logo in the navigation bar more reliable