Thanks to the internet, the way some of us work has drastically changed as a lot of us are able to work on a freelance basis – whether on site or remotely.
This can be a great thing, as it offers freedom for us to work how we want. But it also means that we need to be disciplined and learn how to conduct business efficiently. While there is no one-size-fits all plan of attack for freelancing, I’ve learned a lot along the way.
Here are some of the things that have helped me as a freelancer who’s worked with many clients and a host of agencies:
1. Communicate
As with most situations that I have come across in life, I have found that communication is crucial to successfully working as a freelancer. This holds true for the entire duration of the project – from initial contact to the launch and beyond. In the early stages of the project you should let the client know exactly what it is that you plan to do, and how you will do it. Be clear and be specific.
Whether you use project management software or just email and phone, let the client know that the door for communication is always open. If questions, concerns, or just general thoughts pop up throughout the project, all parties should communicate them with the others.

Set the right expectations
2. Set Realistic Expectations
In the early stages of the project, you should outline a solid plan. I like to deliver an outline with my contract. This plan should include what you will be doing, and what is required from the client.
Clearly list all deliverables on each side. Don’t forget to let the client know exactly what you will need from them and when you will need it. Most importantly, be realistic. It can be tempting to say “yes” to all client requests, but this isn’t good for anyone.
In my experience, it results in an overworked developer and an unsatisfied client. Instead, address any concerns that you may have as early as possible.
3. Know Your Client, Know Your Surroundings
While you may use similar tools and methods on all of your projects, no two clients are the same. You should do research about them and their business.
Not only will this give you a better idea of what the finished product should be, but it will also give you insight on working with the client. What makes them tick? Are they casual? Corporate? While the deliverables may be the main focus point, I have found that the process is a lot easier for everyone if a solid working relationship is formed.
Which leads me to my next point…
4. Appearances Matter

Time management
A lot of us have been spoiled with remote work. While everyone may be able to look past the stain on your “Code is Poetry” t-shirt at WordCamp, the client whose website you are building may not. Whether we like to admit it or not, our appearances do matter.
I am NOT the type to wear a suit, and I may only own a handful of shirts that actually have buttons, but in some situations it doesn’t hurt to wear one of them.
5. Remain Professional
This extends beyond just your appearance. It extends to the way you carry yourself, the emails you write, and beyond.
I am in no way trying to say not to have fun with your work, but just remember that everything you are doing is a reflection of yourself. We’ve all had tough clients. But learning how to handle them is key.
There have been times when I’ve really wanted to hit “Send” on a not-so-polite email message, only to be very grateful in the end that I thought better of it. Some projects suck. Learn from them. And don’t let them ruffle your feathers.
6. Have Confidence
It’s important to have confidence in yourself and your craft. Your average client doesn’t know what a developer does, and they may overlook the role completely. It’s important that you let them know what you do. And don’t understate it!
The client came to you and is paying you for your time AND your expertise. You’re providing a very valuable service to them – don’t forget that!
7. Charge Correctly For Your Time
This one took me a while to learn. I’ve had projects that I’ve charged far too little, and I’ve had projects where I’ve probably charged too much. The first was probably due to the fact that I wanted to appease the client or stay within a specific budget. In retrospect, I could have easily taken a pass on those projects that had a limited budget. Instead, I was overworked and underpaid. But I learned.
The latter, was due to me trying to compensate ahead of time for extra time spent on a project. While being slightly overpaid isn’t the worst problem to have in the world, it did let me know that I needed to go back to the drawing board for my estimates.
At the risk of sounding redundant, the most important part of this process is communication. If you see yourself going over budget, let the client know as soon as possible and ask how they would like to handle it. Likewise, if you find yourself coming in under budget let the client know as well. It’s bound to make them happy.
On most projects now, I use three general rates for freelance work. One rate is for development. This includes any actual code that I am writing. My second rate is for project management. This is what I use for tasks such as emails, conference, calls, etc. My third rate is for on site meetings and onsite work.
This isn’t bulletproof, and I generally make adjustments on a per project basis, but it has provided me with a solid foundation for pricing.

You have a life too! Say ‘no’ when appropriate!
8. Learn How to Say ‘No’
When I got my first job in the creative industry I was taught that the client was always right. Since then, I have learned that this is not true. Sometimes the client is wrong. Sometimes the client makes ridiculous requests. And it’s your job to let them know when this happens.
Don’t be scared to say no. And explain to them your reasoning.
9. Follow Up, Maintain a Relationship
I’ve seen freelancers and agencies alike build a WordPress site for a client and communicate well throughout the process. Then, after the site goes live and final payment is received, there’s no more interaction. The client is still unfamiliar with their new site, and they don’t use it to its full potential.
Update notifications add up, the client uses the site less and less, and they are unsatisfied. To avoid this, have a followup plan, and…

Sit down and teach them.
10. Teach Them How to Use Their Website
I’ve used a lot of different methods to accomplish this, but with the same goal in mind each time – Get the client comfortable working with WordPress. While we may be able to fly through the WordPress Dashboard without a second thought, most people don’t have that familiarity. But they can.
WordPress is very user friendly, but there is a learning curve involved. Personally, I like to walk the client through the various processes that they need to do to maintain their website. I also supply them with documentation including step by step instructions and screenshots. Mark Jaquith’s WP Help plugin has been great to work with for this purpose.
You should also discuss how you want to handle WordPress core and plugin updates down the line. You can negotiate ongoing maintenance in your initial contract, or for the more tech savvy clients, you can teach them how to update their site correctly.
Finally, Learn What Works for You
I realize that throughout this article, I constantly tell you to do things. In actuality, these are simply things that I have found help me. Everyone is different, and over time you will find what works best for you. Do you agree? Disagree? Have additional tips to share? I’d love to hear.










Great article Ryan and a good reminder on some necessary basics.
Being a designer or developer is great but its easy to forget that we have to be business people as well to make a living. That being said, 2 and 8 are my biggest weaknesses.
Hey Josh,
I think those are the two that I struggle with myself. I like to solve problems, so when a client asks for something I want to respond, “Yes, of course I can!” However, I’ve taught myself to step back before immediately saying yes, analyzing the request, and seeing if it fits into the original scope of the project or not. If it doesn’t you can always tell the client that you’d be happy to work on the new request, but since it wasn’t in the original scope that it will probably take you an addition X amount of hours, resulting in $X more in final payment.
Thanks for reading, and thanks for the reply!