If you’re a WordPress developer, you probably do most of your work in test environments. That way, you can tinker with your plugins, themes, and sites all you want without breaking anything for real. The only question is, which local WordPress development tools are the best fit for your needs?
Choosing a setup can get complicated, because there are a lot of options available. More importantly, your workflow will vary depending on your pick, so it’s important to know what your options are and what features they offer you.
In this article, we’re going to introduce you to five of our favorite local WordPress development tools, including:
We’ll tell you how they work, and compare their ease of use, features, and prices. Let’s get this show on the road!
Why it’s crucial to choose the right local WordPress development tools
Learning to code is hard enough, and searching for help online doesn’t always steer you on the right path.
But even taking that into consideration, local WordPress development tools are still something that even complete beginners to WordPress development can benefit from.
Implementing changes in a live environment without testing them beforehand is a recipe for disaster. Should one of your updates break your site, you’ll have no option but to restore it from an earlier backup, or try to fix the problem manually.
Either way, that’s time during which your website isn’t working as it should, and users may notice the problem.
That’s why a lot of seasoned WordPress developers prefer to use either local or staging environments for testing purposes. Both tools can accomplish the same goal, but they’re not quite the same. Local environments, for example, can only be accessed from within a network, and you don’t need an internet connection to set one up or work with it. Staging websites, on the other hand, are set up on live servers, which makes them better for performance tests.
In this article, we’re going to focus on local WordPress development tools. If you don’t yet have a favorite solution, here are some of the features you’ll want to keep an eye out for when picking one:
Finally, it’s important to note that if you’re part of a development team, you’ll want to consult with them before making a decision. After all, chances are the entire team will end up using one tool, so you’ll all have access to the same set of features. When every member of your team using is different local development tools, the result can be a logistical nightmare.
Five local WordPress development tools compared (in a nutshell)
We have a lot of ground to cover in this post. So if you’re looking for a quick comparison, take a look at the following table:
|DesktopServer||XAMPP||MAMP||Vagrant||Local by Flywheel|
|Does it use virtual machines?||❌||❌||❌||✅||✅|
|Can you set up multiple WordPress websites?||Up to three (using the free version)||✅ (with some tinkering)||✅ (with some tinkering)||✅||✅|
|Is it easy to use?||✅||Moderately difficult||Moderately difficult||Moderately difficult||✅|
|Does it enable you to set up different types of environments?||❌||❌||✅ (to a degree)||✅||✅ (to a degree)|
|Can you start and stop websites at will?||❌||✅||✅||✅||✅|
|Does it help you map domain names to local websites?||✅||❌||❌||❌||✅|
|Does it include a dashboard you can use?||✅||✅||✅||❌||✅|
|Price||Free and premium versions available||Free||Free and premium versions available||Free||Free|
If you think you can make an informed decision based just on this information, feel free to stop here. However, we encourage you to keep reading, so you get a clearer idea for what each of these tools can offer you.
Five local WordPress development tools compared (in full)
When it comes to local WordPress development tools, there are four main aspects you’ll need to consider:
- how they work,
- how easy they are to use,
- what features they offer,
- their price range.
If you compare each of the tools using those criteria – which is exactly what we’ll do in the following sections – you’ll have all the information you need to make a smart choice. Let’s dig in!
DesktopServer is a Windows and macOS tool that enables you to create multiple local WordPress websites using a simple step-by-step wizard. Despite the fact that there is a free version of the tool, you still need to register to download it, which is a small price to pay.
As far as ease of use goes, local WordPress development tools don’t get much simpler than Desktop Server. When you set it up for the first time, it will install all the software it needs to power WordPress locally. Then, you can re-run the program each time you want to create or delete a local WordPress website.
Throughout the creation process, you can choose which version of WordPress to install for your site, as well as assign it a domain name.
Overall, DesktopServer offers a functional experience with very few frills, but that’s not necessarily a bad thing. If all you’re looking for is a simple tool that works reliably, this can be a solid option.
🧰 Key Features:
- Includes a wizard to help you set up new local WordPress websites.
- Enables you to map domains to your local sites.
- Lets you duplicate or delete your sites at any time.
- Makes it possible to manage up to three local sites, using the software’s free version.
- Supports Apache, MySQL, and PHP 5.5.
When it comes to features, the free version of DesktopServer is slightly limited. There are plenty of local WordPress development tools that offer more powerful features to help you manage your sites (which we’ll cover shortly), although they can sometimes be overkill. As far as limiting factors go, we’d say the biggest disappointment is the fact that DesktopServer only supports a single type of environment: an Apache server running PHP 5 and MySQL.
To be fair, a lot of WordPress websites use that same environment. However, as a developer, you may want to have more control over yours. If that’s the case, you’ll need to check out a different option.
So far, we’ve only talked about DesktopServer’s free version. There’s also a premium alternative, which starts at $99.95 per year. For that money, you get access to several extra features, including support for Multisite, the ability to export and archive your test setups, and an option to create WordPress ‘blueprints’.
That last feature enables you to store specific setups, and then use them to deploy sites faster. For example, if there is a handful of plugins and themes that you like to set up on each of your sites, you can create a blueprint of that configuration and store it for later use.
A DesktopServer premium license also entitles you to updates during the whole year. Plus, you can use a single license for several computers, which makes it a decent option for teams on a budget.
This particular local development tool comes in two flavors: regular XAMPP and XAMPP-VM.
The former just installs the software we mentioned earlier in a directory on your computer, whereas the latter sets everything up on a Linux Virtual Machine.
The regular version of the software is available for Windows, Linux-based systems, and macOS. XAMPP-VM, on the other hand, is just available for macOS. With that in mind, we’re going to focus on the regular non-VM version of XAMPP for this comparison.
What XAMPP does is set up a software stack on your computer, but it doesn’t help you install WordPress. The platform offers a few standalone installers for various Content Management Systems (CMS), but we’re more partial to doing things manually.
If you’re the same, then here’s what’s in store for you when it comes to installing WordPress with XAMPP.
For starters, you’ll have to set up the stack and check to make sure all the services are working. Then, you’ll need to create a database for your WordPress site, download the CMS’ latest version, unpack it, and configure a couple of files manually. Only then do you get to run the WordPress installer, and you’ll still have to map your new site to a domain you can remember (if you want to).
🧰 Key Features:
- Lets you set up a software stack including Apache, MariaDB, PHP, and Perl.
- Provides the option to chose from multiple XAMPP versions, depending on which PHP release you want to use.
- Offers a VM-based local WordPress experience, if you’re a macOS user and download the corresponding version.
- Enables you to use a simple dashboard tool to manage all your new services.
- Makes it possible to set up WordPress manually, or use a standalone installer (if you want to).
As a developer, you may appreciate that XAMPP enables you to get your hands a bit dirtier in comparison with tools such as DesktopServer. In this case, you get full control over each of your stack’s components. For example, you can start and stop your Apache server at any time with a couple of clicks, or map the service to different ports. You also get access to detailed logs and more.
XAMPP provides you with a perfect environment to run WordPress, but it’s not a service that’s tailored to the CMS. That means you’ll need to tinker with some options just to set everything up. Furthermore, things get a bit complicated if you want to use XAMPP to run more than a single WordPress website simultaneously. It’s probably nothing you can’t handle – but it’s more work than using a tool designed with WordPress in mind.
Overall, XAMPP offers a fantastic level of customization that enables you to do almost anything you want, It’s not a great tool for beginners, however, and it isn’t the simplest solution to work with.
XAMPP is a 100% open-source package. There’s no premium version with hidden features, so you’re free to use it in any way you see fit.
In many ways, My Apache, MySQL, PHP (MAMP) is very similar to XAMPP. It’s also a software stack that enables you to create WordPress websites (and any other type of site).
The process of using this tool also works just the same as with our previous pick. You set up the stack, create a database, and then go through the motions of setting up WordPress manually. With that in mind, let’s focus on what the biggest differences between both stacks are.
First off, MAMP is available only for Windows and macOS. There are multiple versions to choose from for each operating system, depending on which version of PHP you want to set up. Plus, you also get access to a lot of additional software, including Python, Perl, phpMyAdmin, and more.
In practice, this translates to more options when it comes to creating local websites and applications. As far as WordPress goes, however, chances are you won’t need to use any of that software. However, they’re some nice extras to have, just in case you work on other types of projects that need them.
The biggest downside to using MAMP versus XAMPP is that the former doesn’t offer standalone installers for popular applications such as WordPress. To be fair, that’s only a limitation if you don’t like to set up websites manually. If that’s the case, you’re probably better off using a more streamlined tool anyway.
🧰 Key Features:
- Enables you to set up an environment based on Apache, MySQL, and PHP.
- Lets you use different versions of the software, depending on which PHP release you want to set up.
- Supports a lot of additional languages, including Python and Perl.
- Provides the option to set up local WordPress websites manually.
When it comes to features, MAMP offers a bit less control over each of your environment’s components than XAMPP does. It also comes with its own dashboard, but it provides fewer options. This difference – on top of all the others – makes it an excellent choice if you’re looking for an easier tool to manage. You still get access to nearly all the same features, but MAMP is simpler to get used to.
Throughout this section, we’ve only focused on MAMP’s free version. However, there’s also a premium option available. It starts at $59 for both macOS and Windows, although the former gets more regular updates and better support.
MAMP Pro provides you with a lot more options, such as the ability to set up Nginx servers, a mobile testing tool, and a built-in editor. If you and the rest of your team are macOS users, all these features make MAMP a strong choice out of the many local WordPress development tools available.
So far, we’ve covered several local WordPress development tools that are pretty similar. Now, it’s time for something a bit different.
Vagrant is a tool that enables you to run multiple virtual machines on your computer, and use them as environments for your projects.
If you’ve never used a program like Vagrant, you might think that sounds like too much trouble.
After all, you may have heard that you need a very powerful computer to run multiple virtual machines. That is somewhat true, but it also depends on what you want to use those machines for. If we’re talking about local web development, then the system requirements aren’t as steep.
Furthermore, Vagrant makes the entire environment setup process a breeze. After installing the software, you can go ahead and download one of the many pre-configured ‘boxes’ its community has already created. If you want to install the perfect WordPress environment with a few clicks, you’ll have plenty of popular boxes to chose from. Chances are, you’ll find one offering exactly what you need.
You can also provision your own virtual machine, and use the command line to set things up exactly as you want them. Then, you can share your environment with every other member of your team. That way, you don’t all have to fiddle with configuring software and stacks the same way – Vagrant does it all for you.
Finally, we arrive at the most important difference between Vagrant and tools such as XAMPP or MAMP. With the latter, you always run the risk of installing a piece of software that disrupts your environment’s setup. After all, you’re using your own computer as a server. With a tool like Vagrant, each environment exists separately within your computer. That means you can have a server running Nginx and another with Apache on two separate Vagrant machines, and not run into any issues.
So far, Vagrant probably sounds like a strong option. That makes sense – it’s one of our favorite tools, too. You don’t have to take our judgment at face value, though. Here’s a quote from Primož Cigler, a full stack developer and CEO of ProteusThemes, about his love for Vagrant:
CEO of ProteusThemes
When it comes to my favorite local WordPress development environments, I have two, actually. Both of them are virtualizations managed by Vagrant. This alone is important, because it allows me and the whole ProteusThemes team to have a consistent development environment on different machines and OSs.
The first one we use as the main development environment for the themes we develop. It’s a modified fork of the roots/trellis project. It’s running an Ubuntu 16.04 nginx + mariadb + php-fpm stack.
The second one I use more and more frequently is the Wocker. It’s docker-based WordPress development environment with tools like WP-CLI built in, and it allows for rapid prototyping, creating fresh WP installations without any side-effects within 5 seconds, and switching between these instances easily. Overall, it’s a great tool for testing out new features, themes, plugins… without polluting your ‘standard’ dev environment. It’s like having unlimited local, fresh, disposable WP instances available at any time.
One of the limitations with tools such as Vagrant, however, is the fact that large file systems can take a while to sync between your host computer and its virtual machines. But, that’s a problem you’re not likely to run into, except when working on massive projects.
🧰 Key Features:
- Enables you to set up virtual machines for your local development needs.
- Lets you configure each VM to your specifications, and share them with other people.
- Provides the option to download pre-configured boxes and run them as you want.
- Helps you keep your test environments separated, and turn them on and off at will.
- Makes it simple to manage all your VMs using the command line.
So far we’ve mentioned using the command line twice, and there’s a reason for that. Vagrant is an entirely command-line based tool that’s available for Linux-based systems, Windows, and macOS. There are no fancy interfaces or dashboards this time around, however – it’s just the command line and you.
If you have experience in web development, chances are you’re comfortable using the command line for most of your day-to-day tasks. On the other hand, learning the necessary commands to use Vagrant isn’t all that complicated. If you’re not familiar with the command line yet, you shouldn’t let that stop you.
Vagrant is a free, open-source project. This fact, combined with all its other features, makes it a fantastic option for both solo developers and teams. Even if you have the budget to purchase premium local WordPress development tools, chances are that Vagrant can do the job better.
5. Local by Flywheel
None of the local WordPress development tools we’ve covered so far are what you might consider overly user-friendly. DesktopServer is the one that comes the closest, but it’s let down by an archaic interface.
The others are powerful, but they’re not particularly easy to use if you don’t have a background in development.
That’s why we’ve decided to round things off with Local by Flywheel.
We’ve already written about Local by Flywheel in the past. Back then, however, it was only available for macOS. Now, both Windows and macOS users have access to this solution, and it’s still one of sleekest local WordPress development tools around.
The biggest draw comes from Local’s easy-to-use interface. Setting up a new website is as simple as clicking on a button, and then choosing a few basic configurations.
During the process, you can choose from Nginx and Apache servers, as well as two versions of PHP (5 and 7). Furthermore, you get to map your new local website to a domain right away. Once your site is set up, you’ll be able to access it from a simple list that includes all your other projects. Clicking on any of them will enable you to review their settings, access their database, navigate to local directories, and more.
There’s even an option to create live links for your local websites, which means you can share your progress with teammates or clients. Overall, Local by Flywheel offers by far the easiest experience when it comes to local WordPress development. It may not be as powerful as Vagrant, but it makes up for it thanks to its accessibility.
🧰 Key Features:
- Enables you to set up local WordPress websites with a few clicks.
- Lets you monitor the status of all your existing sites from a list.
- Provides the option to access your sites’ dashboards, databases, and local directories with a click.
- Makes it possible to create live links, to share access to your local projects.
- Offers the option to set up blueprints, to easily deploy WordPress websites using the settings you prefer.
When it comes to features, everything that Local by Flywheel offers is tailored towards WordPress sites. Suffice it to say, Local is a joy to use if you’re a WordPress enthusiast. It may not offer as many customization options as Vagrant, for example, but they’re two entirely different tools. Whereas we’d recommend Vagrant more for professional teams, Local is perfect for smaller outfits and projects with less strict requirements.
Local by Flywheel is an entirely free tool that’s made possible by the WordPress managed hosting company Flywheel. There’s also a premium version in the works, but details about it are scarce at the moment. Overall, it’s one of our favorite local WordPress development tools.
Not all local WordPress development tools are made equal. The one you choose will have a large impact on the way you work. If you’re part of a team, it will affect everyone you’re working with as well. That’s why it pays to do some research into what options are out there, and the benefits each solution can offer you.
Let’s recap our five favorite local WordPress development tools, and what makes them each unique:
Do you have any questions about how to pick the perfect tool for your local WordPress development needs? Let’s talk about them in the comments section below!
Don’t forget to join our crash course on speeding up your WordPress site. With some simple fixes, you can reduce your loading time by even 50-80%: