
helping developers get more out of @sanity_io \n (he/him) \n ask me about real-time text-fields fields in front of delightful JSON \n advisor @heavybit
Oakland, CA
Joined February 2007
- Tweets23.6K
- Following2.6K
- Followers4.1K
- Likes15.9K
We just shipped mermaid rendering with @kepano's Pele for the @sanity_io engineering blog!
Before we had to do a "hack" where we had to open the post in the editor and let the the DOM render the mermaid diagram and save the snapshots. Which ment we couldn't fully rely on edits through an MCP to update stuff.
Now we can just add the mermaid source and it renders on the server with our fonts and color tokens.
Integrated with the Portable Text Editor, of course.
Check it out in action here sanity.io/engineering/how-we… and check out Pele here github.com/obsidianmd/pele
knut retweeted
TypeScript 7.1 Content Mapping + @sanity_io = typed GROQ query results and params 😍 github.com/sanity-labs/groq-…
knut retweeted
bespoke agents, with bespoke knowledge bases, bespoke instructions, bespoke tool-sets, and of course, bespoke routing with Jev
make your goon your very own!
It has been interesting to see all the applications of @typesafeai's Jev at @sanity_io.
Like our new internal agent harness which allows anyone in the company to quickly spin up a bespoke agent. Jev is used for the router and has worked pretty well so far!
We (@rostimelk, @even, and I) wrote up an in-depth post about how it's built so you can do it too.
sanity.io/engineering/how-we…
It has been interesting to see all the applications of @typesafeai's Jev at @sanity_io.
Like our new internal agent harness which allows anyone in the company to quickly spin up a bespoke agent. Jev is used for the router and has worked pretty well so far!
We (@rostimelk, @even, and I) wrote up an in-depth post about how it's built so you can do it too.
sanity.io/engineering/how-we…
knut retweeted
We built [at]s, our own internal agent harness, with Sanity as the backend. 70+ agents in Slack, most of them built in a single afternoon.
Each part lives where it belongs:
→ Agents are documents in a Sanity Studio. Edit, publish, and it’s live.
→ Facts live in Knowledge Bases, compiled from sources like our intranet.
→ Skills live in their own Studio, shared across harnesses.
→ Tools live in code, merged by pull request.
Fix a fact once, and every agent that reads it gets the fix. Retire an agent, and nothing it knew is lost.
sanity.io/blog/in-defense-of…
knut retweeted
We wanted the agent on our Everything *[NYC] event site to do more than just answer event questions.
The site, blog, docs, and swag store are all separate Sanity projects. Each one feeds a Knowledge Base in Sanity Context, and the agent reads them all through a single Context MCP.
Kevin Green breaks it down in the full session. Watch it, then try Knowledge Bases (in beta). go.sanity.io/Rj27rKn
Is there any actual proof that "de-slopping" skills like this actually work? I have done the same exercise many-a-time for the last couple of years with limited success.
Slop is more than em-dashes (gone in opus 5.5 btw) and terms like "delve" and "seamless." AI-generated content is also recognized by document structure, how arguments are laid out, formatting (or the lack of; looking at you absent H3s), all the way down.
Sure, harder to spot in short copy, but you'll definitively spot it in longer prose.
LLM-generated content is an onion, not a banana.
And pouring a huge .md file into your context can't be good either (especially when the labs tell you to shave off skills and instructions for their capable models).
Introducing epstein.md 👋
A 927,400+ Character .MD File that's specifically trained to skip every vibe coded AI Slop design principle.
- no box shadows
- no emojis
- no '🟢 LIVE ' badges
- 0 blue/purple gradients
& religiously ignores 350 most common AI words (delve, vibe, seamless ...)
It's the result of 11 months of 8 hrs/day Twitter doomscrolling and constant additions to the codebase of our vibecoding ui.
Wholeheartedly hoping this finds the most design-needy indie hackers.
All I know is that a good chunk of these companies uses @sanity_io for their content; so their taste must be great.
Who are the most tasteful companies in tech?
Vote now: cosign.co/questions/highest-…
Jev got 👀 📐🖼️ now!
Multimodal Jev and a new bounding box type from @typesafeai launched today as early access aka "dreamer mode" aka `typesafe_danger_zone`.
Took me about 10 minutes to integrate it with @sanity_io for automatically setting hotspot and crop based on your description.
And damn, this is actually useful, not just a fun demo.
How it works:
I have a Sanity Function that trigges on draft changes to only the `focus` and `image` fields (that way it works when agents work with content via mcp/api too).
Since Sanity has an image transformation pipeline, we can send downscaled optimized images to Jev without burning through the very cheap tokens too fast.
Then it asks Jev three things in one request:
→ Is it there? (yes/no)
→ Where is it? (a box)
→ Is everything around it plain background? (yes/no)
Jev's box comes back as fractions of the image. Sanity stores hotspot and crop as fractions of the image. So the integration is arithmetic, and code decides what to write, not the model. That is really cool.
Bonus: lint rules can look at images now. "Does the cover fit the post?" A photo of a pile of board games scores 3% on a post about agents. On a post about five best casual party games, the same photo gets 81% and passes. Fair.
Cost of the demo including experimentation: $0.04.
You can also read more about our early Jev-testing here—we're exploring multiple ways to use it for our product offering. More deep dives to come!
sanity.io/engineering/the-0-…
You can also use Jev to validate if the alt text for an image in your CMS actually describes the image.
Or even if the image vibes with the rest of your content.
and demo time xitter.cf/kmelve/status/21104939…
Jev got 👀 📐🖼️ now!
Multimodal Jev and a new bounding box type from @typesafeai launched today as early access aka "dreamer mode" aka `typesafe_danger_zone`.
Took me about 10 minutes to integrate it with @sanity_io for automatically setting hotspot and crop based on your description.
And damn, this is actually useful, not just a fun demo.
How it works:
I have a Sanity Function that trigges on draft changes to only the `focus` and `image` fields (that way it works when agents work with content via mcp/api too).
Since Sanity has an image transformation pipeline, we can send downscaled optimized images to Jev without burning through the very cheap tokens too fast.
Then it asks Jev three things in one request:
→ Is it there? (yes/no)
→ Where is it? (a box)
→ Is everything around it plain background? (yes/no)
Jev's box comes back as fractions of the image. Sanity stores hotspot and crop as fractions of the image. So the integration is arithmetic, and code decides what to write, not the model. That is really cool.
Bonus: lint rules can look at images now. "Does the cover fit the post?" A photo of a pile of board games scores 3% on a post about agents. On a post about five best casual party games, the same photo gets 81% and passes. Fair.
Cost of the demo including experimentation: $0.04.









