Let's do some vibe blogging with TinaCMS & Github Copilot
Wait... what's happening right now?
Let me set the scene.
I'm sitting here, vibing with GitHub Copilot in VS Code, asking it to build me a blog. And right now — at this very moment — Copilot is writing this blog post about how it's building this blog for me. This is the blog post. You're reading it. It's writing itself. We're inside the loop.
Welcome to vibe blogging.
If Christopher Nolan made a developer tutorial, this would be it. A blog within a blog. A prompt within a prompt. Dreams within dreams. Except instead of a spinning top, our totem is a blinking cursor.
Let's rewind and walk through exactly how we got here — every prompt, every step — so you can do the same thing.
Step 1: The Scaffold
Every great vibe session starts with a blank canvas. Here's the prompt that kicked everything off:
Please set up a TinaCMS starter template
using the command: npx create-tina-app@latest
Use tina.io as documentation referenceThat's it. One prompt. Copilot ran npx create-tina-app@latest, picked the Next.js starter, and scaffolded an entire blog in seconds. TinaCMS set up the content models, the pages, the routing — everything. I didn't touch a single config file.
The CLI even told me what to do next:
cd beautiful-hark
pnpm run devBlog: scaffolded. Vibes: immaculate.
Step 2: Making it Mine
A boilerplate blog is fine, but I wanted my blog. Dark theme. Red accents. Clean hero page. No leftover starter content staring at me. So I sent this prompt:
Please update the homepage with the following changes:
1. Change the primary theme colour to red.
2. Change the theme to dark
3. Replace the entire homepage with a clean hero section only
- title: "Hark Singh",
- subtitle: "His Holy Harkness, High Priest of Vibe Coders",
- Two CTAs.
- No other content, no Tina CMS links, no boilerplate should be there.
4. Update the favicon to a book emoji or book icon.Copilot went to work. It updated CSS variables in styles.css to red oklch values. It slapped a "dark" class on the <html> element. It gutted the homepage and rebuilt it as a centered hero with two beautiful CTAs. It even swapped the favicon to a 📖 book emoji SVG.
All in one shot.
Step 3: The Inception Moment (You Are Here)
And then came the final prompt — the one that created the very thing you're reading:
1. Add a new blog post titled "Let's do some vibe blogging
with TinaCMS & Github copilot".
2. Write it in an inception style, the meta angle is that
"I am vibe coding a blog, while writing a blog about
vibe coding that blog"
3. Make it fun and engaging.
4. You can use all the prompts I pasted in this chat into
that blog when telling the story, so that readers can
directly copy paste them while setting up their own blog
5. Make sure the blog is readable with dark modeAnd here we are. The blog post is writing about itself being written. The snake is eating its own tail. The recursion has no base case. And somehow, it all works.
The Vibe Coding Manifesto
Here's what I've learned from this little experiment:
- You don't need to know everything to build something. I didn't manually configure Tailwind, write CSS variables by hand, or set up the TinaCMS schema. I just described what I wanted.
- Iteration is the whole game. The first output is never perfect. But each follow-up prompt gets you closer. "Oh you removed the navbar" isn't a failure — it's a conversation.
- The meta is the message. The fact that an AI can write a blog post about the AI writing that blog post — while that blog post is being written — tells you everything about where we are in 2026.
- TinaCMS is the perfect vibe coding CMS. Markdown/MDX content, Git-backed, visual editing, Next.js integration — it stays out of your way and lets you focus on the vibes.
Try It Yourself
Want to recreate this entire setup? Here's your speedrun:
- Scaffold:
npx create-tina-app@latest - Customize the theme — dark mode, your colors, your personality
- Clean up the homepage — strip the boilerplate, add your hero
- Write your first post — or better yet, ask Copilot to write a post about asking Copilot to write a post
- Ship it 🚀
The whole thing took less time than most people spend configuring their linter.
Final Thought
Somewhere out there, in a parallel universe, there's a blog post writing an AI that writes blog posts about writing blog posts. We're not there yet.
But we're close.
— Hark Singh, typed by vibes, powered by TinaCMS