I am an experienced, solo web developer that has created a couple of full-stack websites for a variety of clients. I am well versed in JS, PHP, HTML, and CSS. I have a non-tech-savvy client who has a strong preference for a WordPress website because of familiarity.
Given that I have no experience creating a website with WordPress, I am a little bit lost on what would be the best workflow for someone of my experience level. Clearly WordPress seems to be tailored towards the ‘minimal-code crowd’, but I prefer to have total freedom over my implementations. Many people seem to recommend things like Kadence or ACF Pro, but I like to keep things ‘vanilla’ and make use of the core functionalities.
Because of this, I am looking for a good workflow that will ideally be a bit of initial set-up time, but speed up any consecutive projects. I have thought about creating my own blocks theme. But I still have the following questions:
1. Should I create a complete blocks theme from scratch? Or should I create a child theme from, say, a twenty-twenty-four theme?
2. Is there a way to limit the capabilities of a user? Gutenberg seems to be giving users a certain freedom which surely will cause unwanted changes.
3. What is a good way to transfer a design to WordPress theme? Start within Gutenberg, and add custom CSS classes as I go? I’d prefer to create a website with something like Tailwind, and convert that to a theme.
4. Any other tips for a solo dev whose clients are small to medium-sized businesses?

Create themes from scratch using the Underscores starter theme with SASS. I would suggest to develop the theme with Gutenberg blocks from scratch (npx @wordpress/create-block block-name), so each section to be a Block. First create the blocks with minimal variables (for example just a title, description, image).
I also suggest not using any css framework at all.
If you want I can do a call with you for free and explain things.
For developer questions, you can ask in this subredit as well: [https://new.reddit.com/r/ProWordPress/](https://new.reddit.com/r/ProWordPress/)
I use webpack to preprocess scss to css and compile js. This allows me to write ES6+ JS, utilize JS modules, automatic asset minification, etc. For more information, check this guide: https://nasiothemes.com/how-to-configure-webpack-with-wordpress-for-theme-development-the-right-way/
* 1. Underscores (block theme) and Blockbase (FSE) are good starters
* 2. Use ACF or Pods
* 3. https://roots.io/sage/ for Tailwind
* 4. GeneratePress(Premium)+GenerateBlocks+ACF/Pods are good enough for this target.
Would recommend checking out https://roots.io/sage/ the entire roots ecosystem is robust.
You could look at Flynt theme.
Something like ACF or similar is probably going to be a requirement for your project
https://underscoretw.com/
ACF pro
I’ve never heard people talk about Underscore etc until reading reddit. It might be worth hearing out the opinions of designers turned dev. They don’t get it all right, but all I hear is elementor and they do some slick work. I think if you’re not working with a good designer, you will end up doing the same old design you always have regardless of the other tools you use (that is my mileage anyway).