How much did you know when you got your first freelance Web Dev project?

I'm considering going into freelance web development, and I'm trying to determine at what point I should start offering my services to people. I am an experienced programmer, just not very experienced at building websites.

If you are, or have been, a freelance web developer, I have a couple of questions for you:

  1. Were you able to create dynamic websites when you first started offering your services, or did you just do static starting out?

  2. Were there specific types of websites you were willing to build starting out (ecommerce, blogs, generic business sites...) or did you just take whatever projects you could get and learn as you went?

  3. Any advice for someone starting out in this role is welcome.

Did you find this post useful? Show some love!
DISCUSSION (7)

I had basic understanding of how a website works and knew that WordPress was slow. So I found Jekyll and was impressed by the speed of a static site.

I then went on to offer a website for a restaurant, but the deal never went though. However, their accountant got in touch we me and said he wanted a website redesign. His site was on WordPress, and I sold him on the speed of a static site. He said he was happy with it and I went on building it. But I had no idea how to build it or how to deploy it or anything really.

I follow a 10 or something part long Jekyll tutorial by DevTips and 3 months later (😳😂) I finally finished the site and showed to the guy and he liked it. We deployed and he was happy with it. And that’s the story of my first freelance project. The dude was cool and offered my advice on running a business and the importance of delivering on promises. I said it would take 1 month to build the site, but took 3 months like I said.

After that, I learned more business wise, technology wise and got more work from the accountant’s clients and then their referrals.

Moral of the story is don’t be afraid to learn as you go, but you have to absolutely make sure you delivery what you promise (mostly time wise).

Thanks, Bo! That's really helpful. Good advice on delivering on your promises. I imagine for a first project its hard to know how long you'll take.

If you don't mind me asking, did it take so long because you didn't give yourself enough time? My hope is to solidify a pipeline and to build up a library of reusable code so I can cut down on delivery time, but I understand my first project may take a while. Do you think 1 month is a typical first project deadline?

Oh man my first project was a mess. I was very lucky to get a client who was really chill.

The reason why it took so long was because I put too much pressure on myself, and struggled to design the site first. Designing was never my thing, but I had to do it, and it was stressful. Eventually, almost 1 month in I sent the design to the client and he liked it, so I was really happy about it. In fact, so happy that I decided to take a break 🤦🏻‍♂️

I did nothing for a whole month, and not sure what it was, either I was excited to have created something another person paying me money liked, or maybe because I burned out doing it and wanted a break.

After that month I got inspired again to finally code the project, and did my best to do a good job creating the site based on the design. Once it was done, I showed it to the client and they loved it!

I did also underestimate the workload and underestimated time, but it was with other projects where I had no idea how to build them, but had to do since I took on the project. But its a different story.

Having a library of reusable code and components is definitely a great way to go. In fact, a company where I currently am working is using a similar approach and it saves a lot of development time and money! So definitely invest time and money in making those components, and making them great and flexible enough to tailor to various projects. Often, components end up so catered for one project, you end up spending more time fighting the component to make it work than it would take you to build a whole new one from scratch.

1 month is how much time I would usually give myself with the first few projects, and in hindsight it wouldn't be impossible to delivery within that time. However, in my experience most of the time is spent not coding, but catering to the client. Their ideas change all the time, and they take days to reply to emails where you essentially stuck waiting for their reply, or take a week or so to pay you, which prolongs the project's timeframe as well.

I know make sure to make the time I need to code the whole project very clear GIVEN I have designs and clear scope, and let the client know that they can expect delays because of emails/clarifications etc. So if you think you need 1 month time, easily multiply that by 2 and it would be a more accurate prediction. Just to be safe 🙌(remember, always deliver on your promises).

But all that will come with experience, and just be prepared for difficult times and difficult people. The harder it is, the more experienced you will get.

(Several Years ago) I had no idea frameworks even existed. I didnt know about bootstrap or tooling. Worst part of all, I didnt even know anything abou OOP

