The allure of being able to build without coding is strong. Even among coders. After all so much of programming involves repetition, and we often think wouldn’t it be better if we could have this done for us, automatically. This thought process happens to me a lot. But in reality I find when we try to automate too much, we end up with much more complex problems. For example wouldn’t it be better to rely on JetSmartFilters plugin to handle the complex task of filtering records? Building filters can seem daunting even to seasoned developers. It’s also a full stack adventure, you need to make the interface, you need JS to do AJAX calls, and then you need to query and return results using PHP. And if you don’t handle the CSS well, what’s the point?
This leads us down that rabbit hole of relying on OPC (Other People’s Code). And in a different way than relying on WordPress. After all WP, probably doesn’t get enough credit for this, but it’s very light-weight and fast out of the box. It’s all the stuff (themes and plugins) that get’s layered over top that can make it both slow, and super complex to work with. Ironically doing simple things in a lot of WP sites ends up being more complicated than building a Node.js React-powered modern app. There are just many moving parts, and there is so much code layered on top of other code. It’s that challenge of trying to make modular pieces that fit together, which is both immensely powerful in WP, but can also be it’s achilles heel.
We started with Elementor. Then Elementor Pro. Then we discovered JetEngine. Then we tried JetSmartFilters. The dream of being able to snap your fingers and viola a powerful data-driven site emerges… the dream seemed to be real. Except it wasn’t. We used JetEngine to power our portfolio here on this site, and then to power our listing of services and WP plugins, and the site become the slowest site to ever exist. We looked at how to resolve this. Bigger server, check. We’re on AWS, we upgraded our server a couple of times. Roll in the optimization plugins. None of them really work, optimization is too specific and nuanced of an area for a plugin to suddenly fix everything. Especially if your site is just wacked. And that’s the conclusion we reached, our site was just loading to much junk OPC. Other people’s code, it was saving us time in coding, but it was now costing us time in fixing and debugging and optimization. And also, an important point here, while we were distracted by the worries over our slow site, and any users who dared to load it were haunted by it’s painfully slow churning… during that time, we were not focused on marketing and improving the UX and doing the dozens of other important things we needed to do to grow our agency.
So we dumped JetEngine. We decided to go back to what is simple and effective when we want custom post type content. That is a CPT with ACF fields, and fully custom templates to render the content. The next step is to tear out Elementor, which means we have to replace the Elementor forms… and we’re not sure what we want to use in place. We might just build them ourselves! After all, how much OPC is in Gravity Forms or other options? We could use ACF front-end forms, but it’s massive JS load provides poor options for creating a good user experience.
Bottom-line is we’re done cutting corners and compromising. WP remains our go to for a building framework, even as we start to work a lot more with NodeJS/React. But we’re questioning everything now. We’re question WooCommerce which feels bloated, slows down sites and requires a dozen extensions just to make a decent experience for the user.
At the end of the day, web development and application development is about valuing the user experience. It’s about building the best possible experience for real living people that need to gain value from what you create. So why settle? Why are we settling for inferior load times, inferior UX’s, inferior user flows, all because Other People’s Code promises to slam features into place quickly? I don’t have a good answer to this question, so for me that is the answer.