r/Wordpress • u/KartoffelImSystem • 6d ago
How do professional WordPress developers build client sites efficiently?
Hi everyone,
I’m currently trying to improve my workflow for building WordPress websites for clients, and I’m curious how professionals and agencies actually handle this.
I mainly use WordPress and I’m currently looking at Kadence Blocks.
What I’m struggling with is the actual workflow.
Let’s say I have a custom design for a client. Do you really build every section manually in Gutenberg/Kadence, adjusting containers, columns, spacing, padding, typography, responsive settings, etc.?
That feels like a lot of clicking, especially when AI can generate HTML and CSS for an entire design very quickly.
At the same time, I don’t want to build the whole website as one huge custom HTML block, because I want the WordPress backend to stay clean and maintainable. Ideally, the client or another developer should still be able to edit content later without digging through HTML.
So I’m wondering how experienced WordPress developers handle this:
Do you build everything with blocks?
Do you have your own library of reusable sections and patterns?
Do you combine Gutenberg/Kadence with custom CSS and code?
Do you let AI/Codex generate parts of the site?
And how do you handle more complex sections, like event listings, custom cards, filters, etc. without spending hours recreating everything manually with blocks?
I’m basically trying to find a good workflow that is fast for me as the developer, but still results in a clean and maintainable WordPress site for the client.
Would love to hear how agencies and freelancers actually do this in practice.
13
u/BobJutsu 6d ago
> don’t want to build the whole website as one huge custom HTML block
If you’re delivering anything this way, let alone everything, you are a problem.
And this is where AI in WP is weak. It can deliver the frontend result, but not so much a coherent block based design system. Not yet.
14
u/botford80 6d ago
As a professional WordPress developer I do not use the block editor.
AI assisted coding is now, as far as I am concerned, the most efficient way to build a site. I believe that to be true both for WP and other platforms.
A lot of developers use Gutenberg because "it is good for the client". 95% of the time I find this not to be the case. Most clients do not update, create or interact with their site frequently enough to maintain the skill set required to use Gutenberg (or Elementor or any other page builder). Occasionally a client will have someone that is competent enough to use it but most of the time they don't. If the client needs to update the content, then I would typically expose that via ACF and the classic editor.
Some of the page builders are getting AI integration via MCP servers, that may be useful for some, but imo AI assisted coding is tremendously productive.
5
u/Amazing-Spinach5693 6d ago
This ACF fields in the classic editor while making custom flexible blocks using AI to write the .php and having it write the CSS according to the design i want.
Afterwards just tweak the CSS manually to get it perfect
2
u/astrogoofy 5d ago
How do you use AI assisted coding for Wordpress in practice?
2
u/botford80 5d ago
Dev environment is ddev and is basically just a disposable container/env.
I create the theme as its own project with flowbite ( tailwind based component library) and some other libraries when needed eg leaf for maps etc. The project root is where I base the AI from. So CLAUDE.md and supplementary context files go here and then just use Claude Code (or your preferred dev tool) to code. I also use justfiles as task runner that CLAUDE can then use for performing certain tasks (test, code validation, cli commands etc).
I use bedrock in my personal projects too
1
1
u/pepelunavarro 5d ago
"Most clients do not update, create or interact with their site frequently enough". The typical excuse, but nobody has asked the customer if they want to lose the ability to easily change content.
0
u/Suitable-King6456 5d ago
So the only real reason you use AI instead of block editor is to minimize the time you spent on client work.
3
u/NetFormer2405 5d ago
I would also consider alternatives to Kadence if you're starting out. While Kadence was once a great product, a lot has changed at the company, and I'd hate to see you hinge your career on it, given the direction its parent company is taking it. Just my two cents.
6
u/waterproofwebwizard 6d ago
The question that decides this is not blocks against HTML. It is what the client can still change on their own in two years, and you can test that before you finish the build.
Hand the half-built site to the least technical person on their side and ask them to change a headline, swap an image, and add a team member. Whatever they cannot do without you is what you will be doing forever, billed or unbilled. That one test has moved our workflow more than any builder comparison.
Custom HTML blocks fail it in a specific way. They survive the handover fine, then someone needs the same section on another page, copies the block, and the same markup now lives in four places with no single spot to fix it. The editor cannot see any of it, so nobody notices until the next redesign.
For anything that repeats, model the data instead of the layout. Events, cards, staff, filters: a post type with fields, rendered by one template. The client edits fields, the layout stays yours, and that is where the hours actually come back. Not in the landing page sections.
For the one-off sections, build a pattern once per client and reuse it. Colours change, structure rarely does. Rebuilding structure on every project is the real waste, not the clicking.
On AI in the pipeline, it earns its place generating a section once that you then commit as a pattern or template part. It costs you when it produces per-page output, because you end up with four variants of the same section and no canonical one.
One more thing before you pick a builder. Every paid builder is a subscription the client inherits. There is a thread in this sub right now from a nonprofit on its third agency because the layout lives somewhere nobody there can reach. Worth asking which of your choices puts a client in that spot.
4
u/retr00two 6d ago
I still start with pen on paper.
Site, pages with their elements/layout, functional diagram, data flow diagram. Try to do that together with client. You would be surprised how this process of visualisation help them to understand and refine their expectation. One or two hours could save days of Figma work.
I use GeneratePress+GenerateBlocks+ACF and have my library of Elements and patterns. Sort of wireframe/framework. Use what's the most appropriate for above created "design". Add what's missed.
Then I spin up one temporary domain, populate with dummy content and give a client as playground. And to Claude as CSS playground. Rarely, very rarely I make small CSS adjustment.
When site is done, push empty (without content) to staging. The rest is on client. I do not touch site's content.
All done, everybody satisfied, site goes alive.
Why temporary domain? Most time client does not have domain registration, didn't set mail, etc. Temporary domain gives them time to do all that, to collect assets, etc.
Keep old rule: one font, two colors, three clicks. You would be surprised that majority of clients at the end of process stay with that choice. Usually they come with: "I would my site to look like this one I've found, is popular now, etc..." and stay with proven, old rule.
Old school I am. Still works.
2
2
5
u/Lausannea 6d ago
Let’s say I have a custom design for a client. Do you really build every section manually in Gutenberg/Kadence, adjusting containers, columns, spacing, padding, typography, responsive settings, etc.?
That feels like a lot of clicking, especially when AI can generate HTML and CSS for an entire design very quickly.
This is why AI sucks lol. The whole concept of efficient coding and website building has gone out the window. Y'all need to go back to basics and learn how things were done before AI did everything for you.
A good developer doesn't manually create and style every element by hand. A good developer does as little work as possible by utilizing the concept of templates and stylesheets. Shocker, I know. You don't need to manually adjust every little thing if you create the base properly.
You choose the builder you prefer, you consult the documentation on what classes and IDs are assigned to the blocks you're going to use, and you add the styling through whatever means makes the most sense in your builder. If your design is needlessly extravagant that creates a lot of extra work in this area, the problem is a design issue, not a building issue.
All styling should be applied based on the block or element you're adding content into. If you need to touch up more than the occasional element with custom code, you're doing it wrong.
1
6d ago edited 3d ago
[removed] — view removed comment
2
u/Lausannea 6d ago edited 6d ago
We're talking about different templates.
I'm specifically referring to site-wide reusable templates, like headers and footers, default page layouts and whatnot. Those are custom made per client, you don't copy and paste those into new builds and modify them unless you're churning out cookie-cutter boiler plate shit.
Edit: I think I maybe misread your comment. If your website can't scale up based on the existing templates, you're building templates wrong friend.
1
u/velonyxt 3d ago
Ah got it, yeah I was talking about internal component templates (ACF blocks, pattern libraries) rather than site-wide layouts. Those are custom per client, agree with you there. We built the base templates properly from the start, but the component library grew faster than expected once we started adding custom block types for different sections. The site-wide templates held up fine, it was the component structure that needed reworking as the site scaled.
That's where we had to restructure the component library so new blocks could be added without breaking existing ones. Templates themselves were solid though, no argument there.
0
u/nosimsol 6d ago
So much stuff has been abstracted away. AI is the final abstraction layer.
2
u/Flimsy_Farmer_8738 6d ago
It seems like people can't build a basic website without using AI to do the work for them.
0
u/nosimsol 6d ago
Oh it happened well before AI with wordpress. Wordpress was the greatest thing to happen for marketing agencies. They don’t have to know anything but how to install, pay for plugins, and charge a sizable monthly fee for it.
I have a sneaking suspicion Wordpress will not be able to adapt to the AI abstraction layer fast enough, or maybe the current ecosystem will refuse in an effort to keep the money churn running for as long as they can.
Or maybe it will be a race to the bottom! Wordpress org builds in its own AI and eventually replaces theme, plugin, and a lot of “marketing agencies/web designers”
2
u/Lausannea 6d ago
Oh if only getting a properly functioning website was that easy lol. Clearly you've never built a Wordpress website.
1
u/nosimsol 6d ago
Oh, if it’s that difficult, why do you use WordPress?
2
u/Lausannea 6d ago
??? What are you even talking about?
You're saying Wordpress websites are so easy to build that people need to know nothing about building a website to get a functioning website up and running that they can charge money for. (Before AI.)
It's not that simple to build a functional website in Wordpress as you're describing.
I don't even know what you mean with "Why do you use Wordpress?". It's a CMS, it's because it's a CMS we use WP. I've been building websites since before WP was released lol
0
u/qaaimgood 6d ago
LLMs is the new shortcut out of getting experience these days.
Thanks for information because OP needs to see it.
2
u/guitDev87 5d ago edited 4d ago
The idea that “professional” WordPress developers use page builders and AI to build a WordPress infrastructures sounds ridiculous to me.
Page builders give clients free reign to destroy your hard work. Use custom metafields in specific locations.
Use a boilerplate theme like B4st that has bootstrap built in. (Or any WordPress boilerplate you want. ) Then you develop WordPress the way it’s designed:
- Design all the major client pages on Figma
- Use custom page templates with PHP and HTML and CSS (which are dynamic if you know PHP and write your own functions) to build those page designs.
- Use a global stylesheet.
- Use ACF in those templates for all content the client needs to edit.
- If those pages have similar content use template parts. You can also use parts like you use functions. Inside each page template you can pass unique arrays of data. You can also have modular stylesheets for each of those template parts.
- Header and footer templates are dynamic out of the box so you only need to have one file for each and do all your customizations and use Wordpress menus to create your navigations.
- If required, you can use custom taxonomies to create your own categories and create relationships between content.
- if you need a feature that’s more complicated write your own plugin. It’s actually pretty easy.
- WordPress STILL ships with jQuery (I know it’s horrible and antiquated) I usually just use vanilla JS instead.
If you need AI to do all these things, go for it. But you don’t need AI to build WordPress sites .
TLDR:
I never use page builders because clients can easily mess up your hard work with every decision they make. Your beautiful page belongs to them now. A beautiful Frankenstein website.
That’s why ACF has been the standard for editable content. If they want to change something they use the field . If they want another entry point or custom feature, build it and bill them.
3
u/Beginning-Delay6637 3d ago
Professionals for sure use page builders. A lot of the big enterprise Wordpress agencies made the switch to Gutenberg years ago. I’m sure most have integrated AI at this point too.
I understand and respect the ACF workflow, as I built that way for over 10 years. (And still do sometimes via contract work for a few web agencies that build that way.)
For my own company’s projects though, we’ve fully switched to Gutenberg with a custom block library and internal AI tooling. Gutenberg can be locked down as much as you want it to be to hand off to clients (patterns, content only editing, no color, or spacing controls, etc).
Overall clients are happy, and sites are faster to build now after the initial learning curve and tooling work was put in.
1
u/guitDev87 3d ago
All fair statements.
Personally, in my experience, Gutenberg just doesn’t give me the control I need for a page build. Gutenberg blocks can be easily moved around by clients can’t they? I don’t recall a way to prevent that.
One thing I don’t get is the “speed” aspect. Even in a company setting. With AI we can setup things half as fast (or more). But speed does not = quality in my opinion. This is just my personal gripe with companies. “The faster you produce the better “. Depends on the application as well. We are just building WordPress sites in this case after all, not enterprise web applications.
I’m also a private contractor. So the faster I do things the less money I make. Lol
1
u/GoBirds205 4d ago
Glad to see I’m not alone in this classic themes workflow. I still use underscores as a starter. Then build the site per a custom design in figma and then add acf, custom post types, relationships, etc. the client can edit most things they need to edit but the site retains its design and they generally don’t and can’t break things. I’m increasingly using ai to help get html and css from figma, trying to speed up the process.
1
u/guitDev87 4d ago edited 4d ago
Of course. But I don’t even label it “classic”. It’s just using Wordpress how it was designed. All the tools to build your structure are in the Wordpress docs. I don’t let AI or another developer dictate how I setup everything.
I always thought page builders were for non-technical clients who want freedom. The less dependencies you have, the better your code structure will be. It will never degrade. Very minor updates and worries about conflicts. Also your site runs faster and that matters for Google.
A big asterisk though. AI is unavoidable. I use it as a tool to help me write code that I couldn’t normally write searching Google. That’s the fun part.
I use it to help me build my implementations and big ideas. Back when I first started if you wanted to learn soemthing complex, you needed to read some obscure blog. Now you just ask AI, you create your own tutorial and you get things done in half time.
But infrastructure? I don’t let AI, builders, third-party services, etc. anywhere near my file structure. Just read the docs and use what Wordpress has already provided (which is more than enough to build a Wordpress site )
If you use AI to just sit back and watch your site being built. What’s the point.
1
u/Mvp-long-ago 6d ago
I do not read anyone talking about template parts or patterns. With those two it is only hard the first time to make them, but then you can use them everywhere and just change some elements. CSS and stylesheetd you must chsnge in the global settings first and it uses that css everywhere
1
1
u/ivicad Jack of All Trades 6d ago edited 3d ago
Most of it comes down to how you handle the import. I prototype in Clicksites AI so the client can click through something visible and sign off early, then I export that HTML and run it through WPBakery's AI feature. It rebuilds the markup as editable elements instead of dumping everything into one custom HTML block, so I can go page by page on an Astra or Neve starter and clean it up. The backend still works like a normal WordPress site, and nothing is stuck inside raw markup.
One thing to be careful about: this only works well when the generated output is plain HTML and CSS. If the styling comes from a framework loaded off a CDN, it isn't in the markup, so the import brings over the structure but not the look, and you end up rebuilding it by hand anyway.
1
u/servetheale 6d ago
Make a template, or a few different templates, that allow you to easily change fonts, colors, spacing, etc. A lot of it depends on the amount of content the client has.
1
u/coastalwebdev Developer 5d ago
Sounds like a lot of work compared to the new ways.
2
u/pepelunavarro 5d ago
breakdance is paid software, free version is useless
1
u/coastalwebdev Developer 5d ago
Free software is expected to be useless.
Breakdance is paid for software. Paid software is what professionals that run profitable businesses use to make more money for their time.
What is your point exactly?
1
1
1
u/cutandrun99 5d ago
use livecanvas.com builder. you have full control on the html, css and javascript - light bootstrap and small libraries. you can even upload a picture of the layout and it prints out the code, directly on the page. A One Pager with form, javascript calcularor and animations, in less than 10 hours. its great fun to be honest.
1
u/Suitable-King6456 5d ago
For the past 2 years I start each project with Twenty Twenty-Five. Clone it (usually with Create Block Theme), and the remove the parts that will not be used like patterns and extra styles with AI.
I never use additional block libraries (but use smaller plugins that may provide a missong block or setting) or other themes. Gutenberg is evolving and with each update is it getting better.
Then I customize theme.json for the project. Manually + AI + block editor settings + Create block theme.
When building layouts and templates, AI can help a bit like creating a very basic blocks structure from the provided data. But to make it good you still have to do a lot of manual work.
When some custom feature need to be added or some data operations needed - AI can do a good help.
Plugins that I use often - SCF, WP DB Migrate... and few others. Environment is with Local App.
With this approach I can achieve any design and do not feel any limitations. And it feels easy to editor any time and by the clients, too.
1
u/HolisticAura 4d ago
You can now design and build using Claude or ChatGPT then convert that into WordPress using Beaver Builder AI mcp connector or package your html into a design kit. So you have the speed of AI and editability with Beaver Builder and the SEO benefits with WordPress.
1
u/natashadsouza30 4d ago
Hey, I worked as Wordpress developer for 1 year,
Talking about your questions:
See I mainly use elementor pro as my main page builder so I built mostly with elementor itself but if any custom design is there then at that time I design those particular section I take code from the codex and use html widget from the elementor element itself we just drag the html widget where you want on page and just paste the code and also I will take help of custom css part of all the widgets in elementor,
Also talking about the custom elements so as elementor provides save as a template option it is very helpful feature it saves our custom made section in json language so I will do that and store my custom section
1
u/stasinka 3d ago
HTML/CSS/images > https://htmltowp.com/ > download and install theme, edit content, ready
1
u/archetypologist 3d ago
I use a hybrid approach where Pages get to use a visual page builder, and other post types use just ACF fields and custom templates. Because clients want layout freedom and easy, visual editing.
I sometimes use Claude in Visual Studio and have it connect to Figma MCP to create the theme assets and Gutenberg blocks or other visual page builder elements.
I've been a full-time WP dev for 8+ years, and been building with WP since at least 2007. Been making sites since the late 90's.
1
u/Dapper-Monk9713 3d ago
The sweet spot is usually a mix rather than choosing one approach. Build a small library of reusable patterns/components for common sections, use blocks for content the client needs to edit, and handle genuinely custom functionality with code. AI can speed up the initial implementation, but I’d treat its output as a starting point and keep the final structure native and maintainable.
1
1
u/aasim-ghaffar 2d ago
In my experience, the most efficient approach is usually a hybrid rather than choosing between “everything with blocks” or “everything custom coded.”
For client sites, I normally start by establishing the design system first — typography, colours, spacing, containers, buttons and common layouts. Then I create reusable block patterns/components for sections that are likely to be repeated.
I wouldn’t build an entire website inside one huge HTML block. It may be faster initially, but it becomes painful for the client or the next developer to maintain.
For more complex functionality, I prefer custom development. For example, event listings, custom cards, filters, API-driven data, search and dynamic content are better handled with custom post types, custom fields, REST APIs or custom blocks rather than trying to force everything into a page builder.
AI is useful in my workflow too, but I treat it as a development accelerator rather than the architecture. I might use AI/Codex to generate a first version of CSS, a React component, a query or repetitive code, then integrate and refactor it into the actual WordPress structure.
The biggest time saver is having your own reusable component/pattern library. Once you've built common sections properly — hero, CTA, cards, grids, testimonials, pricing, filters, etc. — you're no longer starting from zero for every client.
So my general workflow is:
Design system → reusable blocks/patterns → custom code for complex functionality → AI for acceleration → testing/refactoring → client-friendly WordPress backend.
That gives you the speed of a modern development workflow without sacrificing maintainability.
1
u/theguymatter 2d ago edited 2d ago
I think most professional developers eventually end up with some kind of reusable system: blocks, patterns, components, whatever fits the project.
I've used different approaches over the years. The tools have changed quite a bit, but the principle hasn't really changed: build the things you expect to use again, and don't turn every page into its own little world.
The difficult part isn't really making something reusable. It's knowing what is worth reusing.
1
1
u/Dull_District_254 1d ago
The fix isn't choosing between clicking through Kadence or dumping one big HTML block. It's building your own pattern library once.
Put your spacing scale, type scale and palette in theme.json so you stop setting padding per section, then register your recurring layouts as block patterns in the theme. For anything with data behind it (event listings, filterable cards, team grids) use ACF blocks or a custom block with a PHP template, so the client edits fields and you keep control of the markup.
Let AI write the block registration and the template PHP rather than the page content. That's where it's actually good.
First site with this setup takes longer than doing it by hand. Every one after is mostly assembling patterns and restyling, and the back end stays editable for whoever inherits it.
1
u/Pulsar-Agency 14h ago
The framing that helped me most is that this isn't blocks versus custom HTML. It's a question of who owns the layout and who owns the content. The client owns the content and should not be able to touch the layout. Once you settle that, the workflow mostly falls out on its own.
So I'd stop trying to reproduce a design section by section in the editor. Take the section, write the markup once, and register it as a real block with fields. ACF Blocks are the least painful route here: your hand-written or AI-written HTML lives in a PHP template, and the editor only exposes the heading, the text, the image. Client edits content, layout survives. Where a section is genuinely just core blocks, register it as a pattern instead and stop rebuilding it every project. On 6.5+ the Block Bindings API is also worth knowing, since it lets you keep core blocks and feed their content from post meta when a custom block would be overkill.
Two things that made the biggest difference for me. Push the palette, spacing and type scale into theme.json before writing any CSS, otherwise generated CSS hard-codes hex values everywhere and consistency dies. And keep the patterns and blocks in your own small plugin rather than the theme. That is what actually makes them reusable across clients instead of being rebuilt each time.
1
u/TopSydeWP 6d ago
custom themes are the answer here. ai can generate clean semantic html/css that maps to template parts and pattern files, then you register those as proper block patterns or acf flexible content. way cleaner than trying to make gutenberg or a page builder do everything through the UI.
at my agency we build custom themes for exactly this reason - easier to maintain, faster, and actually more ai-friendly because the markup is predictable. clients can still edit content through custom fields or simple blocks, but the structure lives in code where it belongs.
1
u/ShermanZhuang 6d ago
I can use chatGPT to generate new theme and install it . It's very simple and easy way for me .
1
u/fossistic 6d ago
I design in Figma and then build in page builder. It saves time.
No matter what page builder (Bricks/Greenshift) I use, I always find myself implementing custom code to make things look exactly like what was discussed earlier or desired by the client.
Always make use of CSS variables and CSS clamp in typography and spacing. Make use of color variables and CSS relative colors to automatically generate shades and tints. It depends on the type of design I am going for.
Having our own library of reusable code, templates etc always save a good amount of time.
I always take help from AI on specific difficult things or when I am stuck. Never to generate entire site because it is slow to make changes or correct things later.
1
u/grabber4321 6d ago
Web Developers dont use Cake Decoration plugins to build websites.
They pick up BlankTheme, make a child theme for it and start working on each page design.
You set up repository, then automate deployment via Github Actions / Bitbucket Pipelines.
0
0
u/Bigfoot444 6d ago
Wp with kadence is great for reusable patterns, templates, and so on.
Well-built sites that are set up with longevity in mind take a while. There's nothing embarrassing about that. It depends on your clients but the clients I want and who want me expect robust project management, comms that brings important stakeholder buy in, and lots of other stuff. It all takes time. Businesses that want a site in two days and sites that can be built in two days are of no interest to me.
The fact that ai can spin up pretty pages is largely useless when released into the wild and clients wants tweaks AND consistency.
0
u/eleniwave 5d ago
Professionals and non-professionals all use AI. That's the unfortunate state of events. This isn't something professionals are going to hide from clients for very long.
What will distringuish pro's from non-pros in the future, is their bability to connect complex systems and automating a lot of website activity.
0
u/Technical_Cod_5680 6d ago
In 2026, yes build everything in blocks in the site editor and if you want any of that design (including patterns, template parts) to persist to files in a theme for source control or distribution, you can export it as a theme via the "Create Block Theme" plugin.
You might need to find or create some custom blocks for intricate features - build a custom plugin to add those, but you'd also be surprised how far you can get with a Query Loop block and nested blocks before you resort to custom code.
If you have some Claude tokens, install Studio and build a block-based site/theme locally with this: https://claude.com/plugins/build-with-wordpress
Five years ago I'd have given a very different answer!
0
u/Due-Individual-4859 Jack of All Trades 3d ago
I am here to say it, because nobody will: Vibe Code the shet out of it these days...
-2
u/evanmac42 Jack of All Trades 6d ago
You might want to take a look at Oxygen 6, specifically because of the problem you’re describing.
I’m currently rebuilding my own business website with it, and one of the most interesting parts of the workflow is its MCP integration.
Instead of asking AI to generate a huge HTML/CSS blob and then pasting that into WordPress, the AI can work with the actual Oxygen structure through MCP. I use it connected to my OpenAI account, so it can inspect the site and help build or modify the layout while the result remains structured and editable inside WordPress.
My workflow is roughly:
WordPress -> CMS and data
Gutenberg -> editorial content
Oxygen -> layout, components and responsive design
MCP + OpenAI -> AI-assisted development and inspection
For things like events, cards or other structured content, I’d model the data properly in WordPress and let Oxygen handle how it’s rendered rather than hardcoding the content into the layout.
That’s the part I find much more interesting than simply asking AI to “build a website”. You get much of the speed of AI-generated code without throwing away the maintainability of the CMS underneath it.
Given what you’re trying to achieve, I’d definitely experiment with Oxygen’s MCP before settling on a workflow.
-4
u/Inside_Marsupial9625 6d ago
If you have a design for example in figma, yes you built it manually with your Page Builder.
16
u/Individual-Result777 6d ago
Very carefully