AtlasBlocks: How I Ported My 10-Year-Old WordPress Blocks to React (And They Still Look Good!)
Remember Blockpress? Yeah, me neither... until I realized those content blocks I built a decade ago are actually still super useful. So I ported them to React + Shadcn. Woohoo! ๐
Soโฆ funny story. About 10 years ago, when I was working at Guts & Glory, I shipped WordPress sites like it was my full-time cardio routine. ๐โโ๏ธ Every. Single. Day. Landing pages, basic content sites, you name it.
And hereโs the thing - every site was custom-made from scratch. Which sounds cool and artisanal until youโve built your 5th โAbout Usโ section in a week. Then it just feelsโฆ exhausting? Yeah, exhausting.
๐คฏ The Birth of Blockpress (aka โIโm So Done Starting From Scratchโ)
I got tired. Like, really tired. So I did what any lazy-but-smart developer would do: I made Blockpress.
Blockpress was basically a collection of completely unstyled content blocks that I could reuse across projects. Built with ACF (Advanced Custom Fields) in WordPress, these blocks had some basic options to tweak how they looked in the backend. Nothing fancy, nothing UI-framework-y, just solid, reusable content structures.
I had this style guide from a designer - you know, margins, borders, button styles, all that good stuff - and I justโฆ reused it. Over and over. 20+ sites. All using the same blocks. All looking different because of the styling.
And honestly? They worked. Really well. ๐
โฐ Fast Forward 10 Yearsโฆ
So here we are, a decade later, and Iโm scrolling through some old GitHub repos (donโt judge me, we all do it). I stumble upon Blockpress and Iโm likeโฆ wait, these still look good. Like, genuinely good. The structure, the logic, the content patterns - they all held up.
And then I had a thought: What if I ported these to React?
But not just React. React with Tailwind and Shadcn. So I could install them with one command from my terminal, just like the old Blockpress days, but for modern React apps.
And thatโs how AtlasBlocks was born. ๐

๐ ๏ธ What I Learned (aka โWeb Dev Hasnโt Changed That Muchโ)
1. The Stack Changed, The Patterns Didnโt
Hereโs the wild part: reading my 10-year-old PHP code and porting it to React wasโฆ easy. Like, shockingly easy.
Why? Because the concepts are the same:
- ACF Custom Fields โ React Props
- WordPress Loops โ Array.map()
- Template Parts โ React Components
Web development hasnโt fundamentally changed. Weโre still building content blocks, weโre still passing data around, weโre still styling things. The syntax is different, but the patterns? Nah, those are eternal. ๐ฐ๏ธ
2. Adding MCP Was Easier Than I Thought
I wanted to modernize AtlasBlocks by adding MCP (Model Context Protocol) so people could use AI code agents to install and manage blocks. I had no idea how MCP worked going in.
But guess what? It took me likeโฆ 1-2 hours.
I set up a couple of Vercel functions, gave it:
- 2 commands
- Info about each block
- A link to the GitHub React code
And boom. Done. โ
Well, almost doneโฆ
3. The Stupid Mistake That Wasted 30 Minutes
Okay soโฆ I got stuck for like half an hour because I was posting to the wrong URL. ๐คฆโโ๏ธ
I was using an old deploy URL instead of the production URL from Vercel. I kept getting 401 and 404 errors and I was convinced Vercel had some security issue or was blocking my content or something.
Turns out? I was just being dumb. Changed the URL, everything worked. Classic developer move. ๐
4. Shadcn Theming Actually Makes Sense
Iโve used design systems before, but Iโd never really dug into how Shadcn theming worked. You know, the whole Tailwind CSS variable setup with classes like .text-foreground and .bg-primary.
At first I was like โthis feels weird,โ but after working with it for a bit? It actually feelsโฆ natural. Like, it just makes sense. People can change themes and colors super easily, and the consistency is baked in.
10/10, would recommend. ๐
๐จ Whatโs Inside AtlasBlocks?
Right now, AtlasBlocks has:
- Content Blocks - The original Blockpress classics (hero sections, feature grids, testimonials, etc.)
- Modern Add-ons - Parallax Swipe Carousel, fancy hero blocks, product features
- Footers & Headers - Because every site needs โem
- Shadcn + Tailwind Integration - Install with one command, theme with CSS variables
Itโs built with:
- React โ๏ธ
- Tailwind ๐จ
- Vite โก
And itโs all available on GitHub with a live demo at ehsanpo.github.io/atlasBlocks.
๐ค Why Did I Actually Make This?
Honestly? Because I always wanted to have โyet another Tailwind library in React.โ
Is the world drowning in component libraries? Yes.
Did I care? No. ๐
Also, this isnโt really for UI-ish stuff. Itโs for content. The boring, bread-and-butter stuff that every website needs. Hero sections, testimonials, feature grids, pricing tables. You know, the stuff you Google โReact hero sectionโ for at 2 AM.
And Iโm definitely gonna use it for new websites and product pages in the future. Plus, itโs a nice playground to add more blocks later on.
๐ Final Thoughts
Looking back, itโs kinda wild that code I wrote 10 years ago is still relevant today. Like, the web has evolved so much (RIP jQuery), but the fundamentals? Solid as ever.
AtlasBlocks is live, ready to use, and honestly? Iโm pretty proud of it. If youโre building content-heavy sites and want some solid, reusable blocks, check it out.
And if you spot any bugs or have ideas for new blocks, hit me up on GitHub. Iโm always down to tinker. ๐ ๏ธ
Links:
- GitHub: github.com/ehsanpo/atlasBlocks
- Live Demo: ehsanpo.github.io/atlasBlocks
Now go build something cool. And maybe reuse some code while youโre at it. ๐


