Running a Freelance Web Development Business
WARNING: This post is long and will lead to future posts

Why this Article:
It occurred to me there are countless websites dedicated to teaching you how to code and how to pick a web designer/developer, but almost none to teach us how to run a web site development business. I believe many of us stumble into the business by accident rather than choosing it as a career path. So while our hobbies and interests in the computers eventually lead us to doing work for others we have not prepared to actually be in the service of others. Therefore in this and future articles I will describe what I have learned along the way, mistakes I have made, and my vision of the future for the freelancer who merely loves building websites. Keep in mind I am not a small business expert, accountant, lawyer, nor coding guru.
Making the leap from building websites for your own use vs a client.
It starts so innocently. You build that first website to meet a personal need to show off your art, blog your thoughts, or set up a forum so a bunch of your friends can chit-chat about a common interest. You pour countless hours into it to make your site perfect and learn a little HTML, CSS, Javascript, and PHP along the way. You may even decide to build a second or third site, just for fun.
Then it happens. Someone approaches you to help a friend build a website and they are willing to pay. It is at this point the business begins and you have to make some quick decisions and assess your skills before jumping all the way in to working for someone else.
First Meeting with the client
Now that you have your referral in hand you arrange to meet with the potential client at the local starbucks or their place of business. You listen to clients ramblings about new media, their potential for growth, the 500 page website they will have one day, and that they currently only need 3-6 pages but have no budget to hire a design firm. In other words they want you to work cheap to make their dream come true. You interact during the discussion expressing your familiarity with some of the features they want based on sites you have built in the past and what you have seen on the internet. You take vigorous notes about the features you are not sure how to code or implement. [My first real client wanted not only a 20 page website but eCommerce storefront, a blog, a forum, and a user/data driven application. I can not tell you how terrified I was.] The client does not have much content written yet, nor artwork beyond their logo, but seems to be in a hurry to get it all done. The client usually will give you a list of websites he likes and elements he would like to emulate.
At the end of the meeting the client will usually indicate what he is willing to pay or ask you for a quote. Your response needs to be carefully thought out and you should not convey an answer until you have a clear idea how long it will take you to implement the clients desires. Politely indicate your need to assess and organize the requirements further and that you will be in touch within a day or two with an estimate.
By now you are painfully aware you have no idea how many hours you will spend on this project, no pricing policy, you have some coding skills to develop, software to research, no standard contract to offer, nor experience to help you provide the estimate to the client.
Jumping into the unknown.
So you take all the info from the first meeting and determine that you can do the work, though the sites he gave you to look at have nothing in common other than the color green. You look at his puny number of pages requested and pick a dollar figure out of mid air. $10 a page first comes to mind, no wait that is only $40 for the whole site and you know from your personal site development experience that you will spend at least 40 hours on this project plus time spent with the customer. You have also been eyeing the lastest upgrade to Photoshop CS3 and Dreamweaver for a mere $400. So you pick $200.00 just to split the difference.
Armed with your new pricing policy (with no real basis in time and effort) you fire off an email to the potential client with your offer. The client thought it was going to cost him $500-1000 so he is relieved and jumps at the chance to “help you develop your business”. Then he adds in a couple more requirements, like he expects you to find him graphics or come take pictures of his products. No problem, you own a digital camera. (Do you feel the pain yet? ). You, being a savy business person, indicate you will charge an extra $25 for doing so. If you are really savy, you find an online contract and modifiy it for your needs then send it to the client to make sure you get paid. If not, the clients handshake and recommendation from the friend was good enough for you. Client agrees and work begins.
The first drafts
You eagerly go and upgrade your versions of Photoshop and Dreamweaver, spending your fees in advance. Based on your first meeting and the second site the customer gave you as a reference you set about creating the visual design and layout. Your first attempt may be very rough so you create a couple more with refinements to show the client, using Lorem ipsum for filler text. You email these to the client and wait for his response. Three days go by and you get no feedback, So you send a second email asking if the client received the first drafts. Client responds immediately indicating he has received them and will get back to you shortly. The client that seemed to be so gung-ho get-er-done 4 days ago is now holding you up and is creating fear in the back of your mind that you are not really ready to do work for other people.
NOTE: The clients timetable will not be the same as your timetable for getting the project done. If the two of you are in synch consider it a gift from God.
Day 6 the client indicates he likes design 2 better than 1 and 3 but sends you 5 more websites he likes, especially number 1, and would like you to try creating something like that, and that he needs to be able to sell products online and collect credit card numbers. So you look at the back end code for the requested site and realize that you can not duplicate Amazon.com with its massive scripting and data driven content. So you seek to focus on the layout and positioning of elements to create a similar look. You change the color scheme to blue orange and white and create a couple new mockups for the client to evaluate. You also start researching how to add a shopping cart and how to deal with credit cards. Fortunately for you there is opensource PHP shopping carts similar to the forums you ran so you can feel somewhat confident you can add it in. [WHEW].
Day 8 the customer indicates he likes what he sees and sends you the home page content and a request to add a long form to the contact us page which should output not only to his email but be stored in a database for future reference. He doesnt know anything about databases but his friend told him it would be a good idea. His friend, who recently spent $1000 to have his 3rd blackhat google arbitrage site created, now enters into all decision making.
You add the clients data to your template and correct a few spelling mistakes and make some gramatical changes to make the clients hurriedly written content to fit the box you have alotted for the home page. You play with various font sizes and margins to make sure the important stuff is above the fold and looks nice. The coding is starting to gel, and you tackle the form on the contact us page, borrowing code from whereever you can find it. (Thank you to all those of you who post solutions to the web).
Hosting and Domains
You send the temporary functional link to the client so he can preview your work. Not 2 minutes later the client is calling you and asking why you are developing on yourdomain.com instead of hiswonderproduct.com. You ask him if he has the domain information and indicate you will transfer it over to him. It is at this point the customer indicates he registered the domain name but does not have a host provider. He expects you to find him one, and does not indicate whether he is willing to pay for the hosting or expects you to pay for it out of your $225.00 quoted. So you agree to do the research and get back to him.
The host you used for your domain works just fine and seems to offer easy installment of ecommerce applications and has multiple MySQL databases to use for other requirements. And is only $95.40 per year. So you call the client back and recommend ABC host. The client says ok and indicates you should set it up for him then he will reimburse you the $95.40 when the site is complete. About 10 minutes goes by and the client calls you and indicates that his friend doesn’t like ABC host and would prefer he use a windows based host provider which runs $195.00 per year.
Now your plans for the PHP opensource eCommerce platform will not work, and the simple mySQL databases are now a more complex SQL Server or MS Access, neither of which you have any experience. And since you just maxed out your credit card with purchasing new software you really can’t afford the $195 up front. At this point you decide to inform the customer he does not need XYZ and that it would be a waste of his money and describe the difficuties you would encounter. He agrees and you decide to use LMNOP-host which seems to have all the features you need, the low price, and meets the friends requirements. (Can you guess how many hours that exercise used up? )
Mental note: For future clients have a set of hosting recommendations.
To