DEV Community

Cover image for ContinuEd
Shivani Pal
Shivani Pal

Posted on

ContinuEd

Sanity Challenge Path Two Submission

I Built an AI Content Workflow with Sanity Instead of Just Another Blog 🚀

I wanted to participate in the Sanity challenge, but I didn't want to build another simple blog with a CMS behind it.

So I decided to ask a different question:

What if Sanity wasn't just where I stored content, but where the entire content workflow lived?

That became SanityFlow.

What I built

SanityFlow is an AI-assisted content workflow where content moves through different stages:

📝 Draft

↓

🤖 AI Processing

↓

🔍 Review

↓

👩‍💻 Human Approval

↓

🚀 Published

The idea is simple: an AI agent can help move content forward, but a human still controls the important transitions.

The stack

  • Next.js
  • Sanity
  • Sanity Studio
  • Sanity App SDK
  • AI API
  • TypeScript
  • React

The interesting part: Sanity is doing more than storing content

My first instinct was to use Sanity as a headless CMS and build the UI separately.

But the challenge pushed me to go deeper.

I experimented with:

1. Custom Sanity interface

Instead of relying completely on the default Studio experience, I created a custom interface for managing the workflow.

The goal was to make it possible to see:

  • Current content status
  • AI processing state
  • Review status
  • Assigned reviewer
  • Previous actions

all in one place.

2. Workflow as data

I modeled the workflow alongside the actual content.

That means the content isn't simply:

draft → published

It can have states such as:

draft → processing → review → approved → published

This means an AI agent can work with the same workflow that a human reviewer uses.

3. AI-assisted content

The AI can help with things like:

  • summarizing content
  • generating metadata
  • suggesting tags
  • identifying missing information
  • preparing content for review

But instead of letting AI automatically publish everything, the workflow keeps a human approval step.

4. Real-time updates

One of the things I wanted to explore was making the interface feel alive.

When the state of a piece of content changes in Sanity, the custom interface can reflect that change without requiring the user to constantly refresh.


What I learned

The biggest thing I learned from this challenge is that a CMS doesn't have to be just a place where you store documents.

Sanity can become part of the application's logic.

The combination of structured content, custom interfaces, real-time updates and workflows opens up a lot more possibilities than a traditional blog.


What didn't work

Not everything worked on the first try.

I initially approached the project like a normal Next.js application with Sanity attached to it.

That worked, but it wasn't really taking advantage of what Sanity could do.

I also spent more time than expected figuring out how to model workflow states and connect the different pieces together.

There are still parts I'd improve, especially around [YOUR LIMITATION HERE].

But that's probably my favorite part of this build.

I learned more by trying to make the workflow work than I would have by simply following a tutorial.


What's next?

I'd like to take this further by adding:

  • better AI agents
  • richer workflow transitions
  • role-based approvals
  • analytics
  • more custom Studio components
  • automated content transformations

The project is still a work in progress, but that's exactly what I wanted from this challenge.

Build → break → understand → improve.

That's the fun part. 🚀


🔗 Project

GitHub: [https://github.com/shivv2430/ContinuEd---Your-Learning-Always-in-Continuity.]

Live Video Demo: [https://drive.google.com/file/d/1obbbBIG9gbViwLUkYXD-lKinN_Tj2HFc/view?usp=drive_link]

Demo Link : [https://continu-ed-your-learning-always-in.vercel.app/]

If you're also experimenting with Sanity, I'd love to hear what you're building.

Top comments (0)