From zero code to a live website in 7 hours (thanks, Cursor!)
Written by Sanita Tripane
My day job is to find and help the Sanity team hire excellent people. I also enjoy making pottery, but as everyone who put clay in a kiln on a regular basis knows: You end up with a lot of ceramics.
So I wanted to have a website where I could display and maybe even sell my creations. And since "AI" and "vibe coding" has been on everyone's lips in this industry, I thought I could give it a try.
I went into this project with:
- Zero experience in building anything like this
- Zero knowledge of where to start
- First time setting up Sanity Studio
- First time creating a GitHub account
- First time creating a Vercel account
- First time using Cursor
β¦and somehow, after 86 messages of back-and-forth, ~100 deployments, and 7 hours of non-stop trial and error, I ended up with a live ceramics portfolio website. Still work-in-progress (like all websites are).

My starting point
I just wanted a simple place to show my ceramics. No coding background. No idea what βdeployingβ even meant.
The first step was installing Sanity Studio locally, where I could create and manage my content. Then deployed online with ππΊππππ π½πΎππ
ππ
.
When I initially set up Sanity Studio, I created content schemas/models that define the structure of the data - essentially templates for different types of content.
My main schemas included a π―ππππΎππ π―ππΎπΌπΎ model (with fields for title, images, description, technique, materials, price, status, etc.) and a ππΎππππ model (with name, bio, and image fields for my About page), which allowed me to manage all my ceramics and personal content through the Studio interface.
Then came the realization: I have a live CMS where I can manage all the content without touching code, but a CMS is not a website. I needed a frontend.
Building the frontend
For the frontend, I chose Next.js 15 with TypeScript and Tailwind CSS. Well, Cursor suggested it, and Iβd heard the combo works well, so I decided to trust the advice and go for it.
This was my first real exposure to React components, file structures, and data fetching. Using @sanity/client
and GROQ queries, I connected the site to my Sanity content:
- Gallery β dynamic pottery pieces with images and descriptions
- About page β bio and photo, editable from the Sanity Studio
- Footer β kept it minimal with just an Instagram link
Every piece of content came from Sanity - no static text hardcoded. This is the most meaningful decision you can make.
Deployment pipeline
The next hurdle was making the site public. Thatβs where GitHub and Vercel came in:
- Push local code to GitHub
- Vercel auto-deploys every commit
- Domain goes live at santrip-ceramics.vercel.app
It sounds simple now, but at the time it was a lot. I hit caching issues, broken imports, and old commits redeploying, and yes, I maxed out Vercelβs daily limit of 100 deployments just trying to fix things.
My biggest struggles
- Deployment failures: syntax errors, TypeScript issues, mismatched queries
- GitHub confusion: didnβt realize pushing via web UI vs CLI mattered
- File structure problems: where does a component go? Why isnβt it rendering?
More than half of my time was spent debugging. Each fix meant reading logs, Googling errors, and trying again. Cursor and I just kept going. It was so much fun. Somewhere in the digital void, Cursor and I high-fived. Victory was ours.
What helped me get through
Cursor
My code editor with AI assistance. This tool was a lifesaver. It suggested fixes, helped with imports, and explained error messages. Without Cursor, I would not be able to achieve any of this.
Persistence
Even after the 20th failed deployment, I kept going. Yes, until 4 AM. π₯±
Simplicity
Every time Cursor tried to overcomplicate things, I trusted my gut (this shouldnβt be this complicated, should it?) and pushed back. Later, when I asked Cursor to analyze what I did well, this was one of the things it called out - I trusted my gut to push back in moments when Cursor suggested overly complicated routes.
Where Cursor changed everything
Setup: Cursor explained Sanity schema errors, guided me through imports, and fixed TypeScript type issues as they happened.
Frontend: While wiring Sanity content into Next.js, Cursor auto-suggested correct GROQ queries and React component structures.
Debugging: Most of my ~100 Vercel deployment failures came down to syntax errors, typos (πΎπππππππ instead of ππππππ π), or file placement. Cursor flagged and fixed them locally before redeploying.
Workflow learning: It taught me Git basics inside the editor (why pushing commits mattered, how repo structure worked).
Design tweaks: Tailwind suggestions, component renaming, fixing CSS conflicts β all solved faster with AI assistance.
Cursor, my new friend, you are an absolutely incredible tool!
The stats
- 86 messages
- ~100 deployments (hit Vercelβs daily limit!)
- 7 hours total build time
- 4 phases: setup β debugging β design β refinements
The result
A professional, Sanity-powered, minimal ceramics portfolio website that I can update anytime without coding. You can check it out at santrip-ceramics.vercel.app.
What I learned
If I'm to sum up what I learned from this experience, it's something like this:
- Zero experience in all of this is the exact level of experience required to achieve something great.
- You donβt need experience to build something real.
- You really just have to start. Confidence will come after the first few successful deployments.
- Debugging is 60% of the work - and thatβs okay. Eventually, you will fix things, and everything will work.
- Tools like Sanity, GitHub, Vercel, and Cursor make it possible for absolute beginners to build production-ready sites fast. Incredible tools like these keep you awake at night just because you're having fun, even if you're struggling or feel like you're hitting your head against the wall - IT IS SO MUCH FUN!
- Remember to keep Cursor prompts/goals specific (one issue at a time works best)
- Donβt hardcode content if youβve invested in a CMS - Sanity is the best for that (but of course)
- Cursor + persistence = the key to success
This was my first web project, and itβs live. And I did it all in one go. If youβve been putting off building something because you βdonβt know how,β Iβm proof that you can figure it out as you go.
Learning by doing
Here's the thing: I built something that works using tools I barely understand. Without Cursor, I couldn't even explain what I'd built, let alone write this post. After finishing, I had to ask Cursor to walk me through my own project: what I struggled with, which mistakes I kept making, what actually worked.
The magic? Cursor and I somehow understood each other, even when I didn't understand the tech. It translated my intentions into working code, turning "make this look nice" into proper Tailwind classes and "why won't this show up?" into fixed GROQ queries.
That's the real breakthrough here: I didn't have to learn to code first to make it happen. The tools met me where I was.
As a beginner, you can really walk continents in hours, with incredible tools like Sanity, Next.js, Vercel, GitHub, and Cursor. All I did was to take the first step.
Now itβs your turn.
---
π Knut from the developer education team here: if you're curious why Sanity makes AI-assisted development particularly effective: it's all code-based configuration. Schemas, workflows, and even the editorial UI are defined in TypeScript, which means AI tools can actually understand and generate the entire stack. No clicking through web UIs to configure things. Here's a course on that specific workflow if you want to go deeper.
And back to our regular programming.