惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Tenable Blog
K
Kaspersky official blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
T
The Exploit Database - CXSecurity.com
Cisco Talos Blog
Cisco Talos Blog
P
Palo Alto Networks Blog
Latest news
Latest news
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
CXSECURITY Database RSS Feed - CXSecurity.com
P
Privacy International News Feed
The Hacker News
The Hacker News
T
Tor Project blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
C
Cisco Blogs
阮一峰的网络日志
阮一峰的网络日志
Recent Commits to openclaw:main
Recent Commits to openclaw:main
博客园_首页
N
News and Events Feed by Topic
W
WeLiveSecurity
罗磊的独立博客
GbyAI
GbyAI
T
Troy Hunt's Blog
Y
Y Combinator Blog
Recorded Future
Recorded Future
The Cloudflare Blog
TaoSecurity Blog
TaoSecurity Blog
爱范儿
爱范儿
美团技术团队
Attack and Defense Labs
Attack and Defense Labs
C
Check Point Blog
Engineering at Meta
Engineering at Meta
Cyberwarzone
Cyberwarzone
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
F
Fortinet All Blogs
The GitHub Blog
The GitHub Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Apple Machine Learning Research
Apple Machine Learning Research
Know Your Adversary
Know Your Adversary
AWS News Blog
AWS News Blog
D
DataBreaches.Net
Recent Announcements
Recent Announcements
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
M
MIT News - Artificial intelligence
Webroot Blog
Webroot Blog
Security Latest
Security Latest
T
Tailwind CSS Blog
V2EX - 技术
V2EX - 技术
aimingoo的专栏
aimingoo的专栏
S
Security @ Cisco Blogs
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed

Sanity.io

