Local development is not about physical location, co-working space, supporting a café in the vicinity by having their sandwiches while working on client site, or locally sourced software. Developing locally means you host files of your site locally on your PC than externally, such as on the server of a hosting company.
Most developers prefer a development environment where it is possible to work on his/her own sandboxed local server combined with the tools they feel most comfortable with. This type of development environment ensures minimizing risk of destroying or influencing the work of other developers. It ensures 100% control over configuration of server environment combined with full access to any log files required during the process of debugging and development.
Reasons you should work on the local environment at a glance:
– Independent sandboxed environment
– Zero risk of colliding with co-workers
– 100% control on environment configuration
– 100% access to server log files
There are numerous options available in a local sandboxed server environment. You may either use a server sandbox that’s preconfigured such as Mamp on Mac OS or Xampp on Windows. These are easy to install. You can also enjoy a fully functional working server stack right out of the box. Vagrant is a perfect choice if you want more control over the server environment. Natively shipped Apache is the best option for Mac users.
The Best Practice – Reasons
Let’s assume you are working very hard on a website of a client. Now this client may request for a fix. Although they might assume it as a small fix, it might demand editing some code. While plugging along, the website in the browser, appears as nothing once the new code is entered.
Now what would you do? Would you like to work on a live client site? This might mean you are receiving phone calls every five minutes saying their customers are unable to access the website and you must fix this as soon as possible! Or would you prefer working locally? This will help you troubleshoot without any disturbance. This makes local development the best practice available. It helps you avoid a broken live site.
There are a number of reasons to develop locally. When it comes to day to day running of your business as one of the experienced freelance web developers, a local development environment will keep you from a number of hassles. Whether it is about working out the design of the site or code without letting your client know until you really want to solicit feedback, this environment helps. There’s absolutely no need to waste time precious time in listening to your client’s suggestions or fix certain things that you already want to edit.
Sometimes, your client may want their old site to be up for their customers until the new one gets launched while you’re working on the redesigning part of their live site. The client may also look forward to avoid paying for hosting while you work away on the website building for months. In some cases, you may like to try out a new plugin but not sure if it will clash with your theme.
Working locally makes it very easy to handle things, especially when you get into the actual programming work. Since local sites are considerably faster to work with, there’s no need to get an internet connection. You can avoid the fluctuations of SFTP especially where you require uploading files constantly to the live host for viewing each change. The best option is version control with git. It helps you create branches for the following:
– Try out variations
– Testing new code
– Merging working code
– Roll back changes
It is possible to set up several sites your computer space can handle because you are not paying anyone for hosting local sites. This also means you have option to test new themes, plugins, and several new bizarre ideas on the dummy sites. Since no internet connection is required, you may work offline without spending on Wi-Fi.
In case, you have a live website that demands updates, it is possible to get a copy of the website down from live to the local environment. Thereafter, you can work on change sans any impact on the live site. The changes can be uploaded to content or files later.