I’ve been doing web development for many years now, and over time I’ve discovered a few tools that make my life easier. I’ve used these in personal projects and recommended them to others, and I thought I’d share them here. While I’m a web guy, most of these can quite easily be used for other types of projects as well.
To begin, tools for managing the development process:
Beanstalk (SVN)
SVN is an obvious requirement for any company doing development. The problem is, SVN takes time to set up and maintain properly, and smaller companies just can’t afford to spend this time taking care of it. Beanstalk provides a simple solution to the problem with off-site SVN server hosting, but the real beauty is not in just the stock SVN server – Beanstalk have a great web interface to enable you to manage your repositories and users/permissions, as well as see the latest activity in any repository and browse the source tree. The web UI also allows you to easily diff revisions and download files at specific revisions, and you can configure Beanstalk to send you emails for every commit in pretty HTML format with a full diff. With it’s reasonable pricing and great features above and beyond standard SVN, you really can’t go past it.
16bugs (Bug Tracking)
16bugs has a few bugs itself, but overall it is a great, simple, ‘web 2.0′ style bug tracking system. 16bugs has a fairly basic feature set when compared with some of the more mature products like Trac, but its hosted, web-based nature makes it a snap to maintain.
Google Sites (Wiki)
Google Sites provides a great, simple wiki solution. Sites was created out of Google’s purchase of Jot, and while I prefer the layout of the Jot version, Google Sites is almost as good. Both products take care of the core feature set for a wiki. I’ve used MediaWiki and PmWiki for various purposes in the past, but they can be a pain to set up and I’ve really only used the most basic features of them, which Google Sites easily takes care of.
The key thing you will notice about the above is that they are all hosted solutions. In a small, fast-moving company or for personal purposes, hosted solutions are often the best option to cut down on the time needed to maintain the various systems. Had I not already vested myself in the above, I would have loved to have checked out Assembla, which groups all these things into a single product (SVN, wiki, and Trac for bug management). Though if I did go with Assembla, I’m sure I would miss Beanstalk’s great web UI.
Now, a couple of tools for the development itself:
Aptana Studio (IDE)
Originally based on Eclipse, my IDE of choice for the web is Aptana Studio. Aptana Studio was built for developing AJAX web applications, includes code highlighting and completion for HTML, Javascript, and CSS, and has plugins for PHP and Ruby on Rails. Plugins are also available to ease development for AIR applications and the iPhone.
MacFUSE (Remote Access)
Google’s MacFUSE, cutting through the highly technical descriptions, is a way for you to mount a bunch of file systems on your Mac computer. I use it to mount remote file systems on development machines via SSH, meaning I can work within my home directory on the server as if it was just another locally connected hard drive. This is invaluable when you don’t have a totally self contained local development environment, saving you the effort of having to transfer files back and forth to the server.
In a similar situation? What are your tools of choice?