We are live.
Welcome back to WP Town Hall.
Mark Zemanski with me.
We are back fresh from PressConf.
By the way, if you’re new here,
this is the show that drops you deep into the heart of pivotal debate
shaping the WordPress ecosystem.
I’m Kevin Geary.
My co-host is Mark Zemanski.
Today we are talking about how tech stacks should or shouldn’t be changed
or adjusted based on the budget,
and of course probably getting into some other topical areas as well.
Our guest is Ian.
We’ll introduce him in just a second.
First, you need to know that today’s episode is sponsored by OmniSend,
the go-to email marketing platform for more than 125,000 businesses.
OmniSend is all about powerful features in a simple-to-use package
combined with top-notch support from real people with real answers.
In fact, brands that use OmniSend earn $68 for every $1 spent.
That’s nearly double the industry average.
If you want to generate more revenue with less hassle,
set up a free account today by going to WPTownHall.show slash OmniSend.
And if you decide you want to switch, OmniSend will handle the migration for free.
That’s a $1,000 service at no cost to you.
Again, that’s WPTownHall.show slash OmniSend.
All right, Mark, you want to bring on Ian and let’s get into this.
I’m thinking we’re going to love this conversation today.
Ian, welcome to the show.
Why don’t you give us a little bit of background on yourself?
Okay.
Yeah, sure.
Thanks for having me.
It’s great to be here.
So I am a developer, software engineer, whatever.
And I started mostly with WordPress, but I’ve been working with WordPress now over the last,
like, what, 15, 13 years.
Worked at really large companies like Fortune 500 companies who are building WordPress sites
or small agencies or, like, 10Up, for instance, as far as the bigger agencies.
And I’ve most recently been operating as, like, a freelancer doing various different types of contracting
for mostly WordPress and some of them Shopify stuff.
I’m also building a course, that sort of thing.
And I have a new son coming.
So I’m very grateful that we were able to schedule this before all of that.
Yeah.
Make sure you don’t have any overlap.
Congratulations, by the way.
Congrats.
Hell yeah.
Thank you.
I appreciate that.
Yeah.
So I’m really excited to talk about this.
I think that the conversation about what’s the right thing to use along with, like, budgets and stuff,
it’s a very nuanced subject.
And it’s the type of thing that definitely involves a lot of It Depends.
And based on this, I’m excited for the conversation.
Yes, me too.
And just to give a little context to this, essentially, I’ve had this conversation many times in one-off spaces
with agency owners, with freelancers.
Of course, this topic comes up constantly on Facebook and social media.
With people essentially making the case that, or even just saying, hey, when a site is low budget,
I’m going to use this tool and this tool and this stack.
If the budget is much higher, I’m going to go to this.
And for example, it would be like, okay, if the budget is way higher, I’m going to build in something like Bricks.
And I’m going to have WS form.
And I’m going to have all these other, you know, more technical tools and ACF.
And I might do loops.
And I might do custom post types and custom fields and things like this.
But if it’s very low budget, I’m going to just use the block editor.
And I’m not going to do any of that stuff.
And I’m going to style everything at the ID level or whatnot.
And I have tended to disagree with that kind of position.
But I’m curious to see what your general take is.
Well, you know, I think that the, you know, the answer there, it sort of depends a little bit on your scruples, I suppose, and your beliefs.
You know, what does the right way mean to you?
So, for instance, you were talking about doing things like styling at the ID level versus using a more dynamic tool like Bricks,
where you’re using variables and doing things in this more maintainable way.
So, I think the engineer in me and the person who cares about doing the right thing, even when people, you know, like having integrity and stuff,
I feel like from that standpoint, it’s my responsibility as a professional to deliver the best work that I know how to do.
Not necessarily the thing that the best work that they will be able to appreciate.
Because sometimes people can’t appreciate the value of good work until it’s actually necessary.
Like, maybe you don’t notice how well your walls are done until you have to rip one open to put something in the studs are all exactly where they should be, you know, and all that kind of stuff.
Like, you don’t think about it until it actually happens, right?
You just assume that they’re a professional, and they’re going to do things the right way.
And there are some projects that, you know, like, say, a nonprofit or a local charity of some sort, whatever,
some group that doesn’t have a lot of money, but they’re maybe doing a good thing and having the site does provide meaningful value to them.
That doesn’t mean that they don’t deserve your best work either.
On the other hand, though, that also means that in the pursuit of doing things the right way,
you don’t necessarily have to lower your effective hourly rate to such a degree where you’re, like, making way less money than you should.
And you’re going through this, like, what I would refer to as intellectual masturbation exercise of, like,
how clever can I possibly do all of this?
And what if I did it this way?
And at which point, you’re not really providing real value.
You’re more just doing it what you would consider the right way, according to some blogger or some video you saw that says,
oh, every time I do this, I have to have to do it this way.
So I think really it comes down to the amount of velocity versus the level of quality that you’re able to deliver with that.
And, like, what’s the balance that makes sense on the project you’re at?
So an AI tool that spits out slop code, whatever.
Maybe it styles everything with the idea.
It does inline styles on half the shit, whatever.
But if it delivers really quickly and it’s just for making a point to somebody about how a site could look, well, then sure, who gives a shit, right?
You just did the job.
You don’t need to hand code that to make that example any better, right?
That’s a lot of velocity.
Dog shit code.
But it doesn’t matter because who cares, right?
But on the other hand, if you’re slapping something together for a business and they’re using the website for a business,
a thing that makes them money, a thing that has their reputation and their brand and all that,
people see the website as an extension of the brand, just like the sign on the building or your logo that goes on your apparel and shit.
It’s all a symbol of the brand.
And so when that’s done poorly and then you leave those people hanging out to dry and they have no idea because they didn’t pay you a lot of money,
thus they’re not working with you still or anybody else, it’s like, sure,
maybe that’s not your problem anymore, but that’s kind of a douchey sort of perspective to have, right?
Like, I don’t want to intentionally set people up for failure by doing things in a way that I,
as a professional, know is going to be bad.
But if I know that, well, I can do it this way, maybe I don’t have to go quite as far in that direction or whatever,
you know, and you can find the balance there.
So you don’t have to spend a ton of time while still doing things ultimately the right way.
What is your current, let’s say, what is your current tech stack, by the way?
And how much do you shift it based on client budget currently?
Well, I’ve had the fortune of being able to be very selective with the projects that I take on and the clients and all that stuff.
So I haven’t really been doing a lot of what you would call like a one-off project build thing.
Like maybe for a specific client that I’m doing repeat work for, we’ll have like a cycle of work that represents like a project,
but not like a turn and burn kind of thing.
Occasionally I do stuff like that, but these days generate blocks and generate press would be what I would pick.
If I want a more turnkey solution that I’m where I need to do something more complicated.
However, on certain projects, especially recently, I’ve been doing some contracting work and working on this really big news website.
That’s a WordPress VIP client and it’s a full site editing build.
Right.
And very interesting.
Allows me to appreciate the value of full site editing where you get template previews and all that kind of jazz.
However, I think like coupling something like full site editing with generate blocks, for instance, is really nice because you get the benefit of global classes that you can just use in all the template parts.
You don’t have to worry about like local CPT style generation.
Like for people who don’t know what that means.
If you’re doing like block styles that are on a class that come from most like plugins, like say a generate blocks or similar types of block plugins.
A lot of times that generation fails inside a template partial because there’s no post ID to save anything to.
And it’s expecting the post ID to be a number.
In an FSE template, the post ID is a string.
That’s like some bullshit, like the name of the template.
It’s really weird.
But the point is, it’s like a lot of things aren’t wired to work with that.
So sometimes you need to use a class based approach anyway.
And most people like to use a class based approach anyway.
I can style all those classes all from one bar and I can just, even if they’re not the ones that are on the page or whatever, all that kind of stuff.
And so it’s like you get all the benefits of real time preview without having to do the context switching.
And then you get the extra blocks.
I also made this thing recently that I plan to open source as a plugin that I think is going to be especially dope for full site editing.
Where normally on a template for full site editing, you have like this post content.
That’s the outlet for all the blocks that come from the post, as we know.
Right.
And so we were working on this other new site project, like I was saying, and it occurred to me, I was like, why can’t we just have more than one of those?
Like you can add one to the page.
It lets you.
Right.
But it doesn’t actually fucking work.
It’s very misleading.
Right.
And you can label these blocks as like they’re, you know, editable to an extent, even though they’re from the template or whatever.
But they don’t save anything because they don’t save to the post content.
It doesn’t make any sense.
So what this plugin basically does is it makes a content area block that’s kind of like a ripoff of the post content block, but it saves things to a post meta key that you specify.
And then you can specify allowed blocks.
So if you want to restrict, like you can only put these two blocks in here, but it saves the content of those to the, this meta key.
And then it, you basically have an extra post content area now for any of those.
This is, this is custom block work that you’re doing.
Correct.
In FFC.
Yeah.
Like sometimes, but I like to use the generate block stuff wherever possible to avoid doing that.
If I’m on a project where I can’t like say I’m contracting on a WordPress VIP project where they’re not using generate blocks.
In that case, I’m making a custom block for a lot of stuff.
Like we made one for a layout component because the columns one is not production usable.
Yep.
At all.
When you do custom blocks, critical question.
Cause I, I actually pull everybody that talks about custom blocks just internally.
And I keep track of the responses and the percentages.
Do you use ACF custom blocks or are you, is it like legit, legit, like from scratch custom blocks?
I actually, I, I’m, I’m freaking raw dogging it, dude.
Creating them with the scaffold.
The MPX create block command.
Yeah.
You’re in the minority.
Well, at least the people I’ve pulled, you’re in the minority.
Yeah.
But I’m always curious about that.
Yeah.
You know, it’s one of those things where I guess, and everybody’s needs are different and everybody’s, how they got to learning all this stuff is totally different.
Right.
Right.
But I guess I did so much deep block work when I was working as a contractor for generate blocks that like, it now feels familiar to me to the degree where like, I’m not sure what the abstraction would really provide value for.
Like I’m not having to make very many custom blocks on say my own course website.
I haven’t had to make any yet just because why?
Like I’m using lifter.
They have some blocks.
I have generate blocks.
I have a couple of the core ones.
I don’t need anything else.
But yeah, I don’t know.
I, it’s like, sure.
It, you can create the admin UI faster, I guess, but it feels like it doesn’t feel like a necessary trade-off to me.
Like if I didn’t have all the time, here’s a, here’s a good example of when it might though, I guess.
Right.
When you have ACF fields that you can put on blocks, ACF fields can do a ton of shit, right?
You can do like a auto complete post lookup thing, make relationship fields, all this stuff.
So like if, if I needed a thing like that and I said, the options are I hand roll my own auto complete using something like a downshift or whatever, use combo box.
And I, I build it all in react.
I do all that.
I make all the API requests.
And I do all that shit.
How much time is that going to take versus using the thing like ACF pro, which I have, I have a lifetime license as, as the old heads do.
Right.
Yeah.
Yep.
Not today, Satan.
I’m not paying for that.
I got the lifetime.
So yeah.
You know, like I wouldn’t hesitate to use it in that situation in the same way where if I’m creating meta fields and it’s not for like a project where.
Say you can’t use that.
Say you can’t use that.
They’re using some other thing.
Maybe they’re using pods even or whatever, but still you could use that.
You should use that.
Right.
This is actually a thing that came up a lot when I was working at 10 up.
Right.
They have a thing where they really do not like advanced custom fields there as a policy.
They tend to not use it unless it’s explicitly needed requested or something.
And the main reason.
Is it an, is it an avoidance of the dependency or is it something else?
It’s more like the fact they say it’s a foot gun and you’re giving people a foot gun.
You’re going to make a performance hazard, a site that’s a performance hazard and all these, all these different things because it duplicates the, the meta field keys with the field, whatever, all this different stuff.
But like everything, every time I asked for clarifying questions, it didn’t exactly hold up under scrutiny.
Like it’s true that ACF can bloat out a database.
And if you’re using it in some unholy ways, like say doing really in-depth flexible sections and all kinds of stuff like that, it can make the data very cumbersome.
And you have very large columns of data.
Right.
But having a lot of rows doesn’t mean shit.
Like I’m not a database expert.
Please.
Well, actually reply guys, whatever reply girl, somebody in the comments, if not.
But yeah, having a lot of rows does not matter.
It’s the size of the rows.
A lot of sites have tons of records, but if you have a record, that’s like a string that’s 50 characters versus, you know, mixed content.
That’s, you know, hundreds, thousands of lines.
That’s totally different.
It’s a totally different situation.
Yeah.
And so when you’re on a project and you say, I need to build these meta fields, it’ll take 15 hours.
To hand build all of these and create a UI to do all of this.
Or I could spend one hour and use advanced custom fields.
It’s like I ask myself, why would you not do the second thing?
Right.
Right.
Because there’s not a whole lot of client value in taking a thing like ACF, which is a very well trusted, well established, very good plugin that arguably should be part of core.
Right.
It’s like something so many people rely on and use.
It’s huge.
It can’t afford to suck if they want to actually like keep people using it.
Right.
And it’s, I don’t know, like for certain applications, like just met on a post and you’re trying to create like doing that with there’s no good way to do that with native UI.
And spending a bunch of time to rebuild what ACF already gives you doesn’t feel like a good way to, it doesn’t feel like a good use of your client’s money.
And again, the professional who’s responsible in me says, I’m literally like miss, I’m misusing funds.
Now I’m spending hours to do a thing that this one off the shelf solution could do in 30 minutes.
Yeah.
Why wouldn’t I do that?
Like I, unless there’s an actual technical reason why, like sometimes there is, right?
Sometimes you, you know, that doing a certain thing is going to involve a performance hazard, like the masonry JavaScript plugin of your, or jQuery plugin of your, everybody knows that, right?
If you were trying to create those kind of flowy grid, Mondrian layout looking things where everything’s got a different size and it shifts.
Sure.
It’s great to, to use that.
And it, it was a great solution to do that sort of thing quickly.
But after a certain point, like a hundred, like 50 plus items, the jankiness of that, it makes it completely unusable to the extent where like you have to start looking at another solution because it’s just not performing.
And it even says this in the docs, like there’s a certain threshold where this is going to be too many items.
And it doesn’t mean you just use that.
Cause that’s the only thing you’ve ever heard of that does this.
Cause now you’ve made something that has 200 items in it, but it runs like shit.
And that is again, not a responsible thing to do as a professional, the responsible thing.
And I think this is something that you would probably say to, to the client in this situation is, Hey, listen, what can we do to not have 200 items?
We’re going to need to virtualize this, but that’s going to cost more money.
Is there an alternative layout we could do that would accomplish what you’re doing here?
That doesn’t involve going down that road.
Cause I can, but it will cost you more money.
It will be more involved.
Is that what you want?
And they say, you know what?
And it’s the most important thing in the world to me.
And I say, okay, great.
I’ll tell you roughly about how much it is.
Give me a day.
I’ll suss out the costs and I’ll let you know, but you’re, you, you can’t just take one thing and say, it’s the one size fits all solution for everything.
You have to consider what your client actually wants, what the realities of your project and situation are.
Yeah.
You’re kind of a little bit of what you’re describing is, um, obviously changing the level of detail that you might go into.
I don’t know if you’re describing an actual change in tech stack, at least not, um, to the level where a lot of the people I talked to are, are referring to this.
Right.
To me, it’s a big, big, big shift.
And I’ll just use, are you familiar with breakdance?
Yeah.
A little bit.
Yeah.
Okay.
Um, so there’s breakdance and let’s just say bricks is the other one.
And breakdance is kind of marketed as the more modernized, simpler to use element or, and then bricks is kind of marketed as, okay, that’s a little bit more for professional use or so on and so forth.
And of course there’s a lot of debate there, but that’s the general breakdown of it.
And I’ve had people tell me if a client has a higher budget or a more intricate site, I’m going to use bricks.
And if they have a lower budget or simpler site, I’m going to use breakdance.
And to me, and the kind of the, and I want to get your take on this.
And this is, we have to look at this both from a freelancer perspective and also from an agency perspective.
Uh, I think it’s important to make that distinction, but if it’s a, if it’s an, and let’s start with agency.
It’s the easiest one you’re talking about when you switch tools like that, uh, which have completely different workflows, completely different feature sets, right?
Breakdance is not a class first builder.
It’s a style, everything at the ID level and just make it quick and move on with your life.
And bricks is very much the opposite, right?
Um, and so if you’re an agency and they’re different interfaces, obviously, if you’re an agency, you’re now faced with this concept of, if you’re going to implement that as your process,
everybody that you onboard, every single, uh, contractor, every single employee, anybody that’s going to help with your projects, they now have to be effectively trained on two different systems, two different processes, two different tools.
You’re now also keeping up with maintenance and updates, et cetera, across these different tools.
Of course, if I use breakdowns as my main tool, that’s going to determine some other aspects of my stack, perhaps like add ons wise, right?
That I might use.
And those are going to be additional dependencies and additional update paths and additional training.
And then on the brick side, of course, there’s bricks add ons that we’re going to be using.
And again, same thing there.
And so you’re now in my estimation, getting a bit out of control with what you’re having to maintain, what you’re having to teach and, and also keep up with.
We’re in a very fast moving industry.
And now I’m keeping up with how two different stacks are evolving versus just a main stack that we do all of our work in.
That is a big, big, big deal.
To me, that is a great hindrance of scale in agency world.
Now, a lot of people will say, but I’m not an agency.
I’m a freelancer.
I can manage all this stuff on my own.
I can keep up with all this stuff.
And that’s fantastic.
I’m sure that that’s correct.
But to me, that still says there’s a lot of inefficiency in what’s going on here.
And you would be better off if you got rid of all of that inefficiency and complexity.
And you just said, this is our stack.
This is what we build stuff in.
And if I’m, you know, faced with a client who this just is not a good fit, you tell them it’s not a good fit and you, and you refer them to somebody where it is a good fit and you move on with your life.
And we don’t just try to say, oh, well, I’m going to shift gears and use this completely new stack just for the sake of this one client.
That gets you into really messy, messy territory.
And that’s also why I recommend that people don’t take over sites that are not within their stack either.
You know, there’s and I and I hear in the inner circle, we hear the headache stories all the time of like, hey, I took over this Elementor site.
They’re not an Elementor user.
They’re a Bricks user.
Right.
I took over this Elementor site.
It’s a pain in the ass.
It’s a nightmare.
It’s not like I can’t maintain anything properly.
What do I do now?
How do I get around?
And it’s just, man, why are we doing that to ourselves?
You know, and this all goes back to, well, you know, the stack is determined by X, Y, Z, where my argument has been the stack is determined by the agency or the freelancer, the business doing the websites.
That’s who determines the stack.
They should use the same one, the same processes, the same workflow on every single project.
Everything is streamlined.
Everything is easy to maintain.
Everything is understood by everybody on the team.
And that’s how you scale.
That’s how you scale.
Yeah, I mean, a lot of stuff to touch on.
But ultimately, you know, I think you’re essentially on the right track there.
Let’s go back, though, to the beginning.
You were saying, like, you have a scenario where you have maybe an agency.
And I’ve worked at an agency that did this sort of thing, too, where, you know, we have, like, a low-budget brochure website, $3,000-ish.
And they say, okay, we’ll build that with Visual Composer or whatever.
And these other things, we’re building a custom PHP theme with ACF layouts and this, that, and the other.
I think that, and for context, this agency had, for the web team, I’m trying to think, like, maybe around five to eight total individual contributors on the team.
Yeah.
However, most of them, virtually all of them except one, were not building sites like those.
There was essentially one guy, which was the most junior employee we had who had experience with page builders.
But he didn’t have as much experience doing, like, PHP things and JavaScript and all that kind of stuff at the time.
Right?
So, from an economic standpoint, he’s the lowest-paid employee we have.
However, he’s able to churn out relatively high-quality work with these tools.
Meaning, like, this is a tool that he’s very familiar with, right?
That he’s able to implement in a way that doesn’t involve a bunch of unholy bullshit, right?
Like, he’s doing it responsibly and all that as far as it goes with these tools.
And, you know, using some templates and things here and there, like you said, to kind of, like, dial in the process.
So, the idea being that we can have high-velocity with relatively low risk because the clients are more concerned with the high-velocity.
Like, say, they have a project they need stood up quickly or whatever.
And so, they’re kind of comfortable with the fact that maybe we’re going to have to do things in a more basic, slightly less maintainable way.
Maybe this site’s only going to be used for a couple months or whatever even or something because it’s for an event.
You never know.
All kinds of reasons like that where those things might happen, right?
In a scenario like that.
Now, let’s flip over to the other side.
Now, you’re on a place like 10Up, right?
Where they do not really use page builders at all.
I mean, every once in a while, every once in a while, there’s occasionally an exception that gets made for all kinds of reasons.
You know, like stakeholders demand this, that, or the other.
They ask you to do them a solid, this kind of thing.
But, in general, they’re doing the same thing.
They got the scaffold and they’re building things based on that scaffold.
And it’s custom build, but it’s based on this one repo.
And maybe there’s a starting point for full site editing themes versus hybrid.
But, like, historically, it would have been just one.
And that’s because I think they’re still edging into the idea of doing FSC builds.
And eventually, that’s probably going to be just the default, though.
So, you have one stack that everybody’s working off of.
Now, I think their situation is a little different.
I’m pretty sure they, and I don’t know this, so this is not official.
But, like, I’m pretty sure they don’t take projects that are under, like, $50,000 at this point.
Because they’re huge.
They’re like a household name brands kind of agency.
They’re not doing $3,000 projects in the first place.
But from what you were talking about from a scaling perspective, that is essential.
Because everyone who’s coming in is trained on that scaffold, how that scaffold works.
It might be a little different here and there.
There are node versions.
You change a package, whatever.
But the concepts are larger.
So, you can onboard new development.
You can have contractors that maybe you work with sometimes that know your shit.
And then everybody’s coming off of the same stuff.
Like, when I was managing a team at that other agency I was talking about with the low-budget example,
that’s kind of what we were doing with all of our other projects, where they were all using, like, a starting point.
Everybody was trained on that.
Any contractors we had were all so familiar with it.
And it wasn’t, like, super elaborate to the degree where it required, like, 10 hours to just understand.
But, like, everybody knew the deal.
Everybody’s doing the same things.
So, then when I pop into this project that I didn’t touch yet, and I go, what the fuck’s wrong here?
And I look, okay, I know exactly where to look.
I know exactly how it should have been done.
And if I don’t see it done that way, then I can at least tell somebody, hey, man, you know, why did we do this differently?
And they go, oh, well, I just forgot.
Okay, great.
Then let’s tighten that up and make it so it’s consistent with how we normally do this stuff.
So, future us will thank us when we come back.
Like you were saying, the maintainability aspect.
Because from a scaling perspective, that sort of maintainability is enormously, enormously huge.
Like, people underestimate how much they will forget about the code that they write.
There’s code that I’ve written.
Oh, man, I told you it so hard.
I loved it so much.
It was so good.
I could not tell you line for line how it works.
Yeah.
Right?
I know in general how it works.
But if you ask me to give you a blow by blow of why I did every line that way, there’s no universe in which I will be able to tell you that six to 12 months out from writing it.
Maybe less.
Probably less.
Yeah.
And then that compounds even further.
If, say, you, Kevin, you’re like, hey, Kevin, you need to come and unfuck this thing Ian did six months ago.
And you’re like, okay, cool.
And then say I did it in a way where it’s not commented at all and it’s not exactly done in the most intuitive sort of way in general.
It’s like, what am I supposed to do with this?
You have to kind of re-figure it out all over again.
And it’s like, if you have a consistent format of your code, a consistent way that you approach problems, a consistent way that you implement solutions to those problems and all that and have the same starting point, that makes such a big difference in your velocity and capabilities as an agency.
And really, arguably, as a freelancer, you talked about that person who’s like, I took on the Elementor site and I just think of Joe from Arrested Development.
What is your return policy?
Like, that’s my first thought with those stacks because, like, I want, I don’t know who needs to hear this, but I would never take on a tech stack that you yourself would not be happy to use.
Like, unless they’re paying you so much money.
Yeah.
It’s like triple your normal hourly rate because they really want you, which would never realistically happen.
No, it is.
Hey, listen, you have this.
I think Ian’s cutting out.
He cutting out for you too.
Cutting out a little bit.
Cutting out a little bit.
Hold on.
Here and there.
You’re cutting out.
Holding still.
Yeah.
Hold still.
Still good?
Yeah.
You’re good.
You’re good.
Okay.
Cool.
Cool.
So, like, I would tell that person, though, not that your website is terrible and you need a new one.
It’s just like, if you want me to help you, the best way that I can help you is to put you in a good tool, something that I think would be better than this for you, but also I will be able to more reliably help you with it.
And that comes back to the concept of professional integrity, right?
Like, getting a client while you’re taking on a project that you clearly won’t understand well.
And if you’re not telling them, say, in advance, I’m not an Elementor person.
I’m going to have to spend a lot of time just understanding how all this works.
It’s going to cost extra money.
Some of my fixes might not exactly be reliable while I’m getting into this.
Is that really what you want?
Most people would probably say no.
They’d probably ask you, well, how quickly could we or how inexpensively could we convert the site to the workflow or the tool that you’re using, whatever it is, bricks or generate blocks or whatever the thing.
So then when you have those processes dialed in, like you said, Kevin, right, you spin up that new project.
And maybe they don’t have super elaborate needs because they were on a hacked together page builder site in the first place.
So now you get them into this thing and you have a starting point so fast.
Now it’s just a matter of popping a few pages in.
And obviously that is such a loaded thing to say because some sites are way bigger than others.
Some sites have interactive components.
Some sites have all kinds of shit, but we’re talking about majority of websites.
They’re not putting 50 intricate sliders on every single page and doing a bunch of meta query loop bullshit.
Most people don’t have that, especially not on things like Elementor builds.
In my experience, most of those I’ve ever come across have not done that.
Well, yeah, it’s I mean, here’s the thing.
I think a lot of those projects should have that level of complexity in a way.
They don’t on Elementor sites because the user base that tends to use Elementor doesn’t think that way about building websites.
Like that’s my experience taking over lots and lots of Elementor sites and Divi sites.
And these people don’t think in terms of custom post types and data organization and loops and logic and all of and class first.
Like they don’t do this.
That’s not the mode that they build sites in.
Right.
And so you take over their sites and those things don’t exist and the maintainability is not there.
It’s also because the limitations of those tools.
Those tools don’t really facilitate that kind of work.
That’s been one of my objections to tools like Divi and Elementor.
They actually encourage what we would consider to be bad practices or unmaintainable practices.
And so people pick up those tools and they go through the tutorials and the tutorials are teaching them to do it this way.
And the YouTubers are teaching them to do it this way.
And it’s really leading them down a road of here’s how to build unmaintainable, unscalable websites with really bad code and really bad logic and considerations on the back end and really bad data organization as well.
And that’s really the first thing that we have to start out with when we’re talking about maintainability and scalability.
Because you mentioned, you know, being a professional and doing professional work and not essentially not building a pile of crap for the person.
Right.
And for whoever is going to take it over next.
And when a client comes to you and says, hey, we want to add on X, Y, Z landing pages or we want to make so and so change.
And you’re like, ah, that’s going to be a headache.
That’s going to be a nightmare.
That’s like that thing you want to change.
I mean, that exists on 15 different pages.
I got to go change them all manually because they didn’t build it the right way.
Right.
It’s not what should be a simple request is not a simple request.
And so when I talk to people about budgets and tools and all this other stuff, their objection tends to be they didn’t have the budget to do it the right way.
That’s kind of like their excuse.
Like they didn’t have enough money to justify me making classes.
They didn’t have enough money to justify me making custom post types and custom fields.
They didn’t have enough money to justify me doing loops and conditional logic and stuff like that.
And I’ve always said, OK, well, I don’t know how you’re doing those things.
And I think it is true that doing that kind of stuff in Elementor would be expensive.
It’s a it’s a hassle.
It’s a nightmare.
It’s not the tools not set up to facilitate that kind of work.
And so, yeah, it’s going to be you’re going to change your stack.
And so if my we go to first principles, my first principle is use a truly professional tool that puts those features at your fingertips so that when I go into a project and I go, yeah, I want to deploy classes.
Yeah, I want to do custom post types and custom fields.
Yeah, I want to do loops and logic.
It’s real quick and it’s real cheap.
And I can do it literally as fast as somebody using Elementor can build the same site not doing those things.
And so it doesn’t actually cost me anything extra to do it the right way because I use the proper tools.
And we also are trying to innovate a workflow.
Like, for example, an actual objection of BIM.
You know, like I do when I do classes, I like BIM.
I just it’s been around for a long time.
Everybody understands it.
It’s easy to teach.
It’s easy to it’s it and it does its job.
OK, so I like BIM.
A real objection to BIM is it takes a long time to write all of those class names.
You know, every element is going to have a class name and I got to type all of those out with that kind of structure and think about the naming and all of that.
That’s a legitimate argument against BIM where you would say that does actually cost more.
Except for me, it doesn’t cost anything extra because we develop an innovative solution like auto BIM where I name the block and I right click and go create classes.
And there could be 400 child elements.
All the classes are done immediately, instantly, and I move on with my life.
So it’s not a situation like it’s unacceptable to me where we look at it and say, well, I don’t like to write BIM classes, so I’m just not going to do it.
I’m going to style everything at the ID level because that’s just way faster for me.
And we’re not worried about consequences of that.
To me, it says, no, we have to do that.
So let’s find a way faster way to do it.
So we make sure it gets done and it’s easier for us.
It’s less hassle and it’s less cost.
And we still get to the end result that we want.
Like that’s the direction I prefer to go versus the direction a lot of people tend to go, which is away from, oh, that’s complex.
Oh, that’s the let’s just not do any of that.
Let’s just cut all those corners and ship it without all that stuff.
That’s the thing that I think we should be avoiding.
Yeah.
So I have a quick just sidebar technical question about that because I’ve seen you talk about that before.
So when it automatically generates the BIM classes for those, like it’s based on like the labels or the blocks or whatever you have in there.
I know you said that.
But it was like if you if you change one of those, like say you want to just edit one of them, do you have to then update that on the element and then just in the class?
Is it a class definition like in CSS as well?
Or does it is it smart enough to kind of do that for you?
It depends on the environment you’re using in bricks and in etch.
You can just edit the class.
So you see the class attached to the element.
You can just click it, edit the name.
And so the class is has like an ID on the back end.
So that keeps it unique to that element.
Right.
So you’re free to choose.
You can change the class names and doesn’t mess up your CSS or anything else.
But you can also re auto them everything with a new a whole new block name if you wanted to.
There’s a lot of different combinations of how you can handle, you know, editing, removing, adding, et cetera.
And you can all do it in bulk.
And that to me is the advantage of page builders that we are using an environment where we we can have these shortcuts.
And it’s a true shortcut in the sense that, like, I’m getting there faster, but I did not leave anything out.
You know, I’m still doing everything by the book, so to speak.
And in a professional manner and for scalability and maintainability, I’m just getting there way faster because this tool is facilitating what used to be hard and what used to be manual is now just fast and automatic.
And that’s the same thing with loops.
How long does it sit me for me to sit down and code a loop by hand with PHP versus dropping a loop element in a page builder and go, I want that thing, that thing.
And I want 15 of them.
And I want to put them in random order, save, done, move on with my life.
That’s the page builder stepping in going, hey, we’ll handle that complexity for you.
And now I’m doing loops with zero cost, just as fast as some actually faster.
It’s faster for me to loop elements from a CPT than it is for somebody in element or to manually make all of those cards, especially if they ever have to make a change to any of them.
Right.
So there’s no cost to me looping.
I can create components with no cost.
Right.
I right click, create component, pop, pop, pop, create some props done.
And now the maintainability and scalability.
And this is what’s really pissed me off about the how fast can you build a website?
There is a race from I have nothing to I have a published website.
And that is all people seem to care about is how fast can I get from point A to point B?
And they forget about point C, D, E, F, and G, which is when it comes time to maintain the thing, when it comes time to make changes to the thing, you still got to clock all that time too.
Right.
If we’re racing, because that’s a real thing that happens on real websites.
And when they have something like, okay, all those cards that you’ve done, I want to round the corners on them and I, and I want to change the background color of them.
We don’t like it.
Okay.
And you’ve already deployed 700 of them.
Is the clock still running?
Because I can go change, change, change, done.
And they’re all updated.
Meanwhile, dude, an elementor is copying, pasting for the rest of the day.
Right.
Oh, my God.
Is the clock still running?
Right.
That’s what we really have to worry about.
And that’s what people, I guess, conveniently like to leave out and forget.
They’re getting classes now.
It’ll be fine.
They are getting classes.
You can stop ragging them.
If you think about it too, like, man, I, like, as you were talking about, you know, the notion of like, well, we don’t have time to do it in bricks.
So we’re going to do it in a break dance or in an elementor thing.
So it’s like the client doesn’t have the initial budget to do this.
But then when you ask, when you have to do those changes to the seven case studies they have, and you need to modify the section background thing on every single one.
And now that change takes way more time.
Who’s costing them more money now?
Right.
Like, where is your God now?
It’s like, you are not doing anyone this favor.
It’s the, this is actually something that’s come up on some projects that I’ve done recently where, um, say somebody is building a custom block and they didn’t add in a control in the editor to set like a post ID.
They just like hard coded one just because in the name of getting it done fast.
And they, with the intent of coming back to, to do it all.
So later, and they had a script that was block specific that they inlined into the like PHP render file.
It was using just because again, they could have created an entry, but they didn’t all in the name of doing it.
faster.
Right.
Right.
But they did it faster, but they didn’t actually do it because they did it wrong.
Right.
Right.
Right.
And then it’s like the amount of time it took to understand why versus like, just like, just to add in, in the inspector controls, that little bit of react code to have a text field.
For the, for the post ID attribute, like that takes no time at all.
Right.
Like that’s the type of thing that could have just been done initially.
This whole problem wouldn’t have existed because that ID doesn’t exist in this environment where it got deployed or whatever, like all that.
It doesn’t actually save time.
If you build something that’s inaccessible because you say, oh, it doesn’t need to be accessible now, but your client or whatever is expecting it to be.
And then you have to go back and, and do all of that code later.
You may have to completely change the way that you did certain stuff.
You may now be looking at code you wrote months ago going, shit, how did I, why did I do this?
Now you’re rewriting the thing.
You could have just written it mostly that way up front.
You know, I like that topic.
I mean, let’s say you’re, you built a site in Divi cause that’s your, that’s, that’s my easy stack.
Like it just makes life so easy for me.
And then you come to find out that accessibility is a major requirement for this client.
Well, Hey, to break it to you, like there’s things in Divi, you just cannot make accessible.
And so who’s going to break it to the client that we just can’t do that unless we rebuild the whole thing.
And again, now who’s saving the money, right?
It’s like you, so as a professional, it’s super important for you to choose a stack that doesn’t have limitations in that form or fashion.
Right.
That doesn’t encourage bad practices that doesn’t write bad code because it leaves all of the options open.
All of the doors are open, right?
You never have to come back to the client and say, it’s not really possible with the tool we use.
Remember back when you only had $2,500 for this site and we chose this to, well, now that’s going to be a problem, right?
Why?
Why did you do that?
Why did you agree to that?
See, they don’t have a crystal ball.
They can’t see the future.
They don’t understand the limitations they’re going to run into.
Our job as a professional is to tell them, Hey, we can’t really do that, right?
You shouldn’t do that.
That’s very dangerous to do.
You know, that’s an important part of the conversation.
It’s sure.
And we’re talking, we’re talking a lot.
We’re talking a lot about page builders, like versus like kind of, I mean, a little bit here and there with like versus core.
I’m interested in your perspective as a software developer.
Because I think like most of the audience that, you know, Kevin and I talk to all the time, they’re familiar with code.
Maybe some of them are more comfortable than others.
But I think a lot of them really did.
Again, just speaking from my own self, like I learned WordPress basically through Elementor.
And then I moved to Bricks as I started to get more comfortable with like actually understanding like HTML, CSS and those types of things.
So I’m interested in your perspective being here for a long time and being like deep into code and actually being a software engineer.
Like what, from the WordPress perspective, what do you, like how do you feel about this transition to like, I would say much heavier page builder usage to speed up development time.
But also maybe there’s like, do you think there’s any trade offs with using like a Bricks versus trying to stay closer to core and just using like a generate blocks situation or even just trying to build in straight up FSE and block editor?
Like, I mean, you know, like how much time are you spending in page builders or what do you, what do you see that, you know, some of the, the, the negatives might be or, or positives?
Yeah, yeah, sure.
That’s a great question.
Appreciate that.
So a couple of, a couple of different parts there.
Now I, I want to preface this by saying that I am not like a, an expert on using Bricks or Elementor really.
I have used both of them occasionally in the process of doing client work, you know, sometimes some more in depth than others, but I wouldn’t say I’m an expert on all of their features or anything.
Like that.
But I, when I look at something like Bricks, it kind of makes me think of this one thing that’s called, I believe, yes, Sage WP.
Where they basically had this idea.
There’s this PHP thing called Laravel you can use to make apps and all kinds of stuff.
And they have a templating system called Blade, right?
People like pH, people who write PHP like that, they love using Blade.
And so somebody had the bright idea of like, what if we brought Blade into WordPress?
So we could just, I’m just picturing some guy like hitting a blunt, just like, oh man, we can bring Blade in here.
We could just use that everywhere.
And it’s like, you could.
Sure.
You could do that.
Right?
That’s fine.
And maybe for you, Mr. Laravel, Mr. Mrs. Laravel developer, you know how to do that.
And that’s fast.
You think, and you already know it.
And that’s great.
So you’re using something you’re familiar with in this unfamiliar situation so that you can, you can do this other thing.
Timber did a similar concept with the Twig templating engine in PHP, say, right?
Because their idea is like, well, you don’t have to learn WordPress templating.
You can just do this thing instead.
And it’s like, I think those types of comments, that whole train of thought is a very dangerous and slippery slope where you’re saying, you’re going to use this thing, but you’re not actually going to learn how to use it.
You’re going to learn how to use this abstraction that is very specific to this one very specific way of building things is over here.
And that is the one thing that you will understand.
And then any new person who comes to this project who doesn’t know Blade now, but they know WordPress.
Well, fuck you.
You’ve got to learn Blade now.
What?
And what client is going to know, hey, by the way, do you know Blade?
Are you familiar with Laravel by chance?
Most people are not going to ask you those questions, right?
And so some, and you might say, well, who’s building, who are they building these things for?
They’re not building that for small businesses and stuff necessarily, are they?
Some people are.
Some people actually are.
Like a nonprofit photographer contest thing.
Somebody built them a site using timber, you know, and this, this, like, it’s, it’s, it’s horrible.
I’m sorry.
No offense to whoever wrote that originally, but no one should use that.
It is just, it’s an unnecessary complexity on top of WordPress that adds virtually no value.
And it just caters to the developers preferences at the expense of maintainability client value of any sort.
It was not a great experience for them either.
Right.
I’m a big fan of trying to stay as close to core as possible because that’s the thing that somebody is most likely to have seen.
Now, I say that as a person who maybe deals a lot more with core style implementations where people aren’t using page builders that take over the whole experience.
Like Bricks, for example, you’re going into the Bricks builder now and things.
So for me, that sort of thing is a little bit of a turnoff.
Now I know Bricks has the ability to like export things to the block editor, I believe, and some other stuff like that where there’s some interop between those.
Kind of.
Not even.
Or does it convert blocks to Bricks?
There’s an add-on.
No, no.
There’s an add-on that kind of does it, but it’s very proprietary and kind of locked.
Yeah, okay.
Yeah, it’s not a direct translation.
So, like for me, I like the idea of staying closer to core because it’s less stuff for somebody to learn.
Like if you’re using a tool like, say, a blocks plugin like Generate Blocks or something or even making your own custom blocks or whatever, it’s like it’s a block.
The UI is largely the same.
They know how the blocks works.
Now they know how this thing works.
And, you know, I think that there’s something to be said for that.
That doesn’t mean, though, that every single thing that provides a new UI experience is awful, too.
Because if you think about it, that’s exactly what the site editor does.
It’s a new UI that isn’t the old school WordPress admin UI that is only for that very specific functionality of building the templates.
Even the block editor now.
It’s like you’re going into this whole separate interface and this whole thing.
I’ll just because I think it’s a good segue into like it’s a mini it’s a little mini debate of is is something like Generate Blocks close to core.
That term keeps getting used close to core.
Right.
And then I think Bricks versus Generate is a good like battle in that debate where you described Bricks is a separate interface.
You open the separate interface and you do your work there and it’s completely separate, obviously, from the block editor.
And there’s no translation layer to talk back and forth or whatever.
And so there might be an argument that that’s a little bit further away from core.
The question, I guess, is why does that matter?
And I understand why it matters with Elementor.
And this is what people really have to parse is like if you’re using Elementor, Elementor Divi, I’ve said many times and Beaver that all of them just put them all in that category.
All the era to page builders, let’s say all the era to page builders.
They don’t speak the language of web design.
They speak their own little proprietary language.
They call things differently, which by the way, the block editor is the same thing.
It does not speak the language of web design either.
In fact, it does.
The fundamental of adding things to a canvas and what happens when you add something to canvas is literally backwards from fundamental web design.
Right.
The way everything gets added to a centralized narrow column and then you have to choose to expand it out to the edges.
That’s an inside out approach.
It’s a backwards approach to fundamental web design.
So you have to learn the proprietary nature of it.
Right.
Bricks is and this is why we love it.
And then quickly and etch, of course, like these tools respect the language of web design.
They call things what they’re supposed to be called.
They use a workflow that is has been the fundamental workflow since the, you know, the beginning of time on the web.
And people, they’re predictable.
They’re predictable.
And anybody that knows the language of web design can literally pick it up and go, oh, I see what’s going on here and start to use it.
So the objection of element, I don’t want to be an element or because that’s not close to core.
And I understand that because it doesn’t even do anything.
It doesn’t give you any advantages.
It’s only disadvantages, really.
And same with all the era to page builders.
But if you have something that speaks the language of web design, it to me shouldn’t be a real problem.
And then I say, and if we look at generate blocks, another thing people are worried about is, well, what happens if that tool dies and goes away?
I have this dependency.
And so they and they see this obviously with bricks.
That’s an obvious.
If Thomas goes away and bricks just stop, they stop developing it.
They stop taking care of it.
Obvious problem.
What then?
And that’s why I want to be close to core because I don’t want that dependency.
But then they go use something like generate blocks.
And I’m like, I mean, a lot of Tom’s in the page.
Pretty much the same situation.
But if generate blocks went away, you can’t you can’t.
There’s no translation layer there either.
All those blocks.
If you remove generate blocks, your site is is gone up in smoke.
It’s gone.
It’s just as if it was done in bricks.
It doesn’t to me, doesn’t there’s no difference on that front between the two.
Well, they’re statically rendered.
So like they wouldn’t just automatically like completely stop working if you uninstalled it or whatever.
But like the concept, this is an important conversation that we’re talking about.
The concept of being close to core or not.
Like when I think of that, I think of that from the stance of if I’m if I’m looking at a person who’s maybe used to using the block editor already.
Right.
That’s an advantage that it’s it’s not a completely new interface one.
But like then the other side of that is if you have other blocks that come from other plugins, say, of which there are several.
Right.
A lot of popular plugins like, you know, WooCommerce or whatever the fuck.
They all have these blocks and things that they might add in that you might actually want that aren’t part of the suite of those other blocks.
Like having all that stuff together and you can choose which ones you actually want to see anyway.
So if there’s like I don’t want to use the heading block from core, just want to use the generate blocks one.
But then I want to keep all the embeds.
And so you can just do that.
And that’s fine.
I think there’s some value to that.
But I wouldn’t say that it’s a it’s like a black and white of that means bricks bad core good.
You know, in that sort of sense, it depends on who these people are.
Right. Like if you’re trying to make something that is similar to what a person might have used in the past, like, you know, that they’ve used the block editor a bit or they know full site editing.
And now you want to sort of do extra things.
It’s like, sure.
Then having like an additive block plug in of some kind in that scenario, maybe that’s good for them because it’s less jarring.
It’s less of a thing to learn.
They don’t want to spend the time to do that.
They’re happy to just pay you to like do these extra cool things.
That’s great.
But if you’re like a professional who says, I’ve looked at all these tools and this tool here really, I feel like is the one for us.
It allows us to give the best results to clients.
And it’s it’s a thing that we can responsibly build good performance sites with and accessible sites with.
Then you should use that.
Right.
And then you can say, this is the thing that we use.
We are happy to train you on this.
We have this information.
They have this support documentation.
So it’s it’s it’s like a I like I don’t think it’s an inherently wrong thing to want to use something that’s not the block editor.
That’s that’s something like a bricks or a complete even the site editor.
Like I said, it’s it’s not even exactly the same as the block editor either.
All these things are opinionated choices.
It it sort of depends.
That’s why.
Yeah.
So so parse this out, because to me, something like generate blocks, which I’m talking about their new version as well.
Right.
Like the old version used to be pretty much everything gets out at the ID level.
And you have your controls panel, your styles panel, whatever.
They now have a full class slash selector system in it.
Right.
And so now you can do much more advanced stuff and it’s much more scalable, much more maintainable.
I’m looking at it.
I’m looking at the new version of generate blocks essentially as if you took bricks and you and it’s not as powerful as bricks, I would say.
But if you took bricks and you trapped bricks inside of the block editor UI, that’s essentially what you have with generate blocks.
What is the advantage, though, of it just existing in the block editor versus existing in a separate interface?
What is that?
Where is the advantage there?
So, you know, it’s it’s it’s so funny to me that you that you ask this question, because, you know, in when I was working with Tom, the CEO, like the owner of generate blocks or whatever, you know, we’d have these frustrations with this or that Gutenberg thing.
And he’d just like we had this like joke that we’d say, we just go, God damn it.
Can we just build our own editor now?
Right.
I understand.
I think that it’s kind of a nuanced question.
I don’t think that there is something inherently wrong with using a well done interface that isn’t exactly the core one.
I mean, if you think about it, that’s kind of what ACF even does.
Right.
They they’re not using just post list tables for like all the things and whatever they’re using.
They’re doing something a little more elaborate, but it’s for a good reason.
You know, it makes for faster and snappier UI and it’s understandable to most people and so on.
So, you know, I think there’s ways to do that that don’t involve creating a complete separate screen.
But I think it’s disingenuous to paint one or the other as the only solution.
I think that it would make for a tidy statement piece to be able to say that there’s only one right answer there.
But I think it kind of depends on you as the person implementing these things.
Right. Like if you if you’re so dialed in on the bricks world, you got all these templates and you’re able to deliver this stuff really snappy and quick and you can explain it to your clients in a way that they can understand.
And everybody’s able to work with those things, then you should do that because that’s what matters in the real world when you’re creating real value.
Right. But if you’re trying to, like, appeal to a broader spectrum of people who aren’t necessarily people that you’re coaching and training and working directly with, say, or you’re not sure exactly who this thing is going to be used by or built for long term or any of that.
Then, you know, maybe maybe and maybe you don’t know bricks super well, but you’ve heard it was really cool.
I don’t know. Maybe maybe that changes the answer for you.
But the answer is it depends. Right.
Like it seems like in the it’s I was I was actually going to ask about that.
It seems like in that you have like a bunch of different levels of experience here.
Like you’ve done freelance stuff, you’ve done contract stuff, you’ve worked on agencies, like all this stuff.
Like there was conversations that we’ve had in the past when we when this topic comes up around page builders versus core versus something close to core.
One of the one of the common like objections or one of the points that gets brought up brought up is like basic version controlling.
And the fact that like in the page builder land, everything is kind of stored in the database rather than if you’re at the block editor level or anything like it’s kind of like, I guess, like file based, like just flat files.
Like you could do a lot of different things as far as actually version controlling some of those types of things.
So like, I mean, is that like how big of a deal do you think that is from your experience?
Like, is that like a deal breaker?
And in certain cases, does it change at certain project levels?
I mean, I suppose that sort of depends on how how well can you trust your client?
Really, right?
Like if you if you have a client who has an organization that’s made up of, say, hundreds of people and there’s all kinds of different folks who might be in there editing these things.
And you like don’t have a way to actually stop them from doing certain stuff like say going in and taking a class and just deleting it.
They could just do that with like any any permission level that would allow that or whatever.
And you don’t have that restricted.
That feels dangerous to me.
Right.
But like in practical terms, I think that’s like not something that really happens very often.
I mean, maybe sometimes you get an organization where you have like a real like I’m going to do what I want sort of person who kind of ignores better advice and does those sorts of things.
But the amount of times I’ve seen that actually play out that way in like a 10, 15 year period is very low.
I’m not going to lie.
It’s pretty it’s pretty low.
I think that having certain things in the database does provide a good degree of value.
I think like having the if there is a way to have that stuff extracted out to a file, though.
Yeah.
As a developer, that is absolutely my preference.
It’s like with ACF things, you can make that ACF JSON folder and that saves the JSON files, say stuff like that.
Like that’s that’s kind of a nice middle of the road version there.
The block editor or full site editing, really, it’s kind of sort of similar where you can have these HTML files or a PHP file that gets referenced in there.
You know, it’s like a partial whatever, all these different things.
But you can still override those things in the database and then you can like hit reset and it will revert back to how the template file is like the unmodified version.
And stuff like that.
I think having I don’t know, like if you’re building a big site, like has a lot of intricate little pieces and stuff, having the version control does kind of matter more.
Right.
But like in practice, I mean, think about how many large news publications there are in the world that use WordPress all the time for intricate post content.
Right.
Where they’re not just built.
It’s not just paragraphs like they have interactive widget here, this thing, embed, image, whatever.
All the accordions, all kinds of shit.
That’s all in the database, too.
But we don’t scream about putting that into a file.
Right.
Certain things that are bigger, though, I would like be the type of person to go first person to say this does not belong as like a thing in the database in an interactive capacity.
Like I did this header navigation where it has like it’s it’s sticky using position sticky, but it condenses when it sticks.
So it like adds a class shrinks down all this different all the stuff has to like move into different positions and they wanted to animated.
And then it’s got a drawer that comes down with the thing that changes based on the screen width and all kinds of stuff.
And it’s like, why would I put that into a database anywhere?
An editor anywhere where somebody could easily accidentally click on that and break it because they just didn’t know exactly what they were doing.
Whereas if I make a block for that header navigation block, somebody erases the header nav block.
Okay, sure.
I can just restore the block really quick.
And that’s fine.
Right.
Because I’m referencing this code that’s elsewhere.
You know, maybe I have a post ID that comes dynamically still.
Right.
Not hard coding IDs like we said before or use like a theme location.
God forbid.
Old school.
Right.
You know, just do something like that.
And now it’s way more reliable.
You still get the benefits of having in the editor and you can do server side rendering for these things if you want, which for those who don’t know, it means like using a thing in the editor to
render the PHP front end output inside the editor.
So you’re not making it again in JavaScript just to show a preview of it, that sort of thing.
Sometimes that sort of thing can make a hell of a lot more sense.
But I think when you’re making that decision, it’s like most of the time it’s probably fine.
Look at generate blocks or bricks or whatever.
Right.
You’re making classes and shit.
It’s in the database.
That’s fine.
It’s not like my database is in danger of disappearing.
We have backups.
Every platform does.
You know, even locally.
I have like a back, like a time machine or whatever on my MacBook and all kinds of different stuff.
Like these are things people should just be doing so that, like you were saying, Kevin, like you can leverage these, these faster solutions instead of having a hand author or all the CSS in the name of it, possibly not being erased.
Like, okay, we’ll just take backups, put the stuff in there, make everything faster and enjoy yourself.
Right.
Like that’s, I think sometimes that is the answer.
Right.
Like, all right, let’s, um, let’s move into viewer participation.
Uh, I’m going to put up a URL on the screen.
You can be part of the show.
WP town hall.
That show slash join.
Uh, you can come on video.
You can come on audio.
You can do, uh, both.
Just depends.
Uh, we’ve got Carl waiting.
Uh, Carl, raise your hand.
If you’re wanting to, to come on and join the show, let us know.
He’s shaking his head.
No, cool.
He’s just hanging out.
We got sock Watts in here.
Um, and can they, can they raise their hand markers?
I don’t, he doesn’t have videos.
I don’t know.
I don’t think there’s, I don’t think there’s a raise hand thing.
You can, if you want to, if you want to come on sock, why do you just, uh, unmute your mic
and then I can see that and then we can bring on Ian.
Is your camera good?
Nope.
Coming back.
Yeah.
He’s, uh, it’s device not connected.
Um, I want to elevate a, something from the chat.
Um, cause this is the kind of, we’re, we’re, we’re looking for when you come on to participate,
right?
And you can just participate by putting stuff in the chat as well in the, in the, uh,
in the live stream chat.
It doesn’t matter what platform you’re watching from.
It consolidates them all for us, but we want a little bit of pushback.
We want a little bit of questions.
We want stuff to stimulate the conversation.
Okay.
I’m going to elevate one of these comments onto the screen.
Uh, this is from Heisen and it says a lot of stuff made for core blocks works right away
with generate blocks.
So we don’t have to wait for bricks element or breakdance integration thing.
We can just build and go.
And, um, I’ll just put this one up for discussion.
Like my rebuttal to this would be like, first of all, I would want an example of something.
Um, because I can’t think of an example off the top of my head.
Uh, and, and so like I never, and it’s important to use an interface and let’s use etch instead
of bricks, right?
Uh, bricks does have some limitations because you can’t access the code.
Um, but in something like etch where I can access the code and their support for PHP and
their support for JavaScript.
And it’s like, okay, if etch doesn’t offer it as like an element, let’s say I can still
build one in etch.
Like I don’t, I don’t have to wait for anybody, you know?
And so this isn’t, um, an argument and this goes back to you, your, your job as a professional
is to choose a tool that doesn’t have these kinds of limitations.
Obviously, if you have to sit around and wait for somebody else to give you something in
order to do your work, that’s kind of a problem.
So you should use a tool that doesn’t have those limitations in the first place.
And that’s why I constantly talk about, well, you’re choosing element or you’re going to
have, there’s going to be consequences to that or Beaver or, or Divi or whatever.
Um, but we’re innovating and building tools these days in era four WordPress, especially
where these limitations don’t exist anymore.
Like this argument right here is, is a non-argument.
This doesn’t mean, oh, that’s why you stay with the block editor.
Because by the way, if you’re going to, I mean, we talk about the block editor, not having
much of anything, like people are still begging for break points in the block editor.
So by using the block editor, you are using a tool that literally you’re sitting around,
not just waiting, but begging for something that they’ve kind of said they have no interest
in ever giving you.
Um, and so that’s kind of your close to core experience, Heisen.
Uh, and that would kind of be my rebuttal there, but, uh, I don’t know what, what Ian has
to say about that or, or Mark.
I would need, I would need to know an example.
Cause I was just thinking like, are we talking about like the zoom out view in the core, like
block editor?
Cause like, if that’s, if that’s something you would want, that’s not really a, that’s
more of a feature rather than something that would work.
But, um, I could understand that, but yeah, I would, I wouldn’t even know if, uh, an example.
I’m assuming contextually that what what’s meant there is like, you know, you have generate
blocks is like adding things to the block editor.
So if things get better in the block editor, new core blocks come out.
Those are all things you can just use because it’s all in the same playground of stuff.
Whereas like maybe there’s this new core block thing that they just like didn’t add or like
you, it’s not available in bricks right now or something.
I don’t know.
I couldn’t think of one off the top of my head where I would go, oh shit.
Why can’t I have that in that case?
But I could imagine a scenario where maybe that sort of thing might unfold.
It’s just, it’s hard.
Like you said, it’s, it’s very example driven.
Yeah.
We need examples for sure.
Um, but I, but I will say with regard, because most people probably don’t know this.
Um, so with etch, uh, this isn’t an issue because let’s say that the core block editor
comes out with something or even generate or even, um, just any third party block plugin
that you want to install.
You’re like, man, I really liked that slider block thing right there.
Uh, that’s in the repo.
I’m going to add that.
And you have the slider going on in, um, in, in the block editor and you save the page,
but the page was built in etch.
You, the page was built in etch.
It all got translated back in the block editor, but you’re like, etch doesn’t have that cool,
fancy little slider thing that I want to use on plugins right here.
I’m going to install the plugin.
I’m going to open the block editor.
I’m going to put in the slider.
I’m going to hit save.
I’m going to go to the front end.
What is going to happen?
Well, we just released essentially what is a pass through, uh, parsing of blocks.
And so if etch doesn’t recognize what the block is, it doesn’t touch it.
It just lets it pass through.
Right.
And you can even open etch and there will be a placeholder for that block.
And then you look at the front end and it’s rendering the thing on the front end.
So you’re literally able to use any third party block that you want to use with etch without
breaking anything because etch just lets it pass through if it doesn’t recognize what it
is.
So there’s, again, this goes back to you choose tools that don’t have the limitations that the
old tools used to have.
And you’re good to go.
I really like the fact that, uh, you know, I don’t know a ton about the product.
Only the few things that I’ve seen, but that sort of thing I think is really important to
do from like, uh, the standpoint of how do I put this?
Like the WordPress way, like, what does that really mean these days?
Right?
Like to me from an older school standpoint, that means these things should be extensible.
That means they should inherently play nice with other things, not just like take over
the entire way that hijack the entire way something works.
I mean, obviously there’s exceptions to that.
Like search.
You have to kind of let one thing be in charge of doing advanced search things on your, on
your site.
Whatever.
Fine.
But like for this other stuff, especially like building things on pages, there might
be stuff that comes from anywhere.
And if you try to force everything into the box, if it has to work with our tool or go fuck
yourself, that’s, that’s just not a responsible way to build a product in the first place.
Right.
You know?
So yeah, I think, I think that’s, I think that sort of thing is really important.
Having interoperability like between these things.
So you can use whatever the right thing is.
Cause maybe etch doesn’t have this dope thing that like they have in whatever plugin it is.
Right.
So we can just use that then.
Sure.
Go for it.
And now you just have all the things that you need and then you’re using all those other
benefits.
That’s like, I guess the main reason why I enjoy also using a thing like generate blocks
kind of for the same reason.
Right.
Cause it, it’s additive, but it doesn’t inherently restrict me from doing all these different things.
I can still use a paragraph block.
I could still use a group if I really wanted to, you know, for some reason there,
occasionally that comes up.
Right.
But it’s all about using, I think using things that play nice with others is a huge part of
why you should choose a tool, especially if you’re not working with an enormous budget where
you have a lot of risk or variance to the way that you’re doing things on the project,
which you shouldn’t be doing anyway.
Right.
Look at ACF as an example.
That works great.
I actually had the, I actually had this crazy problem.
Check this out.
I was working on a VIP site and I like a complete genius.
I was trying to diagnose this issue for why this search wasn’t working.
This producer lady, she wanted to add like a story into this block, but the story wasn’t
coming up in search, even though it was in there, but you had to like, you had to paginate
those results a million times to load enough to get to it.
And so I thought I would try to just like modify the attributes, just plot the ID in there,
you know, do all that thing.
Try to try to do, cause they were under the deadline.
You know, so I accidentally erased the post meta, not my smartest move.
Right.
So, so this is a site that is not using, you know, a whole lot in the way of crazy ACF though.
Like they have ACF things now.
Right.
But it’s not heavily used where it’s on like every single page.
And even then this was content for a meta field that would not display there.
It was that, it was one, it was that content area thing I was talking about.
Right.
I accidentally wiped the car.
I had it like in my hands, but I had nowhere to put it cause there was no UI for it.
And so I thought I was like, Oh, it’s a, it’s a VIP site, you know, like they don’t,
and it’s doesn’t have the custom fields just displayed down there in like a text area where
I could just paste it or something.
So I was like, what do I do?
And I tried to do this like with the CLI and all these other things.
And then it hit me.
I can just make an ACF field that has the exact same name as that meta field, save the shit
there.
And it just works.
And then I delete the field and I’m done because it all just plays nicely.
I don’t have to worry about, is it going to do something?
No, it won’t.
It will literally just work.
And that’s part of the reason why I love that tool in particular is because you can
do a thing like that and that very extreme, very weird situation.
And it still just kind of does what you’d expect it to do.
I think that’s important.
That also goes back to the concept of the WordPress way, right?
Like it’s post meta in the end, it’s block editor stuff in the end.
It’s all, you know, it’s all billable.
Right.
But like for real, like it needs to play, stuff has to play nice or you’ve probably picked
the wrong tool.
I’ll say that for sure.
Yeah.
Sockwatt, are you interested in coming on?
Nod your head.
Oh, there he is.
Let’s add him to the stage, Mark.
He’s unmuted himself.
He’s I got him.
He’s armed and dangerous.
Go ahead.
Welcome.
Welcome.
Can I think I think you can hear me now?
Yes, sir.
Is my microphone OK?
Yeah, you’re all good.
Can you hear us?
Yeah.
Yeah.
Cool.
So thanks, Mark.
Thanks, Kevin.
And so my question is around I used oxygen.
And in the past I used a little bit of TV and I hated it.
And I used a little bit kind of the builder.
After trying all of them recently, I kind of shifted to the totally hand coded situation, like building your own theme.
So that way I feel good about it and I’m pretty much happy with it.
And even, you know, if we talk about the bricks, so bricks is, you know, on every single element, it is injecting a class.
So I think we don’t need that.
And there are a lot of other situations where some unexpected, even with the builders like, you know, big, some codes are getting injected there.
And I’m like, well, on this given website, this code, this particular code is not really needed.
So when I’m building it, like using a custom theme, building a custom theme, and I can keep the background, the dome, you know, just the way I owned.
So I can keep it totally clean.
And I’ll share all things.
So in the past, with Oxygen and the, you know, just Oxygen and with Builder Rea, so my own website, my business website, I build.
And, you know, on, like, online tools where you check your website performance, like Google Pages, yeah, Pages Speed Inside, Google Pages Speed Inside.
So I had to use every single time a plugin, like Light Speed Cache to have a, you know, 90 plus score.
But when I kind of shifted to, well, let’s try custom, custom coded situation.
And I ended up using zero plugin.
So even no SEO plugin there.
And no, like, I, previously I was using code snippet plugin, like injecting some custom code.
So I am not using that.
And no, no plugins at all.
So zero plugin.
It’s just WordPress.
Although my website is simple.
And I am checking that the S score on that Pages Speed Inside thing on those online tools is accessibility 100%, SEO 100%, best practices 100%, performance 95 plus.
So kind of I fell in love with it.
And I’m thinking to go forward with it.
And Edge is a different, I think it’s different from all the other builders.
But in general, so what’s your thought on this way of going in terms of building websites?
So I kind of fell in love with it.
And I love coding.
And I like, you know, like building things on my own.
And yeah.
Yeah.
I guess I’ll answer and then I’ll flip it over to Ian and Mark.
So when we talked about, like, the right way to do something or the right tool, just want to clarify, right?
The right way to do something is a scalable, maintainable, professional way.
Like, you can explain why you’re doing something the way that you’re doing it.
And you can explain the pros and cons of that method.
And you have a good understanding of all of the fundamentals that are involved in all of this stuff, right?
And you’re using an approach that doesn’t have the kind of limitations that we already talked about are very, very problematic.
And you’re not using a approach or a tool that advocates for or encourages bad practices, okay?
Then you’re doing your job, right?
So if you’re saying, hey, I really like to do custom themes.
I like to hand code everything.
And so my questions would be like, is it scalable?
Is it maintainable?
Can you easily change the things you need to change across the project the way that a real client would want you to do?
And in an efficient fashion?
And is it accessible?
And is it meeting all the other standards that the client expects to be met, right?
I always use the example of a mechanic, you know?
It’s very fast for a mechanic to open the hood of a car and reach deep down in there and slap some fucking duct tape on something or do that in the undercarriage where the client’s never going to look.
The client just brought their car into a mechanic like, hey, I need my shit fixed.
It’s broken.
They have the expectation that the work that is about to get done is going to be done to some semblance of a professional standard and that the shit’s not going to fall apart in two weeks or while they drive down the road, right?
And so if you are meeting those professional standards, then you’re doing your job, right?
And so then it comes down to preference.
Where I’ve always had a problem is people trying to say, well, I use Elementor, but I’m doing those things.
It’s like, are you though?
Because like you look at it and it’s like, no, those standards are not really being met.
Or you look at Divi and the sites that are being produced, those standards are not really being met.
And this is fairly objective, just like if anybody opened the hood to check what a mechanic did and they see duct tape and they’re like, no, that’s not the way that things should be done, right?
That’s when it becomes a problem.
But if you’re checking all the right boxes and the important boxes at that point, a hundred percent, it’s now preference.
Yeah.
Yeah.
Yeah.
Please go ahead.
Yeah, sure, sure.
So I, you know, I think it’s, I think it’s kind of like the journey that a lot of people take where you start with like an abstraction and then you eventually get curious about, well, what if I, what if I did this myself?
What would it look like to do that?
And then, you know, the empowering nature of that.
And like, you have more knowledge of this code that you’re writing.
You, you, there’s less layers on top of it.
So you understand all of what’s happening.
You know, I think that sort of approach is really important.
It’s kind of like Kevin was saying, if you’re, if you’re building something in a responsible way where you’re not coding it poorly in the name of just not using any libraries.
Like I know people who’ve done things like build their own slider because they didn’t want to use any libraries.
And the slider they built was absolute trash and did not work and took them hours to do, you know, that sort of thing.
Like there’s a line there.
Right.
But like, even with WordPress these days, you can build custom blocks with your own code right there.
Use your own interface, do that kind of stuff.
I think that that’s a preference that can work for some people.
And if you’re working at certain types of companies where you have like enterprise clients and stuff, that type of skill becomes all the more valuable because they have this budget and kind of fundamental requirement or desire to have bespoke coded stuff.
They don’t want to use it, these extra tools because there’s all these little pieces to the project and they have all these different people working on all the number of reasons.
Right.
But it’s like, are you delivering responsible value for someone?
Are you making something that’s good?
That’s fast.
That’s accessible.
And not doing it in a way where you’re setting somebody up for failure later.
So then you’re doing the right thing in general.
Are you using block themes, custom block themes, or is it a traditional theme?
So are you asking to me, Kevin?
Yes.
So what I do is I just go there and create, create, create totally brand new theme.
So it’s not just, I’m just, you know, creating the theme and just, you know, whatever files are needed there.
I’m just gradually creating this file, style.css, space.psp.
And I’m just going that way.
So it’s totally a custom theme.
But are they like, are you using like PHP for your templates or are you using full site editing, like HTML templates and stuff like that?
Or a little bit of both, I guess.
PHP.
Yeah, PHP.
Okay.
So are your projects using the block editor?
Like when you’re editing, when somebody’s editing pages?
What I do, so I think you’re meaning by block editor, the Gutenberg thing, right?
Yeah.
Yeah.
Yeah.
So what I, what I do is I totally kind of disable the Gutenberg and all the, all the, you know, CSS files and all the other stuff that WordPress is loading for Gutenberg.
So I just go through the, you know, DOM.
And if I kind of see that this is for that and it’s not needed for this given website.
So just for the, you know, health and the speed of the website, I just go like in the functions.psp, let’s disable them.
So I just, and that way I just make the WordPress dashboard totally clean and no unnecessary stop at all.
Are you, I mean, then, so you basically, you’re saying you disable all that stuff.
So like, are you building this for clients?
Like they’re not, you’re saying they don’t use like the block editor or anything?
Like to edit anything?
So client-wise, I didn’t have that much experience with the client, basically.
So what I’m doing is I’m, I’m still trying it out.
So, so I’m just, I, I just a little bit curious, you know, going through all the base builders.
And when I’m going through it, I’m, the more I’m going through it, the more I’m loving it.
So maybe the client, with the client situation, it is more of a future thing.
Gotcha.
I mean, the only thing I would add is I think Kevin and Ian gave some good advice there.
The thing that I would say is that from hearing what you’re saying, which is like, you know, a couple minutes of context.
If you are trying to build it into, like, if you’re trying to build that into a business and you’re going to build websites for people, I mean, if it works and you’re, you know, taking that professional approach, then that’s awesome.
I would just consider the things that I think you’re going to run into are like, can you do these things efficiently enough to make enough money that you need to make?
You know what I mean?
Like, can you, like how, if, if a project takes you a long time because you’re kind of doing a lot of that stuff kind of manually or you have to do it, uh, you’re deep in the code at all times.
Then I would just take that into consideration when you’re telling clients that you’re also going to have to find clients probably that actually value that.
Because I think a lot of clients nowadays are starting to realize that you can build websites relatively easily and quickly.
I’m not saying that’s right, wrong.
I’m just saying that it’s something that we all have to deal with in like agency freelance land.
Um, the last thing I would tell you is if you are that interested in doing all of that, you may actually be extremely valuable in like, like I would, what I would say is like up the chain of software development.
Like not just like building websites, but also building other things.
So I don’t know if that’s something you’ve experienced, but I could tell you so much.
Like I like building websites, but I’ve never once thought to go in there and start playing with disabling things and mess around with all that stuff.
So you may want to consider that as well.
You may actually just be like more inclined to be like a heavier software developer.
Ian could tell you more than me, but like you could, you, that could actually be something that you might want to consider rather than just doing, you know, just building websites.
Like you may, you may actually be able to provide even more value at like a web app level or something.
That’s not just a simple like marketing website.
So just something to consider because it sounds like you’re very technically inclined and you love it.
So something, something I would think about.
Yeah.
So I’m, to be honest, I’m, I’m not that much, you know, uh, technical in terms of coding, but it’s just, I love it.
And, and I’m constantly learning.
And the, the, the other, the, the thing that you mentioned, uh, Mark, which is like, uh, going upward, like with, uh, in the, in, in the future doing something even, even more than that, more than just website.
So I can feel that.
So I can feel that.
And I think I’m like, well, let’s start, uh, law start, you know, learning, uh, coding.
And I think in the future, probably I will explore some different areas, maybe a little bit, you know, higher things than just the website.
So that’s what also is in my, in my, in my mind.
So yeah, I think that that, that is, that is aligned with, with, with me.
So I’m, I’m good with that.
The only thing I would caution against is, you know, I think that people are going to want the block editor to be involved in the projects that you do, you know?
So I would look into doing a block theme.
I would look into custom block development.
Um, I would start branching out into those areas.
If that’s kind of the path that you want to go through.
Uh, I would caution that I, cause you mentioned site speed and performance a lot.
Um, you know, etch, for example, if you, and if you took, especially if you, um, if you took off automatic CSS, there’s a little bit of a load for automatic CSS.
Cause it’s, uh, uh, also depending on how many features that you want to activate and you want to actually use.
Um, there’s a, there’s a trade off for all of the things that you, that you might add to your stack.
Right.
Um, if you just used etch by itself, for example, and built the same homepage that you have, I think you would get very, very similar scores.
Right.
And so the question becomes, and let’s just say similar scores.
The question becomes how fast can I get to the etch version versus your version?
Right.
Because time is money, obviously.
Um, and which one do you really enjoy?
Uh, you know, this after, I don’t know, 10 projects, 20 projects.
Are you still really loving the fully manual theme, custom theme way of doing things?
Or would you rather be in a faster, more efficient environment?
That’s another thing to consider.
But even if you did install ACSS and you added a couple other add ons that make your life.
Other add ons that make your life way easier.
And you ran the scores and it’s a 98 instead of a hundred.
And it’s 1.4 seconds instead of 0.9 seconds.
Does that matter?
Right.
Is it worth all of the advantages of this, the stuff you added to your stack?
Is that little discrepancy and score worth it?
I would say a thousand percent because there is a, there’s no, like it, that difference that’s measurable actually means nothing in the real world.
Right.
It means absolutely nothing.
It has zero influence on your ability to rank the site, zero influence on real users using it in the real world that nobody’s going to notice that difference.
It’s, it’s measurable by a computer.
It’s not noticeable by a user.
Right.
Right.
There’s a difference between 98 and 40.
Right.
That’s that.
Now we have, we have some issues, obviously, 198, 1.4 and 1.1.
Those are not discrepancies that matter.
And so you have to look at the advantages you’re getting by that stack that’s coming in at 1.4 versus the advantages you might not have with the stack that is, you know, coming in at 1.2 or whatever.
Like there’s a, a law of diminishing returns.
Like we’re at a point where you can keep optimizing.
It doesn’t really matter anymore.
And the cost of whatever you’re using in that stack, that’s costing a few extra, you know, 0.2, 0.4, whatever.
That’s inconsequential.
It’s inconsequential.
So you should just say, I will gladly take all the benefits I get from that and not worry about that little discrepancy.
On that note.
Also, there’s one other thing you mentioned earlier that I think is an important point of clarification regarding like caching plugin things, right?
Like if you have a website that does not have any users that log into it at all, it absolutely should, no matter what tool you’re using for it, it leveraged dynamic, like a page cache, right?
If there’s, if you’re using like PHP to make a website and say, it’s just like brochure information or a blog or something using page caching is still valuable, no matter which way you did it, because it just bypasses the need to talk to PHP at all.
Like normally when you have a page builder or like for those who don’t know much about this stuff, like if you have a page builder and it has all these different parts that come from like the headers from here and the footers from here and this, that, and the other.
Like every time a request happens to your site PHP, the language that powers, all that stuff has to like, you know, make the page.
It has to parse all that and make HTML content.
Now, if none, now, if nothing’s changed between person here and 10 people later, it doesn’t make sense to keep having to regenerate the page over and over again.
You would just save a copy of the page and then you’d serve that HTML file or whatever to like each of the successive people that show up.
So from a performance standpoint, that’s actually a very important thing to improving like metrics, like what’s called time to first bite TTFB or other types of things that improve how fast the page loads.
Now, on a similar note, like if you’re doing things that involve like loops or whatever, I mean, sure, maybe there’s not as much, maybe you don’t cache certain things on pages, but even then, most of the time I found most basic query loops work just fine with page caching as well, because each of those pages is its own page in a URL.
So each one is cached individually anyway, and if they haven’t changed, then there’s really no reason to do more. Similarly, there’s object caching at the database level.
But like the reason why I’m bringing this up is to say, like, just because you’re using a caching solution doesn’t mean your code is inherently poorly optimized.
I would argue, though, that if the page loads in like five seconds and less page caching is turned on, you’ve probably done something wrong.
Right. That’s gross. It shouldn’t be like a order of magnitude difference.
It should just be like from like from from 90% to 95, 90% to 98 maybe or something of like what you’d want it to be.
Not egregiously slow, only usable with the page cache, which I’ve seen happen before.
People will sometimes take like a poorly optimized site like they have an element or site that has 20 bajillion elements in it and they’re all dynamically generated from all these different things.
That’s a lot on their like $5 shitbox host that they have that cannot run that.
Right. And then you turn caching on and all of a sudden it works.
Hallelujah. We did it. Not. No, you didn’t do it.
You made a foot gun. You made it.
So anytime the cache breaks, everybody’s experience is slower.
And then when people log in, which in this case for the site they did, all those people got a degraded experience anyway.
Right. So I think having like a laser focus on providing real world value that isn’t, as Kevin said, like going from 9800 on like core web vitals.
The only person who can.
Oh, Ian cut out again.
Cut out a little.
Again, Ian.
Who cares about that is good.
Right. Can you guys hear me okay now?
Yeah.
Say that again. That last part.
I was just saying like imagine that meme of the stick figure guy in the party, the corner of the party all by himself in there.
They don’t even know my web core vitals are a hundred across the board.
Yeah, they don’t because nobody actually cares if the site’s fast and it’s snappy.
People go, holy shit, I just pulled up.
Like that’s what people that’s what people want to see.
Anything that you’re using tech stack wise should be in the pursuit of delivering that sort of quality of page performance and overall use to where it’s like so seamless people don’t even notice it.
They notice that there’s no friction anymore like they’re used to.
Right.
And if that if that’s the case, you’re doing you’re doing good stuff.
But I would not look at page caching or object caching is not necessarily a faux pas, but it shouldn’t be used as a band-aid.
Yeah.
Yeah.
Agree.
All right, Mark, we’re over time.
We should probably put this one in the books.
Yeah.
Appreciate you, Sakwon.
Hey, keep us updated on everything.
Yeah.
Best of luck to you.
Good luck.
Ian.
Go ahead and tell people where if you got a call to action for the audience or anything you want to share with them or get them to sign up for your floors yours.
Okay.
Yeah, sure.
So I’ve been working on this course, learn WP theme dev, which might even have its name be changing slightly soon just to be a little bit less general.
But if you’re looking to learn more about like coding things in WordPress, like you want to start doing more advanced WordPress block development, you know, working with hooks and getting into PHP and JavaScript, you know, and building these types of solutions where you can use all kinds of different tools and all that.
I would encourage you to check out the course there at learn WP theme.dev.
There’s a, there’s a, there’s a free course on hooks.
It’s like a little mini course that you can get through email if you want to sign up for the newsletter.
And, you know, it’s not like spam with a bunch of stuff or anything, but I’m really trying to provide a meaningful resource to people that isn’t just like some kind of cash grab stuff.
Cause honestly, WordPress education space is not the place to do a cash grab of any kind.
Like I wanted to build the thing that I always wished existed.
Right.
And try to go into some of these technical topics to empower people to make their own decisions and build things either custom or using like a tool, like an etch or a bricks or a generate blocks.
I’m not going to be like teaching a bunch about those specific tools, but like teaching you how WordPress works and the skills you need to make reasoned, intelligent enough choices on how you go forward with these things.
And ultimately, so you can get paid doing this stuff.
So if, if that’s something that sounds cool, you should check out the course there.
Excellent.
Well, thanks for coming on, Ian.
We appreciate the discussion and Mark, we’re going to put this one in the books.
Also quick, thanks to our sponsor.
And just a quick reminder to everybody listening.
You can get WP town hall.
So you don’t have to watch it live necessarily on, on YouTube or Twitter or wherever.
You can subscribe to it as a podcast in your favorite podcast application.
So go ahead and do that.
That way, if you miss any episodes, it’s just going to show up in your feed and you’re going to be able to listen on the go or wherever is easiest.
But we also have obviously the ability to participate.
And so if you see a topic that you love and that you want to chime in on, you can always click the link.
You can always WP town hall.
Show.
Just click to join.
Come on video.
Come on audio.
Be part of the podcast.
We would love to hear from you.
So that’s it for this episode and we will see you again very soon.
Peace.
Thank you.