knut
@knut
developer edu and community @sanity.io \n (he/him) \n ask me about real-time text fields in front of delightful JSON \n endorsed for dry jokes on linkedin \n Oakland, CA \n 🌐
found an old @sanity.io demo from 2018 i did with custom validation and... tensorflow.js(?) where publishing is blocked unless there is a human face present. hits different now.
Conferences are filled to the brim with content ops. Talks, CFPs, schedules, FAQs, announcements. Usually spread across systems that don't work on your phone. So I built a conference OS on Sanity with agents in Telegram. Text it to move a panel or accept a CFP. Writeup next week.
"Can Portable Text handle complex data visualizations beyond text and images?" Yes. Here's a live editor with charts, inline sparklines, metric badges, and tables. All as structured JSON that any platform can render. Demo: portable-text-data-demo.sanity.dev Docs: portabletext.org
You're right that the spec document focuses on the flat array (we should make this clearer). We just shipped a custom blocks guide for the editor that covers the nesting pattern: portabletext.org/editor/guides/custom-blocks/
The serializer targets everything cleanly. Call `<PortableText>` recursively on nested fields, and inline objects use the same types map. Pass components down so custom renderers work at any depth.
Here's a callout block with nested rich text in both title and body. The body has bold, code marks, and an inline object (versionBadge) sitting right in the text flow alongside spans.
I'm having so much fun with the @sanity.io Content Agent API. Building a "conference management system" - imagine being able to just update your conference rig via chat?
buying a domain that just asks for a C&D? asking users to plop their API keys into a random website? using AI to make prose from your networks logs? you should not do this, but i did for the lolz claudeflare.app
Vibe-coded a smol library to fix those vibe-coded ascii diagrams that don't align. $ npx boxfix README․md Can also be added into an agent hook etc. Let me know how/if works for you! npmx.dev/package/boxfix
It's also mildly mind boggling that this video is made from a conversation between the first Nuum agent and another that was tasked to visualize it (and add the sounds with the resound mcp they made too).
Got feedback that our TypeGen lesson on @sanity.io Learn was out of date. Instead of manually hunting through lessons, I just pointed Content Agent at it. Found 2 lessons. Updated the instructions. Added notes where video differs from text. Ready to publish. Took only a few minutes.
Oh yeah! You can also set it to use other models pr agent etc. Let me invite you to the repo and such.
@simensvale.bsky.social working on something like this that we might ship next week.
Spotify Wrapped, but for your terminal 🎄 CLI Wrapped analyzes your shell history and generates fun stats (with optional AI roasts). Built almost entirely with @anthropic.com Claude Code using @bun.sh, @react.dev + Ink, and @vercel.com's Satori. github.com/kmelve/cli-wrapped
i'm totally up-keeping my aug 29. deadline for sending in the .ppt for this week's developer marketing summit in SF. yup
had the machine paint me offering a keyboard to the demo gods for the company all staff presentation today
waiting for my colleagues at @sanity.io to discover that Zoom has a Slack clone inside of it.
One of the things that I really love using @sanity.io for the @sanity.io docs, is that they are queryable with GROQ. We can also mark articles that are affected by changes descirbed in a changelog entry, which allows us to list out which articles have had the most API changes.
i guess this one can't influence your political opinions to the same degree as the video algo, but it does now most things about your living room and potentially where your puppy 💩 inside and uploads that to someones computers elsewhere 🤷