← Back to Blog

So long, Medium 👋… I vibe coded a personal website with v0

I’ve wanted to create a personal website for a long time. I’ve also been meaning to pick up my personal writing again. I contribute frequently to our Standard Metrics blog and post on X/LinkedIn, but I miss blogging and sharing photos.

So I had a couple hours free yesterday and decided to vibe code a personal website using v0. It was a perfect opportunity to use the johnmk.com domain, which I had purchased many years ago but never did anything with.

I spent a couple of hours on this project, creating two different websites. I got into the HTML a few times but generally stuck to prompting. I didn’t do anything special with the prompts; I just asked v0 in simple English what I was looking for, and it delivered. If there was a bug or something wrong, I asked v0 to fix it, and it usually fixed it on the first try.

My first website, which I haven’t published yet, was a more ambitious web app that serves as a personal blog. I asked v0 to use the color scheme from standardmetrics.io, and it nailed it. I also asked it to go and pull all of my old blog posts from Medium and Tumblr and to automatically create categories for them. Each post has its own dedicated page as well. This mini project took about 90 minutes of iteration and bug-fixing. I got it about ~80% of the way there.

First try

I liked what I built, but it felt a little heavy to start and I wanted to publish something cleaner and simpler. I will come back to this later.

What I ended up going with was an incredibly straight-forward website with some bio information and links out to social media and places where I’ve written in the past. (Initial design inspiration I gave v0 for the website were the Standard Metrics and a16z websites!) It produced something I liked very quickly. The buttons at the bottom are interactive when you hover over them on a computer, and the page is responsive to re-sizing. I created a “J” icon outside the app, pasted it into v0, and asked it to incorporate it as a favicon at the top of the browser when you load the website. This was probably 30–60 minutes of work to get set up with v0.

I deployed this to Vercel:

Second try

The hardest part was playing with the DNS settings and getting my hosting service to play nicely with Vercel. I ended up asking ChatGPT to guide me through this step by step, which worked like a charm. And it’s now live!

Total cost for the project so far? $0.

What’s next?

I’m going to combine these two projects in the future and build a personal blog on johnmk.com. So I’m probably not going to be doing more blog posts here on Medium. I may also create a new part of the website for my startup investments, spanning my angel investing and my time at Spark Capital.

Vibe coding a website with v0 was a pretty magical experience and truly addictive, like a video game. I’m excited to keep building on it.


Built with v0