When I first started building websites with WordPress I tried various methods to simplify the process.
I made changes online on the fly and would regularly break things, and without any nice backup or maintenance strategies I would become very frustrated with the whole process.
For hosting I started with one click installations of WordPress via cPanel through cheap shared hosting, then I moved onto custom Linux servers hosted on Digital Ocean.
While the above methods helped me learn quite a lot of new skills with Linux and the ins and outs of WordPress installations, I found I wasn't spending much time actually building websites.
I started looking around at Website Development workflows, in particular, how Website Agencies built websites. I even travelled over 1,000 kms to my nearest capital city to attend a WordCamp event to network and learn from the pro's.
I learnt the following about the methodology of deployment for a WordPress Developer:
Development: Using a local installation of WordPress on your computer, a new website is designed, built and tested offline.
Staging: The locally developed WordPress website is uploaded or “Pushed” to an online Website that is a different URL to your main production website. This staging website can be viewed by the client and any online testing of the website can occur.
Production: The staging website can be “Pushed” to the Production website when ready to be accessible to the internet and search engines.
I found a couple of options to replicate the above process that didn’t need a Software Engineering Degree to understand or use.
They included WAMP, XAMPP, and DesktopServer by ServerPress. Each option worked OK, but I still found that I would be messing around with settings, or spending $$$.
Additionally to this I also had to find some not-so-cheap plugins that could sync a Staging website with a Production website, but found the plugins processes to be clunky and sometimes painful. Especially to my wallet.
That’s when I discovered Local by Flywheel.
What a game changer!
A free WordPress development environment for my computer that not only looked slick, was fast, functional, had one-click WordPress installation, demo URLs, free offline and online SSL support!
This meant that I could get back to the process of actually building websites.
So now I was sorted for the Local Development side of WordPress Website building, but what about Hosting the sites?
At that time I had left my self managed hosting and was using Siteground as they offered free one-click staging websites with a plan. Then 12 months rolled around and bam! The price of hosting jumped around 300%! That's a hard NO thanks.
For less than that price Flywheel offer Managed Hosting plans, with a few extra perks.
Simple Dashboard: Say goodbye to cPanel! Their dashboard perfectly blends form and function, whether you have one site or 100.
Push/Pull Staging or Site Cloning with Local: Local by Flywheel is designed so you can easily sync with their managed hosting. One-click “Push” of your locally developed website to a staging or production website, or one-click “Pull” to download the staging or production website back to Local Development on your computer.
Demo URLs: If you want to show off your work to a client and you haven’t pushed it online to a staging or production website, you can enable a demo website with one-click and send them a link.
Custom Domain/URL: Easily switch between the Flywheel Demo URL and your own Custom URL.
Blueprints: Package up common themes and plugins as starter sets for future projects.
SSL Certificates: They include free SSL certificates which work offline and online, and can be enabled by one-click.
Backups: For maintenance and backups, they take daily or on demand backups of your website. It just takes one-click to restore if you do have issues with plugins or break something.
Secure: Flywheel goes to great lengths to ensure that each and every site hosted with them is secure, fast, and always up-to-date. They implement server-side protection, configured using WordPress security best practices, proactively scanning and blocking malware and hacking attempts. This also means you don’t have to install security plugins which can slow your site down. Here are a list of plugins they actually don’t allow as they are redundant.
Secure File Transfer Protocol (SFTP): Log into the Flywheel SFTP server, and you’ll see all of your sites in one place, neatly arranged according to owner. Have access to a thousand client sites? That’s not a problem for this neatly organized interface.
Caching & Performance: They handle caching for you at the server level, and Flywheel support can work with you to help optimize your sites even further. This also means no need for additional caching plugins.
Managed Software Updates: They monitor WordPress core updates and pay attention to whether they will cause issues with your site as part of the process. If it does, they either fix the issue or roll back to a previous backup snapshot.
Website Migrations: If you are not sure how to migrate your site or sites to Flywheel, they can do it for you for FREE.
Expert Support: They have an excellent support team that respond within minutes. On one occasion I even sent them a beer tip when they helped me out with some issues I was having. One day i’ll get to Omaha for a return beer:
How to use Local
So you want to use Local? This is how I use Local to create a website:
Head here to download Local for Free.
Select your operating system, Mac or Windows. Fill in the following information, or at the minimum, an email address and the number of websites you would like to build.
Local v3.04 Windows (Inc. VirtualBox v5.2.20) Installation
Local can only be installed directly onto a Windows OS, as it will not install correctly in a VMware Windows 10 Virtual Machine.
Once the download has completed, open the installer.
Select “Yes” to the “Local by Flywheel” User Account Control popups as follows:
Local has a dependency of VirtualBox which is required to run a virtual machine for Docker.
Select the “Let’s Go!” button.
Select “Yes” to the “VirtualBox Interface” User Account Control popups as follows:
Installing Local inside a Windows x64 Virtual Machine with VMware Workstation
As of Local v3.04, this is where a Local installation will fail if installing inside of a VMWare Windows 10 Virtual Machine - even if nested virtualization has been enabled.
Once installed, open Local via the shortcut:
To create a new website, select “Create a New Site”:
Enter a name for your site, then select “Continue”.
Example: I have called mine “Test Site”. You can open up the Advanced Options drop down and see how your local URL will look like, and change where the Local Website files will be stored. More advanced users can create sites from pre-built Blueprints here.
Now select your environment, leave this at “Preferred” unless you are an advanced user and need a custom version of PHP or MySQL. Then select “Continue”.
If you use the preferred option you will later be able to use the one-click“Connect to Flywheel” hosting.
Next, choose a WordPress Username, Password, and Administrator Email address for your new site. Advanced users can select the “Advanced Options” drop-down to enable WordPress Multi-Sites. Then select “Add Site”.
It is good security practice to choose a Username that is not Admin or Administrator, and the Password should be 64 characters randomly generated by a Password Manager. I recommend 1Password.
Local will download and then install a WordPress development environment on your computer.
Once this is complete you will see the following Dashboard:
Local Dashboard Features
“Admin” Button - The Admin button will open a browser window to the WordPress Administration login.
This is where you enter in your Username and Password you created above, you will be taken to the WordPress Dashboard.
“View Site” Button - The View Site Button will open a browser window where you can view the test website locally on your computer.
“Database” Tab - The Database tab displays information about the sites Database. For advanced Users, you can connect and edit the Database by selecting the “Adminer” button.
The “Adminer” button will open a browser window to display the Adminer Database editor.
“SSL” Tab - The SSL Tab displays information about the Security Certificate installed with your site.
Select the “Trust” button to allow your local site to bypass secure connection warnings on your computer, removing any nagging warnings while developing.
“Utilities” Tab - The Utilities tab displays information about “Mailhog”.
Selecting the “Mailhog” button will open a browser window for the Mailhog application. Advanced users can use Mailhog for email testing from a site before going live.
“More” Tab - The More tab displays a “Stats” page which displays CPU and Memory usage of your local site.
“Dev Mode” Toggle - Dev Mode can be turned off to disable caching of your local site. This means when you make changes, you will see them instantly in the Browser when developing.
“Live Link” - By Enabling Live Link, you will create a Live URL for your site which you can send to clients so they can view the local website you are working on. This works only while you are connected to the internet and Local is running.
“Start Site” and “Stop Site” - Each Local site on your computer is running on a Virtual Machine inside of the Local program run time. When you open the Local program by default a Site is stopped, press “Start Site” to start the virtual machine which will allow you to edit and view your local site. Local will automatically Stop all sites when you close Local.
The Add-ons directory is a relatively new feature that Local have recently rolled out. The idea is to allow developers to build more powerful customization tools to enhance their Local Workflow. Currently there are a couple of extensions, I have installed the Stats extension.
Sign up to Flywheel Managed Hosting
To get the full experience of using an excellent WordPress Workflow with Local and Flywheel, I recommend signing up to a Managed Hosting plan.
They offer solutions for Freelancers, Agencies, High-Traffic sites, and In-House Teams.
The following pricing options are available:
For Agencies and Enterprise users, the following extras are included with your hosting plans:
CDN: For an extra fee, you can add MaxCDN Content Delivery Network to eliminate the need for Caching plugins. I personally use Cloudflare as it is free, but still requires a plugin.
Multisite: For Agency or Enterprise Users, they offer Multisite WordPress Installations.
Billing Transfers: If you’d like your client to own the hosting account while you maintain access to the site as a collaborator, you can use Flywheel’s “Transfer Billing” feature. When you transfer billing, your client will receive an email asking them to complete billing on the appropriate site. Your client will be the site’s “owner” once they’ve paid.
Team Collaboration / Organisations: You can easily invite the client, freelance developers, or administrators for individual sites as Collaborators. This means no need to share login credentials! They have the ability to create new sites, push changes to production, or request billing. Plus with the real-time activity feed, you’re always able to know who’s working (or not) on what.
White Labelling: White Labelling requires a Bulk Plan and is an available for an extra fee, but offers personalized branding so you can use your own Logo and company name and customised client subscriptions and service packages. This can be for anything you want, and then you can bill your clients monthly, quarterly, bi-annually, annually, or a once time fee using automated billing.
If you do decide to sign up and like what I have written above, here is my personal referral link.
Local with Flywheel Managed Hosting
If you have signed up to Flywheel's Managed Hosting, you get the ability to use the following features with Local.
“Connect to Flywheel” Dashboard - In the Local Dashboard, select the “Connect to Flywheel” button on the top Left Hand Side.
Select “Log in to Flywheel”.
A browser window will appear, enter your Flywheel Username and Password and select “Sign In”.
Select “Log in to Your Username”.
A popup will appear asking to “Open Local by Flywheel”, select this.
Once you are logged in, you will see your available websites currently hosted on Flywheel inside the Local App.
You can select “Pull to Local” for any of your projects, and they will be downloaded to your computer.
Once you have downloaded a project into Local, the following button will become available to you:
- Pull From Flywheel
“Pull from Flywheel” - The Pull from Flywheel button is used in conjunction with Flywheel Hosting. Once you have connected to Flywheel, and you have selected a project you have already hosted in Flywheel, you can select “Pull from Flywheel”.
As an example, I have selected a Test Site to Pull from the Hosting to a Local site as follows:
Even if you have no projects in Flywheel, the following button will be available to you:
- Push to Flywheel
When you select “Push to Flywheel”, your local site will upload to your Flywheel Hosting account.
As an example, I have selected a Test Site to Pull from Flywheel Hosting to a Local site as follows:
View your Pushed site Live on Flywheel Hosting
Once you have pushed a site to your Flywheel Hosting account, you have the option of viewing the live site.
Login to your Flywheel Hosting via https://getflywheel.com/login
Select a site, and under “Domains” you will see a URL of your new site based on the following formula:
You can select that URL and it will open your site in a new browser window.
Set a Custom Domain name (URL) for your Live site in Flywheel
In my next post, I will show how to set a Custom Domain name (URL) for your site instead of the Flywheelsites.com URL.