Mind you, I was working as an offshore Backend Developer. And we were servicing small to medium scale companies selling CRM projects to most clients. I mostly worked on projects alone.

Ah those were the days. :)

Here's an answer to a similar question on my #AMA that might be useful:

If you're referring to starting a consulting business on the side, there are a few things to consider.

You need to build expertise in a specific area. It could be in a tech-stack or a specific niche like building websites for dentists or mobile apps for schools, or being a Shopify expert, etc.

There is a lot of work out there and you need to work on strategizing how to find it. Before you start side-gigs, take some time to focus on building your technical and soft-skills. Running a consulting business is quite different than a full-time job. You will also need to focus on building a portfolio and drive traffic to it organically.

You will make mistakes in your first few gigs. That's okay. You want to make sure that you learn from those mistakes and that you do the right thing for your client and your business. However, keep in mind that you also need to strike a balance there. My first client didn't pay me and they still owe me $3,000 (and now they're a pretty big well-funded startup)! Then, I was quite lenient with my second client and ended up doing a lot of extra work due to the changing requirements and their constant request for a low-budget implementation which meant I had to cut corners. Initially, I didn't think it was a big deal as they were still paying me 28k for the project in three phases. However, I ended up doing almost three times the amount of work than what I anticipated and they kept taking advantage of that.

That brings me to billing hourly vs. project based. There's no clear formula here, but you need to evaluate on a project basis. Usually, I charge hourly for up to a few hours a day. Then, I have a daily rate that's a bit lower and I scale that to a weekly and monthly rate without additional discounts. In many cases I make exceptions. For instance, when I'm teaching someone I will reduce my rate so I can help them.

There's a lot to manage when you are running a consulting business. You have to constantly look for work. You have to keep up-to-date with technology. You have to do the work and provide value to your clients. You need to follow up with them as needed. And most importantly, you need to bill them and often chase them down when they don't pay. The best way to deal with this is to sign some agreements ahead of time and get 20-25% upfront payment and use a CRM-like software to manage this.

Remember that your clients are paying you to deliver immediate value. Depending on your area of expertise, you could bill accordingly. I started billing clients at $60/hr years ago. Often clients are not respectful of your time when you don't bill them enough. It is sort of a reverse psychology. The most problematic clients have been those who have requested $60/hr or lower rates. Over the years, I have continued to increase my rate and I try to stick to a specific range. However, I've also charged upwards of $500/hr in exceptional circumstances.

Overall, you need to focus on building a process for yourself. You need to rely on tools/services to run your business. Services like a scheduling platform, invoicing software, time-tracking, email, etc. These things save a lot of time. I spend ~$250 a month on tools.

At the end of the day, you have to start somewhere. You can start out by building your resume/portfolio by doing ad-hoc work. Think of everything as a learning experience and a stepping stone towards something bigger. Think about the long-term and always keep looking for something better, otherwise, you get complacent. There's nothing wrong with being satisfied with a specific point in life, but it can take a while to get there.

The best thing about this is that you are working for yourself and you are responsible for all your decisions. Another thing to keep in mind is that with independent consulting, you may NOT have consistent work so you need to account for all that when you bill clients. You also have to purchase your own insurance if you're in the US and all of that adds up quickly. Don't forget about taxes and keeping money aside for paying that.

In the short-term, you can start building your personal brand (or business if you prefer that). Regardless, you should form an LLC. Then, start writing articles, teach people, create a youtube channel, go to local meetups, give local tech-talks, etc. Do whatever you can to get noticed. Get involved in open-source or building projects for local communities/groups. This will lead to more work. It takes time and you need to plan for the long haul. It is a competitive space, but if you're really good at what you do, you should be able to transition into doing this full-time.

Thanks Nick, that's helpful. I definitely think the business side of things will be the most daunting.

And how did you find your first clients?
Thanks for great sharing.

Classic DEV Post from Oct 10

How I remember CSS Grid properties

I want to share how I remember the most common CSS Grid properties. This will help you use CSS Grid without googling like a maniac.

Collin Brittain
Join dev.to

Be a better developer. Free forever.