How are you developing websites, that allow your typical non-developer change the content?

Hey! I have been working with WordPress for a good while now. Typically, I’ll use a page builder like Elementor, and take advantage of ACF for elements like navigations. Using page builders do zap the joy out of me though. I much prefer manually writing my code. But at the end of the day, I need a non-developer to be able to come in, and change things around.

I really want to leave Elementor. It just adds so much bloat to the markup. It’s not fun to work with, even after all the years I’ve used it. Some things can be twice as hard to create, compared to if I was just manually typing everything out myself.

So, how are you creating websites with WordPress? Are you saying “Only a developer should be able to change this” – and if so, how do you sell that to the client? A lot of these clients have third party firms come in and change content around for SEO, and half of those haven’t got a clue about development, and rely on these drag and drop builders.

  1. Well, WordPress keeps moving towards drag n drop / visual editing and that makes everything more complicated for people who just want a system to manage data. There are people out there who have invested a ton of time to try and bridge the gap between the direction of wordpress and modern templating features like Sage by Roots (

    But honestly, that doesn’t do enough IMHO. I’ve moved most of my work away from WP due to it’s direction. As a developer, it’s just too cumbersome and frustrating to work with. I still hang out here to try and help people with more technical questions so my 15+ years of WP experience doesn’t just go to waste.

    Sure, it’s nice to be able to spin up a membership site in 20 minutes with a plugin, but in my experience, that only gets you about 75% of the way. If there is a security hole or something broken in the core of the plugin code, you’re at the plugin author’s mercy, and they are generally too busy to care. If you are building a serious project, you need to be able to iterate and change quickly.

    I’ve moved most of my work to other frameworks / systems and it really put the wind back in my sails. I too like to express myself in code and when you find a framework / system that you like, developing can really be fun.

    I’m using SvelteKit for my UI/frontend and the self install of for my CMS for a lot of my projects and I’m loving it. Don’t be afraid to look elsewhere for systems. There are a lot of awesome things happening in the web world.

  2. I work with ACF on the back end to let the client put their content in, and then I manually code everything on the front to display it. I use a Flexible Layout block to allow the client to have *some* ability to drag n drop individual layouts together, but it’s not exactly a “Page Builder” style WYSIWYG. It’s worked pretty effectively for years now, and I’ve not had any complaints!

  3. I like to work with Guttenberg page editors. I really like Kadence + ACF because Kadence has really good hooks for elements. You can create the element vai Guttenberg, and write custom hooks into your site if you want to get very particular about where things go. This let’s a customer edit the element if they need to. I am acheiving 100% via GT Metrix on sites using this pretty pure setup. This plus some good caching like WP-Rocket / Imigify for webp etc really make the sites fast as they can be. Using ACF and hooked elements and custom post types means we can keep development in the back, but basis guttenberg editing to the client.

    Now clients that have third party customers coming in, specifically for SEO. If they are affording that they can afford checks and balances. We would manage the brand front end and if there is 10 blog posts coming in, or major edits to a page, get in the review process. Get on those monthly meetings. If I client is having 2-3 seperate monthly meetings to cover the third party people (advertisers, seo, etc) then they can include the developer / agency that built the website so it’s all working. They will appreciate that being brought up. Otherwise all guarentees, and warrenties go out the window instantly.

  4. If you use a pro site builder like YooTheme, you can completely separate the content from design. The site builder (page builder) and the fun for you as the developer and designer, less confusion and space for screwing things up for normal editors. You also have full control over the design elements site wide, so at any time you can change design elements without the content being a barrier.

    On the other side you can use custom post types and ACF to store the data logically so it will be easier for non developers to find their way. Once you work with a template framework like that you will realize what a heavy bloatware Elementor is, not to undermine all the work they have done to make design easy for everyone. But pleasing millions of users with a high percentage of not-so-pro developers among them has consequences.

    If you are looking for more economical options than Yootheme, Oxygen does similar work with lifetime + unlimited websites, of course not as good as YTP, but it is cheaper.

  5. It depends on the needs of the client. If I’m building something for me, then I’ll do custom code and use something like ACF. But if it’s for a client to be able to update? I’m using Elementor or Divi, because I can show them how to change the things they need to and create an instruction sheet to help them do it. Is it the best code? No. But does it do the job they’re paying me to do? Yes. And that’s what matters in my view.

  6. Most clients *don’t* want to change things other than text or images, and so I use ACF when I anticipate that.

  7. I use ACF and register templates that use said ACF data as blocks, or bake it into a custom post type template.

    I hand code everything else and paste it into html blocks or code view. Like 100% of everything else. I don’t have a single Gutenberg block on any of the sites I’m currently working on, nor have I ever used Elementor or whatever.

    If they wanted a drag and drop builder site they wouldn’t be paying for a pro to make them a new design, and they wouldn’t be paying me to implement these fancy bespoke designs.

    Ironically, right now I’m doing a site migration from shared hosting to Pantheon and seeing all their “clearly built in a wysiwyg editor” pages is giving me a headache. They’re so bad. They’re so so bad. I want to rebuild these…

  8. My approach:

    Custom hybrid theme + plugin for custom blocks.
    When I say hybrid, I mean I use theme.json, but still keep the php templates instead of all HTMLs.

    Pages and Landing pages:
    Patterns that are built with core blocks, custom blocks, and some CSS classes that overwrite things like container size and breakpoints.

    Core blocks, occasionally custom blocks and patterns

    Custom post types with fields that don’t change. Eg. Events:
    ACF fields

    I actually quite like where WordPress is going.

  9. Layout is a developer’s business. My clients can edit content. I code custom themes, optimized for each case

  10. I use the rest API to build a simple interface they can use to make changes.

  11. Gutenberg and the lazy blocks plugin is a fun mix. I love the flexibility. Sticking with Gutenberg for the page builder is great for site speed.


This site will teach you how to build a WordPress website for beginners. We will cover everything from installing WordPress to adding pages, posts, and images to your site. You will learn how to customize your site with themes and plugins, as well as how to market your site online.

Buy WordPress Transfer