This is a long post. If you’d rather just get to the meat, here are the services I use to run my web development business for next to nothing.
Being a web developer is one of the easiest and most flexible jobs one can take up. You can learn it yourself with minimal effort, you can do it from virtually anywhere, and – if you can find the work – it pays pretty well. I have in the past helped friends learn how to do this, and I’m proud to say they’re now successful web developers themselves. This article won’t teach you how to become a web developer, but it will show you how to run a web development business for next to nothing.
Getting work
The first step involved in running a web development business is finding the work. I’m not going to go into huge detail here, but there are tons of ways to get business. It can be as easy as looking up the web dev jobs available on Craigslist and other job sites. I look at mine on a daily basis. Most are offering full time jobs, but many are looking for independent contractors that need one project or just someone to help with any spillover work they might have.
It’s good practice to develop a rapport with different agencies in your area. Look into partnering up with ad agencies, development firms, any kind of business that might need your services. It might also be helpful to sign up with talent agencies that will sell your services for you and charge an extra fee to the client. I’m currently registered with Aquent.
It would also be helpful to make yourself known in the development community; visit monthly gatherings and attend conferences. Barcamp, for example, is free and has netted me business in the past. Often times just mentioning what I do for a living at any social gathering evokes requests for my business card.
Managing projects
Once you’ve closed a deal, it’s time to get started. Ideally you want to use some kind of project management software to keep your client up to date on the project’s progress without having to muddle through endless numbers of e-mails.
There are a lot of popular services out there that handle different aspects of project management; Basecamp for collaboration, Beanstalk for source control, Lighthouse for issue tracking. All of these services cost money, and that can add up quickly.
I do all three for free using Mercurial and Bitbucket.
Mercurial is a distributed version control system. Basically, version control is committing your work to a repository so that you can log all of the changes you’ve done and revert to a known sane copy if necessary, regardless of what happens on or to your local machine. This not only saves tons of headaches down the road, but it allows clients to see every commit and progress over time.
There are other version control systems out there, Subversion and Git being the most popular, but I prefer Mercurial because it just works. You can learn how to use Mercurial from the command line, or use a GUI front-end to ease the process for you. I personally use Murky, though many prefer MacHg. They’re both free.
Bitbucket is a web-based service for Mercurial projects. A client could, for example, login to Bitbucket and add any tickets with bugs they want fixed or features they want added. You can then work on it and commit changes that are tagged back to those tickets. You can also maintain an active wiki with any information pertinent to the project.

So once you’ve got your account set up, what next? Well, here’s my workflow:
A client is happiest when there are open avenues of communication, even if they don’t take advantage of it. They might not care to know everything you’re working on at every moment, and might never even log in, but the peace of mind of knowing they’re not getting ripped off is good enough.
Development
The most important thing you need are the tools for the job. Luckily for you, most of these are available for free. I’ll list my own setup, but this is entirely subjective and I’ll offer some free/cheap alternatives.
I work exclusively with the LAMP stack and use MAMP (free) to create a local host for testing. Whenever I start a new project I create a new virtual host, usually something like “domain.dev”, and all of my development is done locally until which time I deploy it remotely for testing.

I mostly use BBEdit ($49) but occasionally also use TextMate (€39) for editing. Why do I use two text editors? They each have essential features the other lacks and are better suited than the other for certain projects. There are also great free alternatives out there like TextWrangler, jEdit, vim, and Eclipse.
For database management I use Sequel Pro (free). It’s leaps and bounds better than using phpMyAdmin or the command line. It’s especially great for importing and exporting data in a variety of formats.

For file transfer I’ve been using Transmit ($35) for the better part of a decade. The latest version lets you mount FTP shares as volumes on your desktop. This lets me work with remote files in apps that don’t normally support it. For free alternatives, try Cyberduck and MacFusion.

And finally, I’d like to mention one bit of free software that has brought me the most lucrative business in recent years: Drupal. I’ve been using Drupal almost exclusively for over three years now. There is very little I haven’t been able to make it do, and for rapid web deployments there isn’t a better free system out there.
Hosting
Web hosting is the only bit that actually costs money. In truth, $10/year is a promotion that you may not be able to get. I’m referring to the 777 discount that Dreamhost occasionally makes available. For less than $10 a year you get a free domain and a free year of hosting; 92% off their regular price. You could then theoretically use the free domain and hosting to build your company’s website.
In fact, that’s exactly what I’ve done. Earlier this year I switched from a considerably more expensive host to Dreamhost and have not had any issues thus far.
One nice thing about Dreamhost is they make it easy to set up Google Apps for Exchange-like services. All I had to do was sign up for a free Google Apps account, check a few boxes within Dreamhost’s control panel, and I had push e-mail, calendaring, and document sharing services hosted under my own domain.

Phone Service
To give your business a more professional feel you could also add a business line. This can also be done for free using Google Voice.

I have a local Google Voice number that is then forwarded to my cell phone, and if I can’t or choose not to answer, it goes to a business-oriented voicemail message instead of my personal voicemail message. I can even choose to have different voicemail messages depending on the person that calls. You can use this to create client-specific voicemails with project status or your current availability.
Google Voice also lets you redirect calls to a Gizmo5 account, which allows you to receive calls over the internet. You can be traveling anywhere in the world and clients could still reach you at your local number or leave a message for free. This is what makes Google Voice great; you’re not tied down to any one carrier.
Accounting
Now we come to the most difficult part of running any kind of business – getting paid. I’ve been using Freshbooks for all of my time tracking and invoicing needs since 2006, and I couldn’t be happier with them. To date, I haven’t paid them a penny for their services. I would be happy to, but their free option serves me perfectly fine. Because I was an early adopter my account has a few more features than their current free offering, but it should still suffice for most small independent developers.

When I work I track my hours using their Dashboard widget and submit it to Freshbooks, usually with references to milestones, issues, and changesets from Trac, and at the end of a given cycle I generate one of their beautiful invoices and e-mail it to the client. They can log in, view and print estimates and invoices, and even pay online.

For an added bit of convenience and professionalism you can add a merchant account in Freshbooks so that clients can pay via credit card when they receive their invoice. This feature is free, but credit card processors will charge you 3% per transaction. A cheaper way to go is PayPal Business Payments, which doesn’t accept credit cards, but only charges 50 cents per transaction regardless of the size of the invoice.
Freshbooks is a pretty great service, and I’m always surprised at all the new things they’re adding and give me access to for free.
Profit!
So that’s about it. This is my current workflow for finding, doing, and charging for work at almost zero cost to me. I’m thankful for all of the freely available services out there that make it easy for me to make a living.