When transitioning from a day job to full-time indie hacking, freelancing can be a helpful way to keep the lights on. I did the whole quit-my-job-and-start-a-company-cold-turkey-with-no-MRR-like-a-crazy-person thing a while back. It didn't work out well for me. 😅
If I did it again, I'd make damn sure that I had validation (by way of MRR) before quitting, and I'd get some freelance clients too before quitting to take some of the monetary pressure off of the project.
After that failure, I didn't go back to gainful employment — I started freelancing. And now I spread my time between freelance (75%) and my own projects (25%).
How freelance can support you and your product
If you're not sold here are the best parts about freelancing to keep the lights on.
- Money in your pocket (duh)
- Extends runway
- Less stressful than being broke
- Decreases poor product decisions that people make when they need money in a hurry
- Way more flexible than full-time employment
- Scales up and down easily, according to how much time your project demands
- Full control over the types of projects and people you work with
- Great for networking
- You'll learn a ton from your freelance projects
- Scratches the social itch
- It can be a lot of fun if you really love the freelance projects
The downside? Less time to work on your project, compared to doing your project full-time. And compared to being employed, you lose those beautiful bennies (insurance, paid vacation, 401K, etc.). Those are the only downsides I see, as long as you do it right…
But that's the key… doing it right.
How to do freelancing right
Set the stage
Before you start looking for clients, it's important to get your ducks in a row.
- Show off your expertise: Blog, start a newsletter, post on Twitter, etc.. You want a paper trail of your expertise so that potential clients can find it while they're doing their homework. But don't let this delay you — you can get a client without it.
- Set up a portfolio: Most applicable for designers, but this applies to everyone. Set up a personal website where people can see your work.
- Set up an LLC: It protects you and allows you to set up a business bank account, which will make your life easier.
- Niche down: Figure out what niche you want to work in. Don't just be a web developer. Be the privacy-focused SaaS developer.
- Get clear on what you do: What do you offer? What don't you offer? Don't be the person who takes on everything. Specialize and stay in that lane.
- Productize: When getting clear on what you offer, I strongly, strongly recommend considering productized services. It saves you time, and them money. And if you need any more incentive, check out the journey of @brettwill1025 whose productized services bring in over $1MM per year… and he works alone.
- Get clear on who you work with: Think about your clientele. For example, do you work with indie hackers or Fortune 50s?
- Set a base rate: Check out what full-time employees are making per year. And don't forget to include the benefits, which tend to be roughly 30% of the salary. Divide by 2087 (the average number of work hours per year) for an hourly rate. Or just check what other freelancers are charging on marketplaces like Upwork. Don't undercharge.
Find potential clients
You can pick up a client just about anywhere, but here are some solid places to start.
- Marketplaces: This is the easiest way to get clients IMO, though it should be noted that they take a pretty hefty cut. And it's not just Upwork, there are A LOT of options. I listed a lot of them in this article, so check that out if you'd like to see marketplaces for each (dev, design, marketing, etc.) along with the cuts they take.
- Your old employer: If you like the work you do with your current employer, offer to do some part-time freelance for them after you quit. It'll cost time and dollars for them to replace you — this is easier and cheaper for them, so you've got a good chance.
- IRL network: You've already built the relationships. Now talk to them. See if they, or someone they know, is looking for someone with your skillset. People you've worked with in the past are particularly good choices, as they've seen how good you are. If your old employment contract allows it, you can even work with their old clients who you built relationships with.
- Put out the word: Let people know that you're looking for gigs. Announce it on your socials.
- Social media advanced search: Use Twitter's advanced search to look up keywords like "wanted" and "hiring". Companies post gigs on Twitter all the time.
- Indie Hackers: Lots of indie hackers need some assistance. Keep an eye on IH and their socials. And don't forget about the Looking to Partner Up group here on IH.
- Normal job sites: Some have freelance filters, but even if they don't, just blow the company away and then negotiate a freelance deal.
- Cold calls/emails: If you're really having trouble, you can try cold contact… but this is going to be pretty low-yield unless you really try to warm these contacts up first: Comment on their socials, reach out, and add value before making any asks.
Find a good one (plus red flags to watch out for)
As you look through different clients and projects, don't apply to every single one – that's a huge waste of time for everyone. Be discerning. It's tough to get a lot of info out of online listings, but there are a few things you can look for:
- Purpose: Work on projects that are meaningful to you. Otherwise, it can be super draining.
- Flexibility: Look for projects that state flexible hours.
- Part-time: Make sure you'll have time for your own project.
- Long-term contracts: Go for long-term projects, or contracts that can transition to long-term. Short-term projects mean you'll have to spend a lot of time finding new clients.
- Quality descriptions: As you scroll through listings, you'll inevitably find a ton of project descriptions that say nothing more than "looking for X". That's a red flag. Look for descriptions that give you the information you need to know about the product, technologies, etc.
What do you do once you've found a solid candidate? It really depends on where you found the gig, but generally:
- Apply: Send a cover letter and resume. Explain why you want the gig. Use a template for the letter to save time, but personalize it so that they know it's legit.
- Set up an interview: Set up a call to discuss specifics and see if it's a good fit.
- Do your homework: Before the call, research the company. Understand what they're about and make sure you come to the call with a few ways to show that you did your homework (e.g. I saw on your website that…). They'll do their homework too, so make sure your LinkedIn and socials are updated.
- Know your financials: Come prepared with your rate (and how much you're willing to negotiate). But don't give them a quote on the call — quoting on the fly rarely ends well. If you have to give them something, stress that it is a ballpark.
- Bring questions: Line up questions about the project that A. Help you understand whether it's a good fit, B. Help you to quote it, and C. Make you look like you know what you're talking about.
- Meet: When you jump on that call, remember that this is not just about them vetting you. You are also vetting them. Phrase it that way (e.g. "if we're a good fit") so that the playing field is level. Don't skip the banter and small talk. The main thing you need to do here is to build a relationship.
- Follow up: After the meeting, send them an email thanking them for their time.
Here are some interview tips that might help.
After the meeting, stop and think about whether it's a good fit. Here are some red flags to watch out for:
- Unreliable: If they don't respond or they miss initial meetings, it's likely to be difficult to work with them in the future.
- Too busy: If they never seem to have time, they won't make time for you later either. And they're probably not good at managing workloads, which will affect you.
- Cheap: Story time. I once had a guy renege on our agreed price point, lowball me, then proceed to accuse me of nickel-and-diming him when I suggested meeting in the middle. Don't stand for it. Cheap clients are usually the most high-maintenance.
- Unreasonable expectations: Similarly, if their expectations for workload, timelines, etc. are unreasonable from the start, it's only going to get worse.
- Power trips: If they're acting like they hold the power and you'd be lucky to work with them, then you probably don't want to work with them.
- Issues with previous freelancers: If you can work it into the conversation, ask after the person who worked the gig before you. Find out why that didn't work out. That can be valuable intel.
No red flags? Then lock it in.
Set up the agreement and seal the deal
- Review the project: If you're inheriting someone else's work, whether it be a codebase, designs, or something else, check to see what state it's in. This will impact your estimate.
- Set a scope: If they didn't come with the scope already identified, set one up. Be hyper-detailed about it — this will save you in the long run.
- Set an estimate: Get enough info about the project, and don't settle until you have all the info you need. Then estimate how long it will take to complete it, and add some cushion.
- Fixed bid or retainer: A fixed bid is always best in my book — as long as you're good at estimating and holding your own against scope creep. Retainers are good too. But whatever you do, get paid upfront as much as possible.
- Come to an agreement: Run the pricetag by them and get a verbal agreement. Don't negotiate (much). The price is what it is, and cheap clients are the neediest clients. I learned that the hard way.
- Get clear on your processes: It's important to fit into their workflow as much as you can, but you also need to hold fast to your non-negotiables. For example, how should feedback be delivered to you? And how many rounds of edits are in scope?
- Be clear about your availability: Let the client know right away what your availability is, and that contact after working hours will be responded to the next business day. You can also throw them a bone by putting an 'emergency contact' procedure into place… but make sure they don't abuse that. Nothing worse than a client who finds an "emergency" every Friday at 4:30.
- Create a contract: Don't go loosey-goosey — get a contract. They should have one but, if they don't, here's a template. Include the itemized scope in the contract so that you can refer to it when scope creep inevitably happens. And set payment terms to "Net 15", meaning that they have to pay within 15 days. If they don't, they incur a late fee. Note: If you're using a marketplace, the contract may be taken care of already.
- Get signatures: Make it official.
- Be cautious with NDAs: Many clients will ask for this, but make sure that it's a reasonable one, and preferably a "Mutual NDA". I had one client try to give me one that said everything I created before was now licensed by him forever and every I created during our engagement was owned by him. Like, anything I created, even on my own time. Not surprisingly, it was the one that said I was cheap one I mentioned earlier.
- Discuss next steps: Set the kickoff meeting. Find out what their onboarding process is. Too often they don't have one. In that case, bring your own — what do you need (e.g. project rundowns, account access, team intros, etc.)?
Get started
- Kickoff call: Always start with a kickoff call. Included in the kickoff call should be a full rundown of the project, stakeholders, team responsibilities, processes, and access (invites to different accounts).
- Set up processes: A lot of the time, new clients will have a "wild west" mentality when it comes to process. That generally won't bode well for you, so help them to set it up. Makes sure the team communicates in one place (e.g. Slack) and tasks are clearly defined on a project management platform. If your process improvements affect another teammate, check in with them first.
Do good work (here's how)
- Do good work: Should go without saying. But this is particularly important because, assuming it's a good fit, it's best to keep the contract long-term. Searching for new clients is a time-suck.
- Under-promise over-deliver: It's a cliche because it's true… but most people do the opposite.
- Keep meetings to a minimum: Some meetings are probably necessary but make it clear that meetings take away from focused time, and therefore you're only open to X per week.
- Improve the client's company: As you're working, you'll probably see inefficiencies. Help them to fix these issues. It'll save you time in the long run and provide value to them at the same time.
- Set regular reviews: They probably won't have a process around this, so recommend reviews every 6 months where you can discuss progress and how things can work better on both sides.
- Be responsive: But only during your stated available times.
- Meet them in person: If possible, meeting them in person at some point can make the relationship more solid.
- Be transparent: If you're going to blow a deadline, or something in the scope won't be possible, get ahead of it as soon as possible. Let them know.
- Manage yourself: The best way to not get micromanaged (or fired) is to manage yourself well. Here's an article I wrote on how to do that.
- Get good at change management: Every piece of feedback needs to be weighed against the scope. If it isn't in scope, they need to approve the extra hours and, ideally, the task will be tacked onto the end of the project (instead of delaying the original scope). Formalize it with a Change Request process — here's a template. This is super, super important.
- Invoice: Automate invoicing if possible. There are plenty of services out there, and if you found your client on a marketplace like Upwork, then you're already all set. But you can also keep it simple — I've sent pdf invoices before and it works fine. Here's a template.
EDIT: It's worth mentioning here that you'll likely need to set aside 25-30% of your income for taxes (in the US). If you don't do that, you'll end up in a tough spot come tax season.
Juggling freelance with your own project
Juggling clients and projects can be tough, but this article that I wrote might help. In short, find the schedule that is most productive for you, prioritize your tasks effectively, use a tool to stay organized, speed up your work with automation and the like, and always remember why you're doing it.
I'd also add that you should try not to use up all your mental energy on the freelance projects. Structure your days so that you've still got juice in the tank.
Finish strong
- Make sure they're happy with the end product: Stick around until they're pleased (assuming that "pleased" doesn't mean free changes to scope).
- Get testimonials: You've gotta ask for these, or it's unlikely that they'll give you one. If the contract was on a marketplace, they should do it there. But either way, put them up on your website too.
- Get referrals: If you're looking for new work, ask if they know of anyone that they can recommend you to.
- Make them remember you: Do something unexpected after the contract ends, like sending a personalized card.
Anything I missed?
Subscribe for how-tos, tips, and case studies — all designed specifically for indie hackers. 👇
Biggest benefit I find from freelancing (beyond the $$) is working on someone else's project gives your tangible problems to solve on a daily basis. Really helps focus you on what is a legit problem vs. some presumed problem, when it comes to building your own project.
Interesting, yeah that makes sense.
This is basically what I've been doing for the past 2 years (though I'm now beginning to wind it down as my own venture ramps up).
Reiterating a few points:
Great points, thanks for weighing in!
Hey,
Just read your post. I was actually thinking to resign from my job in coming month and leave this metropolitan life, to move to the Karakoram. Where I wanted to sit and learn new tech skills. I currently have 4 years of experience in infrastructure and services so I wanted to have some more time for me so that I can first learn how to freelance, which skills are required and how to do it. Your blog really helped me out in taking the approach to freelance. Can you tag or introduce me to any tech guy who is currently doing freelance ?
I would definitely appreciate the help and support.
Very helpful for someone new to all this! Thank you!
Thank you for this 💪
Thank you for this article! I'm thinking of doing the same thing.
How has your experience building your own product helped you land new clients? Do they see it as something positive?
Have you gained any relevant experience from it?
@IndieJames great post. Its true that when you aid your side project with an alternative income stream it just becomes easier to hang on your side projects till it becomes sustainable
My side project Glyph (www.glyphleads.com) can benefit other indiehackers, solopreneurs & side project founders that wish to freelance on the side while building!
Glyph sends personalized freelance opportunities curated from all over the internet straight into your inboxes. It helps freelancers discover exciting freelance opportunities from the comfort of their inboxes
Hey @IndieJames, I love this post and many others that you write on IndieHacker.
I just recently came to the same conclusion. I also quitted my full-time job as a Product Manager 8 months ago, and built 2 products, both of which don't have the potential to sustain my Indie Hacking. They are not a total failure thou, some people really like it but in terms of making money they really suck.
I came to a point where I realize I was desperated to find and validate startup ideas. And most ideas I came up with either too big for a solo indiehacker to take on, or just a "vitamin" solution.
I still have enough money to keep going for 2-3 years without a job, but I felt that my confidence is lessened. And I don't want to let my wife and kid suffer this due to my stubborn-ness.
In the end, my goal is to reach financial freedom, not building a successful SaaS. Building side projects/SaaS is just a mean, arguably very fulfilling one.
Anyway, I think this approach will help me:
Drawback is obviously:
Great post! I've carved out a fairly good niche from Upwork over the last year. I've found to be successful you need to start off with a lower hourly rate to get that initial client and then slowly increase it over time. My initial rate was around $50 per hour and now I'm at $150 per hour. I thought that increasing my rate to that much would decrease the number of clients, but it actually hasn't dropped off much and now I'm attracting some pretty solid brands. My plan is to use the portfolio I have built from Upwork jobs to get even larger clients directly.
Interesting!
Great post! From my experience, i would say finding the first client is the hardest, once you have your first client, it truly begins
Good point!
This is one information dense post. Thanks a lot man.
All you said is 100% legit
I used to be a freelancer before starting my own dev agency https://criov.com
can i know how did you validate your idea i wanna start a saas too
I really enjoyed reading this! Having a stream of income that isn't related to your product is a huge stress reducer, and this can help you make better product/prioritization decisions overall.
For me, the magic number of longish-term clients has been ~2. More than that, and it's hard to keep the stacks straight (I'm a fullstack developer). Less, and there's more concentration risk. Finding the right clients can be a slog, but if you do good work they have a way of finding you.
Thanks! I completely agree with all your points 🙌
I want to know more about how did you go validating your previous product and your learnings from it, thanks!
Good points for dealing with tough customers but experience is the major thing that can help freelancers juggle with hard clients.
For sure — particularly the confidence that comes with experience. It's a lot easier to handle a difficult client if you're confident that you know what you're doing!
So many great points, all in one place! Having spoken to a ton of freelancers as we build Ditto, I've heard all kinds of horror stories about difficult clients. Most people learn a lot of the lessons you outline above the hard way - I'm definitely on a mission to shorten and minimize the slope of that learning curve :)
@IndieJames amazing article for people who want to get started with freelancing. Loved the section where you suggested ways to find potential leads. Coincidentally, I'm building Glyph my side project that helps freelancers get hot & personalized freelance opportunities straight into their inboxes.
I'll be glad if you can try Glyph for yourself & help us improve it with your feedback. Here's the website: www.glyphleads.com
Best🙌🏻
This seems pretty attractive to me because the beginning of any project is the most fun. You can just go from project to project enjoying every stop along the way.
What a valuable article! This is so true that people have to consider about the cold hard truth in terms of the financial aspects :O
Hey James, thanks for this detailed writeup.
I have done freelancing along with a startup and it was helpful to keep going if the business didn't generate money.
The ideas you have put forth are really valuable though.
A question - is a productized service automated via software or it's still offered as one would do the freelance job?
I don't know of any productized services that are fully automated. The goal is to automate and templatize as much as possible, but a human still does the work.
This is great! As a startup, a lot of our team is freelance. From a company perspective, it's helpful to be able to only pay for hours worked. We have many positions that don't need to be full-time yet.
There's also something to be said for hiring outside of your own timezone. Our engineers are working at all hours of the days and night, so we're literally always working to make the app better.
Yeah, outsourcing can be really helpful!
Very detailed writing. Very instructive writing. Very informative writing. It's so informative that one is armed before one enters the freelance world, and when one is armed with so much information, one is also armed towards success in the tough freelancing world. Thanks for sharing.
Glad to help! 😃
I like how detailed this process is, thanks for sharing..
My pleasure!
Solid process. Just make sure that you keep setting aside for those side-projects. Otherwise, you might as well have a full-time job!
This is so huge for early-stage entrepreneurs. I know I found it to be extremely helpful as I walked away from the corporate world. It's really easy to find work gigs these days, and it's a great way to practice being self-employed. 🚀
This comment was deleted a year ago.