ok so I do WP for small businesses, mostly local stuff, coffee shops, contractors, that whole world. Last month I'm setting up site #14 and it hits me that I've literally rebuilt the same testimonial grid block four times this year. Different themes, different colors, but structurally the same thing. And I keep doing it because the actual block lives inside whichever client's WP install I built it in last, and I have no clean and quick way to pull it back out.
I tried what everyone tries:
copy-pasting the <!-- wp:... --> markup from the code editor. Fine for one block, breaks down hard once it's 30. Image URLs point at the old client's site, theme styles don't transfer, you end up keeping a Notion page of code snippets which is somehow worse than not having a system at all
theme patterns. only useful if you ship the same theme to every client. I don't. None of my clients use the same theme.
multisite. wrong tool. clients want their site on their own host, their own admin, their own domain. multisite is invasive and most hosts disable it anyway
export/import. designed for whole-site migration, not "save this hero section so future-me can reuse it"
I ended up building a plugin. Saves blocks to a personal cloud library, you log in on whatever site you're working on and your blocks show up in the inserter. It captures the relevant theme CSS at save time so the block actually looks right when you drop it on a different theme. Free tier is 10 blocks which is enough to test if it fits your workflow. It's on .org as PerAstra BlockVault.
real talk on what's still rough: it doesn't handle dynamic block like Query Loop properly yet. it'll save the markup but not the query config, so you'd re-set the query on the new site. that's the next thing I'm fixing. CSS capture also occasionaly pulls in too much ( whole theme stylesheets) which I'm currently tightening up.
mostly posting because I'm curious what other freelancers actually do for this. is anyone doing something clever I missed? the people I've talked to either copy-paste markup, migrate entire pages or just rebuild from scratch each time, and everything feel like it's outdated.