How to Choose a Web Development Niche

Web developers must learn many technologies to become good at their profession. Things like HTML, CSS, programming frameworks, APIs, hosting, and databases are all necessary.

A new freelancer is likely able to complete several different types of web development jobs. But you need to resist the urge to go broad and stay within a niche.

Why focus on a niche?

You need to stay in a niche because clients want a specialist, not a generalist. The client that needs an API built in Django wants to hire the person that has done it 20 times. Not the person that thinks they can do it because they built something similar a long time ago.

The bottom line is this:

Specialists command higher rates, choose better clients, and stay busier than generalists. – Me

My Niche

What do I mean by a niche? For me that meant specializing in a tiny python web framework called Flask.

Flask python web framework

Now I’ve worked with a lot of web frameworks over the years. I’m proficient at customizing WordPress sites, know some Ruby on Rails and python Django. But for some reason I can really get a lot done with Flask. That’s why I chose it to build my demo project.

The problem with Flask is it’s not incredibly popular. When I first started on UpWork and looked for web development jobs, I mostly saw WordPress gigs, javascript work, Django, and some people wanting apps with no framework in mind.

After a day or two of applying for jobs I thought about switching to WordPress, since there were so many more jobs available. But then I got my first Flask gig, and it went well.

Fast forward to my second gig. I’m anxious to get another job quickly. I apply for a couple Flask jobs and hear nothing back. Once again I’m tempted to broaden out to Django or a bigger framework that has more job postings. But then I get an invite for a Flask job, accept it, and end up with another solid project.

Now my work history is full of jobs like ‘Flask expert to host an API’. I raise my rates.

Every time I’m tempted to broaden to a more popular category, invites roll in for Flask jobs. That’s the power of staying within a niche.

Growing Into Your Niche

Let’s get into the meat of what it means to be in a niche. The truth is that it is hard to simply ‘choose’ a niche as a web developer.

We all gravitate towards certain areas of programming over time. And we all have of our strengths and weaknesses.

You are likely strongest in one of these three areas:

  1. Front end development
  2. Back end development
  3. DevOps

web developer niche

Within that category you are likely strongest in a particular technology, language, or framework.

Keep in mind, many applications require a combination of these three core areas. Is being a front end developer considered a niche? No. You need to specialize further than that. Let’s explore the three core categories.

Front End Development

Front end development includes the presentation layer, or everything needed to display the web page or app properly. Core technologies required are:

  • Javascript
  • HTML
  • CSS

As the chart below shows, the three popular javascript frameworks are all great candidates for a web developer niche.

front end niche categories

So saying you are a front end developer is too broad. Specializing in something like Bootstrap is too narrow. But a front end developer specializing in AngularJS is just right.

Demand for Front End Developers

Demand for front end developers is very high. One way to see this is by looking at technologies in the 2018 Stackoverflow Developer Survey.

developer survey popular technologies

We can see from this that javascript is very popular. Drilling down further to frameworks and libraries, we can see that Angular is the most popular front-end framework, followed closely by React.  niche frameworks and libraries

Looking at the recent 2018 UpWork Skills Index, we can see that React Native and Angular are part of the top 20 hottest skills desired on UpWork.

upwork skills index

Does this mean that you should specialize in Angular or React? Not necessarily. You should focus on those areas if you are productive in the framework and can build something with it. What I am focusing on here is the process of knowing that you are in a lucrative niche.

Back End Development

Back end development involves two key processes:

  1. Create, read, update or delete data in a database
  2. Sort, filter, search, or analyze that data for display or use

Your primary programming language is the foundation of your back end development skills, because that is what you will use to interact with the database. You will also need to be competent in at least one type of database.

The following chart breaks this down. This is not all inclusive.

back end development niche categories

For back end you will most often specialize in a language framework, such as:

What is a Good Niche to Get Into?

It’s hard to recommend a single niche within web development because there are so many, and what you specialize in depends very much on what you’re good at and where your passion lies. But here are some good examples of what constitutes a niche:

  • Go
  • Android
  • Node.js
  • React
  • PostgreSQL
  • APIs
  • Python Django
  • Ruby on Rails
  • Java
  • Elasticsearch
  • AWS Devops

The key is to build your demo project around a key language or framework, then stick to that combination for at least your first 5 to 10 jobs.

Beware the WordPress Effect

It is very tempting to apply for the type of jobs you see popping up most often. If you are on UpWork or Craiglist you will likely see a lot of WordPress jobs, because people build a lot of lot of sites using WordPress.

I do not blame them. It works well for a particular type of web site.

But WordPress has a low barrier to entry. So while you see a lot of jobs available, there are lot of people applying for them.

Who would rather be, 1 of 40 applying for a WordPress job, or 1 of 5 applying for a Go developer job? Oh and never mind it is likely only 1 or 2 of you are highly qualified for the Go job, so your competition may very well be one other person!

Branching Out from Your Niche

Once you complete 5 to 10 jobs, you can broaden out and gradually move your niche into different areas.

For me that means occasionally completing Django jobs, or writing raw python code.

There is definitely room to broaden out once you have many good reviews, but do not do it too soon. The longer you can stay within a niche, the better!

Additional Resources

Add comment

Newsletter Signup

Join the Freelance Developer newsletter