The #1 Best WordPress Theme Development Environment for macOS

In this Article

I will show you two different solutions for a local WordPress Theme Development Environment for macOS and How to set them up. I will also point out my personal favorite and why I chose it over the other solution.

Motivation

Soooo… Why do I share this?

For my client projects, I build custom WordPress Themes. And to do this, you need some sort of local development WordPress Theme Development Environment for macOS, where you can test things out and see if they work or not. I mean – you could also do it without, code blindfolded and test in production. But this is a very bad practice. Wouldn’t recommend.

So back to the story… Recently, I was developing a theme, when my MacBook notified me, that there is an update for macOS Sonoma 14.1.1 available. As my concentration was going to an end anyway, I accepted my faith and updated my macOS.

BUT… When the update was done, and I tried to start my local development environment again – it was not working anymore.

For the nerds: I was using docker-compose with a database and an Apache server with 2 volumes assigned for the theme and a plugin that I was developing. But the Apache server was crashing when I tried to access the website in the browser. Immediately. And after a short period of time, my database was also crashing and rebooting in circles.

So… What is the Best WordPress Theme Development Environment for macOS?

After a huge amount of trial and error, googling, asking ChatGPT for fixes and asking a friend I gave up and went to sleep. The next morning I researched for alternatives and I am honestly so glad that this happened to me, because what I found then is way better than my previous environment. I present to you:

Solution: Local Development Environment with LocalWP

LocalWP literally saved my ass. It is unbelievably easy to install, understand and use. And it has such great features! Here a quick overview:

  • Start a WordPress server with 3 clicks
  • Much faster than docker (on my machine)
  • Create a funnel to the web, to show your clients the current state of the progress – with one click!
  • The WordPress files are stored locally, you can just open the whole thing in your code editor directly
  • Create blueprints for new projects
  • And the best: It’s FREE!

So this is great. I used it for a while now and as I said, I am happy that docker failed on my machine. Because otherwise I wouldn’t ever looked for another solution. I think.

LocalWP - WordPress Theme Development Environment for macOS

How to get it?

You can easily go on their website and download it for macOS or any other OS you want to.

You can also create a free account, to access all of the features. But also without an account, you have all necessary features to start developing.

download LocalWP here

How to use it

Once you installed it successfully and (optionally) logged into you free account, you should see something similar to this:

LocalWP - WordPress Theme Development Environment for macOS - Application

Obviously, you won’t see any sites there at your first start. But the rest should look similar.

So now what you do is click at the button in the bottom left corner and the first of three configuration pages pops up.

LocalWP - WordPress Theme Development Environment for macOS - Create a new WordPress Page

Here you can select a blueprint, if you already created one. You could also import a backup of another LocalWP or live website, to create a clone locally and work on this site. Here is a video that shows how: YouTube.

After the next to screens, where you input the name of the project and set up the admin credentials, you are good to go. The website is created and you see the admin screen of your new local WordPress site.

LocalWP - WordPress Theme Development Environment for macOS - WordPress Site Dashboard

And this my friend is the most useful screen ever. In the Bottom you can see “Line Link”. When you click on “Enable”, it will create a tunnel to the web, which you can send your client and show the current state of the website. And all this for free and with just one click!

In the top section, you can access the site folder, where all the WordPress files are included, by clicking on the green button “Go to site folder”. Here you can create you theme folder and open it in VS Code or your preferred code editor.

On the right side you can easily open your site in the browser or jump directly into the WordPress admin backend.

And I tell you – all of these features combined are such a charm. And on my MacBook M1 Pro it is just unbelievable fast. I never go back to docker.

Okay – now you are ready to develop! But if you still want to choose docker now – here comes the alternative solution with docker-compose, which led me to frustration. But maybe it works for you.

Alternative: Local Development environment with docker-compose on macOS

As my previous solution worked quite good before the update, I also want to share it with you. Its also very easy to set up – especially if you already use docker. Or at least have it installed already.

So basically what I did was:

  1. Install docker (if not already done)
  2. Create docker-compose.yml with the code below
  3. Assign volumes for every theme and plugin you want to create
  4. Run docker-compose up -d

Aaaand you are good to go.

So here is the docker-compose.yml file I used:

version: '3'
services:
  db:
    platform: linux/amd64 # or linux/arm/v7, depending on your system
    image: mysql:5.7
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: somewordpress
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress

  wordpress:
    platform: linux/amd64 # or linux/arm/v7, depending on your system
    depends_on:
      - db
    image: wordpress:6.3.1-php8.0-apache
    ports:
      - "8000:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
      WORDPRESS_DB_NAME: wordpress
      WORDPRESS_PHP_INI_UPLOAD_MAX_FILESIZE: 64M
    volumes:
      # add this file in one dir up
      - ./theme:/var/www/html/wp-content/themes/my-theme/
      - ./plugin:/var/www/html/wp-content/plugins/my-plugin/
volumes:
  db_data:

Conclusion

Development can be frustrating sometimes. But with the right tools, it can be so much fun. When I started with WordPress Theme & Plugin development, it was more comfortable to use the tools I already knew. But my learning from this is, that it makes sense to look out for other solutions. It can save you some hours of frustration and could be so much more fun.

So have fun and use LocalWP for your local development environment!
(I don’t get money for this btw, just personal experience)