I Built A Knowledge Base Using The Block Editor, And Whoa.

Posted on:

Okay, I think y'all have some valid points about this whole full site editing thing.

When I started working on Siren, my crazy powerful affiliate solution I'm building, I knew I was going to build out the website using WordPress. More-specifically, I knew I was going to build this site using a modern full site editing theme, since I sure as hell wasn't building it like I built this fancypants site, because even when I was building my own site, I knew it was going to be serious overkill, but that's kinda the point of a portfolio site, right? right?!

This may surprise you, but I basically stopped making websites around 2018. From then on, I was either very deep into developing a WordPress plugin of some sort, building out parts of an existing website, or doing plugin and website consulting. For me, site building stopped being the most valuable thing I could offer, and if I am hired to build something for a website, it's almost always a very large project where I play a small role.

Anyway, the point is, I haven't built a WordPress website since well before the block editor was full site editing ready. I had plenty of experience with the block editor, but full site editing, and developing a WordPress theme with the theme.json and whatnot was all very different than the custom post type/ACF combination I had grown accustomed to when building sites a decade ago (shit, has it really been a decade?!).

Which, for me, is the biggest reason why I wanted to do it. I feel like I've fallen a bit behind on surface-level WordPress. I build all these crazy things, and even have a lot of experience with building custom blocks, but none of that actually prepares me for building a website using modern WordPress practices. The need just never cropped up. That being said, I do believe in the block editor, just because from my perspective the fact that I don't have to build entire websites anymore is because it allows me to build blocks instead, and honestly that's a win for me.

Building The Theme

Building the actual theme required that basically un-learn everything I know about theme development. After some annoyingly difficult adjustments in my mentality, I was able to get a decent WordPress theme together. This process involved creating a theme with template parts and a few custom blocks for a single landing page, and all of the parts of a theme that I knew and understood.

Then, as I built out the theme, I ripped out the template parts because I realized that you can basically create these on the fly in the site editor, and it's much better there anyway. And oh, this custom CSS I wrote for this one thing was conflicting with the block editor, and hey you really don't need that complex approach to managing ads on your site anymore, and blah blah blah.

I basically built out a very basic theme, and then had to turn around and rip most of that out. At this point my theme is a functions.php file with a few customization's, a custom theme.json file, and a few custom blocks (which should totally be in a plugin).

The act of creating the theme, now that I realized how very little building the theme entails, is really simple. The documentation for full-site editing has become really comprehensive (HUGE kudos to the learn team, y'all are killing it.)

All of that knowledge I used to have about building a good WordPress theme has been moved to the full site editor, and that was where I realized I had the most learnin' to do. Luckily, the editor is really good. I mean it. Building pages in the editor is genuinely a joy. 90% of what I want to do on my site could be solved with core blocks, and if I couldn't do it with a core block, someone has already made something that extends a core block to do what I need it to do.

I did run into some minor quirks, mostly around templates, template parts, and patterns. Somehow I ended up with like 30 different versions of my header, and it seems like every time I want to create a new template, it made another copy? Sync'd blocks and block patterns felt a little alien to me, too, but honestly all of this is probably because I didn't read the manual and just kept truckin'. I'll get the hang of them in-time, I'm sure.

Building Siren's Knowledge Base

Things really picked up once I started building out Siren's knowledge base. I started this process by thinking that I needed some kind of feature rich WordPress plugin that would allow me to build this knowledge base. After fussing with a few plugins that I really didn't like, I decided that all I really wanted was a custom post type, and maybe a few taxonomies.

So I installed pluginception, asked ChatGPT to make a custom post type and a taxonomy, checked its work, and copy/pasted that into a plugin directly in WordPress. Then I went off to start thinking about how I was going to build out the actual documentation page. I technically could have used CPT-UI instead, but I never used that plugin before, and wanted to make sure I had a place to modify the plugin in the future if I needed to.

To my absolute delight, I realized that the full site editor allows you to customize archive template pages for custom post types right in the editor. This is a game changer, y'all. One of the most frustrating things about WordPress historically has always been that it's so damn hard to customize these pages for anyone who's not a programmer.

This was when full-site-editing really "clicked" for me. I had just built an entire knowledge base, full of different categories, post types, a custom permalink structure, a customized archive and single page, and I did the entire thing directly in the WordPress dashboard. wild.

Minor CSS Tweaks

Every once in a great while, I need to make a CSS tweak to override different things on the site. For a while now, I have been baking this CSS directly into my theme, but now my interest is piqued, and I've decided to start building the CSS directly in the site, too. I'm using a basic code snippet plugin right now, but I sincerely plan on getting a better one that can support minifying the CSS and JavaScript, and building my entire damn theme directly in WordPress.

The only thing that I think I'll need to use my IDE for at this point is going to be any custom blocks I make, but it's clear to me that none of that is theme territory, that's plugin territory. I only have 5 or 6 custom blocks now, and most of them are for fancy blocks like what I used on the programs documentation for Siren:

Conclusions

Right now, I'm feeling really good about the full site editing experience. It just takes a little bit of paradigm shifting to get used to it. For a while, I felt frustrated, like I was limited on what I could do in the site editor. I realized eventually that I just need to build a custom block when I can't figure out how to do it without one, but as I get more-comfortable with full site editing, I'm finding that I need to reach for that particular skill less, and less.

There's definitely a loss in fidelity with some things. The columns and rows blocks are really good for what they are, but they're not as powerful as the grid and flex models they're built on. It can feel frustrating sometimes when you know something is simple, but it's not as simple to do in the block editor, but honestly that doesn't happen as often as you may expect, and if it does, you probably need a custom block for what you're trying to do. Nested blocks are your friend, in that case.