…but some of us were watching
A response to The Descent, the generated frontend history that entered my feed recently. It skipped the CMS decade, Flash, and everyone who was in wp-admin in 2008 (like I was).
developer edu and community @sanity.io ⋅ (he/him) ⋅ ask me about real-time text fields in front of delightful JSON ⋅ endorsed for dry jokes on linkedin ⋅ follow @knut.fyi on bluesky ⋅ norwegian who moved to oakland, california
A response to The Descent, the generated frontend history that entered my feed recently. It skipped the CMS decade, Flash, and everyone who was in wp-admin in 2008 (like I was).
We should stop labeling people and ourselves as “non-technical” (unless they really are Luddites).
I built a CLI tool in 40 minutes with Claude. It worked. People used it. But something felt off—and that discomfort revealed more about why I code than the code itself.
I'm back with my own blog on my own domain after some years on other people’s platform. And it feels good.
These ten laws are a checklist for CMS developer experience in a world where humans and agents both need to build on top of your content system.
WRITING IS HARD YOU THINK TOO MUCH! THE SOLUTION THE HULK SUMMARY!
I'm excited to announce five tips for taking your marketing copy to the next level
Should you lock your content into JSX infused Markdown? Probably not. Here are some reasons why MDX has its limits.
Why my go-to tool for screen capturing to animated GIFs is LICEcap.
23 tips for those who want to contribute to a better workplace for everyone who wants to be in tech.
Add a nice hint of how far you have read a page by putting the scroll percentage in the title bar. Learn how to implement it with React and Gatsby.
Let's learn how to implement Webmentions friendly markup, and get them onto your website made with Gatsby. Bonus: You'll also learn how to trigger new builds on Netlify whenever a mentoin happens.
Most things bear repeating.
I was at Figma’s first conference. This is what I took away from it.
The new 'time to hello world' isn't determined by a developer reading your getting started guide. It's someone typing a naive prompt into an agent. How should we think about that?
I’ve been running developer relations for Sanity.io for a year. Here is what I have learned so far.
A reflection on the past year, and some goals for the new one.
How a thread about 10x engineers made me reconsider how I approach Twitter. (This post isn't really the 10x engineers thing).
I went to CascadiaJS half-expecting either AI hype or AI fatigue. I found neither, just a room full of working developers, quietly unsure, but building new things with a very familiar mindset. Some musings ensue.
I had a dumb idea, zero motion graphics skills, and 15 minutes. Claude Code, ffmpeg, and 1,005 PNG frames later, Justin Bieber is installing Sanity Studio at Coachella.
I was at JAMstack_conf London. It was great. Here's the story.
Four years ago I was a grad student with a Ph.D. fellowship in the Study of Religions, so how did I end up working for a tech startup? This is a post about how I came to run Developer Relations at Sanity.io – it's also a celebration of following less obvious paths.
I installed OpenClaw this morning. By the afternoon, my AI agent had reverse-engineered a booking platform and built a working sauna reservation system. No code written by a human.
I prompted an eslint plugin into existence in a day. So why do I feel weird about it? On the strange mix of empowerment and nihilism in the AI era.
How I would approach the “implementing backend” chapter of "The Web Project Guide” with Sanity.io.
I made the code for this blog public, and I removed all accidental secrets from the git history.
How should we reason about W3Tech’s web technology stats when advising on how to build on the web? And maybe it’s OK to use React, Tailwind, or any other hyped technology, to get work done?
I love what I do for work and I spend a lot of time on it. But how to balance inner-drive with ideals about work-life balance?