A Board Game agent built using Sanity Context and Vercel's AI SDK | Sanity Build a prototype with Claude Code that your whole team can edit | Sanity What’s New - May 2026 | Sanity I built a London pub guide with v0 and the Sanity MCP in six hours. Here's what I learned. | Sanity Build a conference concierge with Agent Context and Anthropic | Sanity Build a content-aware Telegram agent with Vercel AI SDK and Chat SDK | Sanity How I used Agent API to generate photos for my family’s recipes | Sanity What’s New April - 2026 | Sanity Better context, better matches: An AI love story (for dogs) | Sanity How to write for an agent | Sanity Content Agent, meet Slack: AI content operations in your workflow | Sanity Structure powers intelligence | Sanity Your agent needs better content. Here's how to give it. | Sanity How to serve content to agents (a field guide) | Sanity Sanity TypeGen GA: Automatic TypeScript types for content and GROQ | Sanity Sanity is now available on the Vercel Marketplace | Sanity The logo soup problem (and how to solve it) | Sanity Content Releases: From scattered updates to coordinated publishing | Sanity What's New - February 2026 | Sanity How we solved the agent memory problem | Sanity v0 Builder Challenge: The winners | Sanity Introducing: Sanity Agent Skills | Sanity Content Agent: Days of work in one conversation | Sanity Our Sanity Values | Sanity Open Source Pledge 2025: Stepping up when it matters | Sanity v0 builder challenge: $3000 in prizes | Sanity Why AI Breaks Without Structured Content Operations | Sanity What’s New January - 2026 | Sanity BFCM 2025: What teams built when infrastructure stopped being the problem | Sanity How AI shaped holiday shopping and what it means for content in 2026 | Sanity Sanity Studio v5: Embracing React 19 | Sanity You’ll need a CMS eventually. Let your agent set it up. | Sanity “You should never build a CMS” | Sanity AI Content Operations: A 30-Day Implementation Guide | Sanity What’s New December - 2025 | Sanity Scheduled Drafts: Stop manually publishing content at midnight | Sanity What’s New November - 2025 | Sanity Everything *[NYC] 2025 recap: A day of AI, Content Operations, and Culture | Sanity Clankers and content operations | Sanity Content Agent: AI that understands your structured content is here | Sanity Why design-driven content modeling creates technical debt, not velocity | Sanity What's New October - 2025 | Sanity The content editor's guide to content operations [E-commerce edition] | Sanity styled-components maintenance mode: A 40% faster fork | Sanity From zero code to a live website in 7 hours (thanks, Cursor!) | Sanity First attempt will be 95% garbage: A staff engineer's 6-week journey with Claude Code | Sanity Internationalization is more than translating words | Sanity What's New - September 2025 | Sanity We just deleted our 35k-member community Slack | Sanity What's New - August 2025 | Sanity The engineer's guide to content operations [E-commerce edition] | Sanity SEO for AI: Evolving from Web Pages to the Content Lake | Sanity What's New - July 2025 | Sanity Sanity Studio v4: A major version bump for a minor reason | Sanity What's New - June 2025 | Sanity Dashboard and Insights: Your New Content HQ | Sanity Canvas: AI-accelerated, context-aware, freeform authoring | Sanity Agent Actions: AI building blocks for structured content | Sanity Functions: Life beyond pressing publish | Sanity A new era for content applications with Sanity App SDK | Sanity The end of CMS era and our $85M Series C. | Sanity What's New – May 2025 | Sanity Introducing the Sanity Model Context Protocol (MCP) server | Sanity What's New – April 2025 | Sanity Pushing all the envelopes with ambitious content | Sanity Self-hosting is only free if your time is worth nothing | Sanity Content that lasts: Scaling beyond your frontend | Sanity The Live Content API is now Generally Available | Sanity The future beyond AI chat bots | Sanity Learning the new skill of working with AI | Sanity What's New - March 2025 | Sanity Give it in plain text: Making your content AI-Ready | Sanity No More 'DO NOT PUBLISH': Introducing Content Releases | Sanity React in 2025, what's next? | Sanity The final boss of front-end: block editors | Sanity Introducing Sanity for Startups | Sanity A block content editor that loves you back | Sanity A Black Friday Snooze Fest: Massive Traffic, No Drama | Sanity How to make a recipe site that scales well | Sanity The Sanity Winter Release 2024 | Sanity AVIF Arrives, Sanity’s Promise Fulfilled | Sanity Sanity joins the Open Source Pledge | Sanity Your content is now Live by default | Sanity Begin Team to Join Sanity | Sanity Sanity Digest - September '24 Edition | Sanity Sanity partners with Google. Now live on the Google Cloud Marketplace. | Sanity Sanity Digest - August ‘24 Edition | Sanity Now playing: the latest Mux Video Input plugin for Sanity | Sanity Community Digest - June ‘24 Edition | Sanity Community Digest - May ‘24 Edition | Sanity Guide to Sanity's newest product announcements | Sanity AI and Content Creation: A Leader's Guide | Sanity Of course, you should be able to type your content quickly! | Sanity New to AI Assist: translation, reference suggestions, image generation | Sanity Speak the language of your editors: Sanity Studio UI localization | Sanity Introducing the new Sanity Growth plan to serve collaborative teams | Sanity Presentation: Work faster than ever with structured content | Sanity Goodbye Feedback Frenzy, Hello Sanity Studio Comments! | Sanity Easing into the App Router with the Sanity Toolkit for Next.js | Sanity Making website updates easier with structured content | Sanity
From studio to inbox: How Kevin Green eliminated email campaign friction | Sanity
John Siciliano · 2025-09-27 · via Sanity.io

Why not draft and send email campaigns from the same place your other editorial work lives?

Write a blog, create a landing page, and draft an email in one system. Then release them simultaneously.

This is the reality Kevin Green built for the Sanity swag store. Here is why and how he built it.

screenshots of the swag store

The problem: Context switching kills momentum

Here's what most teams deal with:

Content lives everywhere except where you need it. Sanity handles content. Klaviyo delivers emails. The only thing missing? A bridge that lets them work together without you copy-pasting between them.

Content people end up playing the role of designers. They just want to write compelling copy, but now they're picking templates and adjusting layouts in yet another dashboard.

For teams without a dedicated email specialist, this friction turns what should be a simple task into hours of coordination. One campaign? Annoying. Weekly campaigns? That's a part-time job spent copying and pasting instead of creating.

