A Few of my Favorite Web Tools
This is my list of the tools I most often use in web development at this point in time. The majority of them are produced by small developers who have proven to be very responsive to bug reports and feature requests.
While my web development toolset tends to evolve over time, I've been using BBEdit since I stopped using FrontPage nearly 20 years ago. It doesn't have the bells and whistles of some of the other editors out there but it's got some serious power under the hood, particularly with it's multi-file regex search and replace. What's not to like about a product whose motto is "It (still) doesn't suck."
The Terminal app that comes with MacOS certainly gets the job done but iTerm2 offers much more. The feature that I utilize most frequently is the ability to split a window into multiple panes and run different SSH sessions in each one. I've got a saved profile that connects to my server and has three panes, one running "top", one with a scrolling display of what's happening in the https access_log, and another to issue shell commands in.
Being a solo developer I went for a very long time without using any source control software. Now that I've started using Git I don't know how I got along without it. I started using Git via the terminal but then discovered Tower. There are many things that I find are quicker to accomplish in the terminal but when I got to the point where I had multiple development branches going simultaneously, I found that having a GUI was a huge advantage. Tower is really just a way to interact with your Git repository so you can use Tower or the terminal, Git doesn't care.
When working with databases on servers I'm comfortable using the mysql linux tool, but like Tower, Querious is useful when you've got complex work to do. Also like Tower, Querious is just a front end to mysql. It creates an ssh session, issues commands, and gives you a GUI to work with. One particular feature that makes it more efficient than using the terminal is that you can peruse a table and in the results you can immediately change a column in the results. That saves having to craft a query to update a row based on the results tha mysql gave you.
You might have detected a pattern here with apps that provide a GUI to functions available in the terminal. I started out on the Apple ][ and moved on to DEC's RSTS/E and VMS operating systems so I kind of grew up on the command line. I've also been a Mac user for 27 years so I also appreciate a well designed user interface. SQLEditor is another example of a task that benefits from a good GUI. When designing or modifying tables in a complex database it's very useful to be able to see the relationships between tables. After you create tables in Querious you can copy the SQL code and paste it into the Linux mysql app.
If you are developing a static HTML site on your local machine you can simply open up the HTML file in a web browser and it will work just fine. If you are developing a PHP site then you need a local web server. MacOS comes with support for this out of the box but you're limited to the version of Apache, PHP, MySQL, etc. that are bundled with whatever version of MacOS that you're running. With MAMP you have control over what versions you want to run and where your document root is located.
I've used a lot of different FTP apps over the years and most of them are pretty clunky, which YummyFTP is decidedly not. YummyFTP has a "smart" transfer mode which looks at the dates of the files on your computer and the server and figures out what needs to be uploaded. It can also Sync your local files and server files which will result in the most recent files on each to be uploaded and downloaded respectively. I often use it's DIFF hooks to bring up the local and server file in the BBEdit Diff tool so I can see what's going on. Most importantly it supports SFTP transfers, which is far more secure than standard FTP.