PProtokol
Freelance Developer Business/Choosing a Service and Niche
outline — lesson 1 of 10

Level 1 · Complete beginner · 12 min

Choosing a Service and Niche

Pick one clear thing you do, for one clear kind of client, so people stop guessing what you offer.

What you will learn

  • Explain why a generalist web developer pitch is weak
  • Turn your existing skills into a specific, sellable service
  • Pick a first niche using real signals, not guesses
  • Write a one-line positioning statement

The idea

A freelance business is not "I can code." It is "I solve a specific problem for a specific type of client." The narrower and clearer that sentence, the easier it is for someone to say yes and hire you.

Why does this matter?

Clients hire specialists faster than generalists because specialists feel lower-risk. "I build Shopify stores for skincare brands" gets picked over "I do web development" even when skill level is the same.

A real-world analogy

Think of a restaurant menu. A 40-item menu signals a kitchen that is mediocre at everything. A 6-item menu signals a chef who is excellent at those 6 things. Your freelance offer works the same way.

See it in code

A simple way to score candidate niches before committing
function scoreNiche(niche) {
  const { demand, skillFit, competition, payAbility } = niche;
  const competitionScore = 6 - competition;
  const total = demand + skillFit + competitionScore + payAbility;
  return { name: niche.name, total };
}

const candidates = [
  { name: "Shopify for skincare brands", demand: 4, skillFit: 5, competition: 2, payAbility: 4 },
  { name: "General websites for anyone", demand: 3, skillFit: 3, competition: 5, payAbility: 2 }
];

console.log(candidates.map(scoreNiche));

Line by line

  • const { demand, skillFit, competition, payAbility } = niche;

    Destructure the four scoring factors out of the niche object.

  • const competitionScore = 6 - competition;

    Flip a crowdedness rating (1-5, higher = more crowded) so higher is always better in the total.

  • const total = demand + skillFit + competitionScore + payAbility;

    Add the four factors into one comparable score per niche.

  • candidates.map(scoreNiche)

    Run every candidate niche through the same scoring function and collect the results.

What do you think happens?

With demand=3, skillFit=3, competition=5, payAbility=2, what total does scoreNiche return?

Have a guess before you read on. Guessing wrong is part of learning it.

Try it yourself

Add a third candidate niche of your own with realistic scores 1-5, run scoreNiche on it, and compare totals.

Worth knowing

Common mistake: picking a niche you find impressive instead of one with real paying demand. Validate that people are actually buying this service before committing months to it.

The proper words for it

Niche
A specific type of client or problem you focus on, instead of trying to serve everyone.
Positioning statement
A one-sentence description of who you help and how, used in your bio and outreach.
Perceived risk
How likely a client feels it is that hiring you will go wrong; specialists feel less risky.

Where you'll meet this

Many successful solo developers started broad and narrowed after landing two or three similar projects by accident, then leaned into that pattern deliberately once they saw it converted well.

Lesson recap

  • A vague generalist pitch loses to a specific, credible one
  • Score niches on demand, skill fit, competition, and ability to pay
  • Write a one-line positioning statement: I help [client type] do [outcome] with [service]
  • You can narrow your niche further later as you learn what converts

Still fuzzy on any of this?

That's normal, and it's not a dead end. Pick a different way to hear it.

Quick check

1. Why does picking a niche usually help a new freelancer win work faster?

2. A 'service' in this lesson refers to:

3. Which is the strongest niche positioning for a new freelancer?

mini challenge · javascriptnot run

Hourly Rate From an Income Goal

Write hourlyRate(annualIncomeGoal, annualExpenses, billableHoursPerYear) that returns the hourly rate you must charge to cover your income goal plus business expenses, given how many billable hours you work per year.\n\nFormula: rate = (annualIncomeGoal + annualExpenses) / billableHoursPerYear, then round UP to the nearest cent (2 decimal places).

main.jsjavascriptnot run
First, pass the quick check and pass every required coding challenge to unlock "Finding Your First Clients".

Your tutor

patient by design

No question is too basic here. Ask anything — I'll explain it in plain words and guide you rather than handing over answers.