"If you have someone who lives in Klaviyo all day, they're probably loving all its advanced features," Kevin explains. "But if you're a content person who also handles marketing? You need tools where you already work, not another dashboard to learn."

Solution: Email campaigns as documents

Kevin treats email campaigns like what they actually are: documents that happen to get sent to inboxes. No copy-pasting. No exporting. Just hit publish in studio and watch the campaign go live through Klaviyo's powerful delivery infrastructure.

The beauty is that you get the best of both worlds: Klaviyo's proven email delivery and analytics infrastructure combined with Sanity's Content Operating System. Your content team works where they're comfortable, while your campaigns still leverage Klaviyo's email expertise.

The setup is beautiful:

  • Email campaigns are documents (because why shouldn't they be?)
  • Editors preview the email using a custom preview pane
  • Sanity Function triggers on publish → syncs to Klaviyo automatically

"There's no guessing. I know for sure this is the exact email that will show in your inbox."

The technical breakdown

Let's explore the building blocks that brought this to life.

1. Custom preview pane renders actual email HTML

Since Sanity Studio is a React app, you can extend it to render anything. Kevin added a preview pane that shows the exact HTML that gets sent to subscribers.

Using the Structure Builder API, he renders his custom preview alongside the default editing pane:

The PostPreviewPane component renders the HTML string:

This same logic generates the HTML sent to Klaviyo, ensuring preview and email are always identical.

2. Sanity Functions automate the Klaviyo sync

When an editor hits publish, Sanity Functions automatically handles the entire Klaviyo integration. But here's the clever part: Kevin split this into two separate functions to match the natural workflow.

First function: Create the campaign draft

This fires whenever content changes, setting up everything in Klaviyo but not sending it yet. Think of it as a safety net so editors can review, tweak, and perfect everything before it goes out.

The beauty is in the Blueprint configuration. By using delta GROQ, this function only triggers when the status isn't "sent", which prevents accidental re-sends:

Second function: Actually send the campaign

This is where the two-function approach pays off. When an editor changes the status to "ready," a separate function handles the actual send. This separation means:

  • No accidental sends while drafting
  • Clear audit trail of who triggered the send and when
  • Ability to schedule sends by setting the status at a specific time

The send function calls Klaviyo's API and contains the campaign ID we stored earlier. The first function already did all the heavy lifting (HTML generation, template creation), so this one just pulls the trigger.

What makes this approach resilient is that you can't accidentally break things. Edit the content? The first function updates the Klaviyo template. Change your mind about sending? Just leave the status alone. Ready to go? Flip to "ready" and it's sent. No manual steps, no room for error.

Release with applaudable coordination

You have a new product drop that requires a blog post, landing page, and email campaign.

How do you coordinate their release?

Answer: Content Releases. Group content changes together and publish them simultaneously, either instantly or scheduled. Your blog post, landing page, and email all go live in perfect sync. No more "wait, did anyone publish the email yet?" panic moments.

Beyond the obvious wins

The immediate payoff: 20 minutes saved per campaign. But the real transformation happens at scale:

Content reusability actually works. That product module from the website? Now it's an email component too. Write once, publish everywhere.

Consistency happens naturally. When emails pull from the same content source as the website, messaging stays aligned without style guide enforcement meetings.

Onboarding is simple. New team members? If they know Sanity Studio, they're ready to send campaigns. No separate training is required.

When this workflow makes sense (and when it doesn't)

This approach shines when:

  • Your content team also handles email marketing
  • You want genuine content reuse across channels
  • Email is part of your content strategy, not a separate silo
  • You're sending content-driven campaigns (not purely transactional)

You might work directly in Klaviyo if:

  • You have dedicated email marketers who live in Klaviyo
  • Your emails are heavily behavior-triggered rather than content-driven
  • You need complex segmentation logic that's native to email platforms
  • You're running sophisticated A/B tests that need specialized analytics

Kevin isn’t trying to replace Klaviyo. Rather, he is interfacing with it in a way that is more native to his content operations. When your email platform meets your content system, that's when the magic happens.