I would like to share with you what programs I use to do my web development. These are my main set of programs that I have used over the years as a full-stack LAMP developer. Even after being in this profession for a good 15 years, I still use these programs as they still hold up very well. In pretty much every case, each program is free to download and use. This is why I use them because there is cost and they do everything just as well as paid options. There was nothing that I could not do with these free programs so I had no need to seek other alternatives. These are very popular programs that everyone uses. I do want to go through each other and tell you what I like about each program. I will also describe what each program does and what purpose it serves in web development. I have the programs listed in alphabetical order to make them easy to find.
BitBucket: Code File Repository
Proper web development is usually done with version control, which is used to not only store your code files online, but keep track of changes. As developers, we should just focus on application development and not have to remember what finds were changes, in what folders, on what dates, for what purpose. This is a lot to manage and this is why version control is so important. BitBucket is an online server that houses all of the files for your websites. Later on, I will talk about SourceTree, which is a program that provides an interface to interact with the files stored in BitBucket. When you have all these files stored in BitBucket, you have what is called a repository. A repository is just a single place to hold all your files. When you want to make changes to those files, that is done using SourceTree.
I like BitBucket because it is free and has support for SourceTree. The other major repository is GitHub. I have always used BitBucket and have not really tried GitHub, so I cannot say that BitBucket is better than GitHub. My theory is that if something works just fine then there is no need for an alternative. So I have just stuck with BitBucket and really like it and it is simple to use and it is easy to keep files in-sync with my local environment and other staging or live environments.
Chrome: The Best Web Browser with Very Good Free Extensions
I discussed the history of web browsers and how Google Chrome became the most popular. In that article, I talked about how I liked being able to easily inspect elements on the page and also the free browser extensions. This time I would like to talk a little more about how Chrome really helps me with my web development. Today, since Chrome captures about 66% market share, most of my time is spent in Chrome. Since both Chrome and Safari use WebKit, there is not much significant difference between the two browsers. Safari is the number two browser after Chrome. So this means that most front-end development in Chrome will most likely be compatible with Safari. The only browser that you might have to do some extra work with is Internet Edge/Internet Explorer. Since no one really uses Edge, putting time into Edge would not be worth it. According to this article, it looks like Edge does use Webkit, but its market share is too small to really worry about. Before when Microsoft Internet Explorer (IE) was still being used, I had to do a lot of browser compatibility. That meant that I had to write specific CSS to make the design look the same in different browsers. It was mainly everyone versus IE. Now, browser compatibility has been replaced with responsive design and I spend my time now writing CSS media queries where now it is mobile versus desktop.
FileZilla: Uploading and Download Files Via FTP (File Transfer Protocol)
When I am not using version control to make changes to a website, I use FileZilla. This is good when you have a website that is not under version control and want to make changes to it. Very simple program, just connect to a server with an account and I can upload and download files. Of course, this is only for changes related to code files. Any changes that are inside a database are usually modified directly on the database or using something like PhpMyAdmin. This is the main FTP that I use. I have used another FTP program called WinSCP. I just keep using FileZilla because it is easy and I can easily import and explore my list of websites in case I change computers or need to grant additional users access. FTP programs are very basic so I do not have much to say here except that FileZilla is what I like.
MAMP: Running Your Website Off Your Computer
This one is very important for web development as it allows you to quickly develop on your computer without actually needing an online server. MAMP is a web server that runs both Apache and MySQL on your computer. This is what we usually call “local” because this web server is running directly on your machine. In application development, we usually have at least two servers, sometimes three. Those servers are local/testing, staging and live. How code files move from one server to another is usually in that same order. Local gives us a place to test out changes before they make it live. We typically would not want to modify a live server directly because a website with traffic will show any modifications that you make to users. So this is dangerous as making changes directly on the live server could produce errors or cause unintended consequences that could affect users. We definitely need MAMP to test new changes and revert them if they do not work now. I have also used XAMPP before in the past that worked just fine when I was first getting into web development.
Notepad++: Still My Favorite Free Text Editor After So Many Years
A lot of web development involves coding so this is where I spent a lot of my time. So when I was looking for a good text editor, I believe that this was someone’s recommendation. I just wanted something that was of course free and just worked. When I used Notepad++, I think that was just good enough to get things done. I like how you can change the language and the editor color codes everything for you. Not saying that other editors do not do this but like I have said, if this one works and costs nothing, just use it. I also use the search in files feature to look for specific code words in files. A lot of times, it is not writing the actual code that is difficult. Often times, what is hard is finding which files to modify. So I just search for the files until I find what I need. Sometimes, the changes need to be made in the database. If the changes to be made are contained in the file, once I find the file, I can finally make changes. Another thing that I like about Notepad++ is that it does not try to auto complete your code. I prefer to write out the entire syntax because I want to make sure that I remember the names of functions and what parameters they take in. If you rely on auto complete too much, then you start to forget what functions are called and not only what parameters they take in, but the order also. Since development is very exact and precise, I want to make sure that I still remember what things are called and not forget them.
PhpMyAdmin: Administer Your Database Straight From Your Browser
Depending on what web hosting you are using, you may or may not have access to PhpMyAdmin. Most current web hosting places offer CPanel for Linux/Apache based systems offer something similar to CPanel, which is basically a place where you can manage and administer your website. If you use MAMP or XAMPP, then you run PhpMyAdmin off your local. I like using PhpMyAdmin because it is lightweight and runs off your browser without needing to download and install another program. I do a lot of data import and exports, sometimes directly to the database without the assistance of a WordPress plugin. Depending on the size of the database, doing data imports directly via PhpMyAdmin can be lengthy. Also be careful and always either export the database or copy the database prior to import. You always need a way to restore the database or do a rollback in case of a database import failure. If you are looking for a program that allows you to administer the database outside the browser then you can try HeidiSQL. I still mainly use PhpMyAdmin for almost all database work. Sometimes importing or exporting data can be slow since PhpMyAdmin runs off the browser. In those cases, I use HeidiSQL since it seems to run better and can handle larger databases better than PhpMyAdmin.
PhotoPea: The Best Free PhotoShop Alternative
I found this great free alternative to PhotoShop called PhotoPea. I talked about how great PhotoPea is in this article. Something I really like using PhotoPea for is to annotate and markup screenshots when creating reports. I actually found PhotoPea to be better than those paid Chrome extensions that are very limiting and not even close to being as good as PhotoPea. Just a couple points to highlight from my PhotoPea article is that this is very lightweight, running off your web browser. No installation required and no large programs taking up your valuable hard drive space. Also, PhotoPea works out great for someone like me who does a bit of light design when needed. I found no functionality missing in PhotoPea that would make me want to use PhotoShop. So I highly recommend PhotoPea when you need to do some small graphic stuff or need to annotate screenshots.
SourceTree: Easy Way to Update Your Repositories
SourceTree is pretty much just a graphical interface that allows you to make updates to your repository without having to worry about which files were changed and when. Branching off the master, or main version of your repository is truly a blessing when tinkering with trying new things. Branching lets you create a version of what is currently checked out. With branches I can make changes and if I like them, I can merge them back into the master branch. If I do not like the changes then I can either leave the branch alone or delete it and keep the branches clean. In order to keep the repository updated, I just pull changes from the origin or remote server. So there is no need to download any files via FTP and wonder how many changes have been made since I last touched this repository. When I am done with my changes I just push them up to origin. So SourceTree really helps me with keeping all of the files tracked so that I can focus on development.
I gave you a list of the main programs that I use for my web development, all free. I supposed paid options could work also but again I never saw a need for it. I am perfectly happy making these free versions work. If I ever need to do something new, I just look online and see if what I am using is capable of doing what I need. I try really hard to make the most of what I already have instead of just “upgrading” to a paid version. Many times, we are only using just a small fraction and have not yet unleashed the full potential yet. So I really encourage you to spend more time learning how to fully use free programs. You should only use a paid version if needed. This has been a central theme of this website and I hope that it is something that you can take with you.