I built a London pub guide with v0 and the Sanity MCP in six hours. Here's what I learned.
Written by Evelina Wahlström
When people ask me if I miss being a full-time software engineer, I usually say the same thing: I do miss the dedicated focus time, that flow state you're in when you're solving hard problems and seeing it come to life in front of you.
As I transitioned into a more generalist role, I realized something. I like to create things, whether that's creating experiences for the community, creating content, or coding. For the past year and a bit, I've been learning a lot about developer and product marketing, but I haven't carved out as much time for coding as I'd like.
So when Vercel invited Knut and me to do a community session on "Build smarter prototypes with v0 and Sanity", I saw a chance to reconnect with that side of myself properly. Not a quick fix, but to work on an actual project end-to-end. Although, it did end up looking a little different from what I'm used to (more on that later).
If you've built with v0 before, you've probably seen it put your content in markdown files or JSON files in your project. That works for something simple like a blog. But when you want filters, a map, a quiz, and a custom pub crawl builder all pulling from the same data, you start to hit the limits of that approach. Agents struggle to keep things in sync across files, and you end up spending tokens coaxing them instead of building cool things.
Here's the framework (including some of the prompts) I used to tackle this project.
The framework (understand, plan, carry out, look back)
Back when I was a full-time engineer at loveholidays, I wrote a blog post about my journey from Bootcamp Grad to Software Engineer. In it, I laid out a four-step framework for how I approach building things:
- Understand the problem.
- Make a plan.
- Carry out the plan (aka the actual coding).
- Look back.
That framework still holds. But what changed this time was the speed between steps two and three, and the speed of three (as I didn’t manually code anything at all). I wasn't overthinking the plan because I could just iterate so quickly. And honestly? That unlocked new ways of thinking and better features than I originally planned for. I went from "let me make sure this is perfect before I start" to "let me try it and see what happens."
Understanding the problem and making a plan
The problem. I wanted to deliver on the talk’s title, but I also wanted to push it further. Not just a demo for the session, but something I could actually keep building on afterwards. A real application, not a throwaway prototype.
The plan. I used Claude to iterate on my initial prompt before going into v0. You could just say "build me a pub guide with these colors" and go from there. But I wanted to be more specific: the stack I prefer (Next.js, shadcn/ui), the look and feel (on-theme colors, the right language), and most importantly, connecting the Sanity MCP from the start. That way, all the content would be structured data in Content Lake from day one, reusable across every page and surface I'd build.
Internal server error