I Just Wanted to Write Blogs - Not Trigger a Full Rebuild Every Time

Problem
All I wanted was to write my notes and blogs - a lot of them.
But every time I pushed a post, my site:
- Rebuilt the entire app
- Hit Vercel’s build limit
- And sometimes... just broke 💀
So I did what any dev would do:
Over-engineer a solution that’s cooler than necessary.
Enter: The Two-Repo Setup
I split my site into two worlds:
One for content
One for the portfolio code
Why? Because:
- I didn’t want a CMS
- I wanted Git versioning for my notes
- And I didn’t want to rebuild the site for every typo fix
The Sync Flow
Here's how it works:
- I write
.mdxposts in a separate content repo - A GitHub Action:
- Copies the new posts into the deployed site repo
- Pushes them into a folder (
synced-content/) - Tells the site: "Yo, revalidate just this one path"
No full rebuilds.
No heavy CMS.
Instant content updates.
🤓 It Gets Nerdier
- Dynamic imports to keep initial loads fast
- GitHub API as a fallback for cold fetches
- Memory cache to avoid spamming API calls
- SEO setup + sitemap + robots.txt (because I want Google to love me)
Why This Works So Well
- Free on GitHub + Vercel
- Pure
.mdx— no weird database schemas - Git = full content history (typos included 😅)
- Looks and feels way more powerful than it is

What I Learned
- GitHub Actions are stupidly powerful
- ISR is magic, when you don’t abuse it
- Avoiding rebuilds saves so much time
- I still like writing Markdown way more than opening Notion
Final Thoughts
This isn't just about blogs.
This is about developer ownership - building things that feel yours.
If you're tired of rebuilding or paying for CMSs you barely use:
Use Git. Use ISR. Geek out.