To land your first freelance developer client in Kenya, start with your existing network: friends, family, former colleagues, and local businesses you already interact with. Build a simple portfolio site with two or three projects, set a fair but not desperate price, use a basic contract template, and accept M-Pesa for local payments. Most Kenyan freelancers get their first client through a personal connection, not a platform.
Let me save you some time. Your first freelance client is probably not going to come from Upwork. It is not going to come from a cold DM on Twitter. It is going to come from someone you already know, or someone who knows someone you know.
This is not a Kenyan thing. It is a freelance reality everywhere. When you have zero reviews, zero portfolio proof, and zero track record, the only people willing to take a chance on you are people who already trust you as a person. That trust is your starting advantage. Use it.
Your immediate network. Tell everyone you know that you build websites and apps. Not in a pushy way. Just mention it naturally. "I have been learning to code and I am taking on my first projects." You will be surprised how many people in your circle know someone who needs a website, a simple app, or tech help. Your uncle's hardware store needs an online presence. Your cousin's event planning business is running everything through WhatsApp. Your former colleague's startup needs a landing page. These are real projects with real value.
Local businesses in your area. Walk around your neighborhood or town center. How many businesses have a website? How many have one that actually works well on mobile? Most small businesses in Kenya still run without any web presence, or they have a site built five years ago that looks broken on phones. Walk in, introduce yourself, and offer to build them something. Bring your phone with examples of your work. Keep the pitch simple: "I build websites for businesses like yours. Here is what I have done. Can I show you what your business could look like online?"
WhatsApp and Facebook groups. Kenya runs on WhatsApp. Join business groups, alumni groups, and community groups. When someone posts asking for a website or app recommendation, respond. Do not spam groups with your services. Instead, be helpful when the opportunity comes up naturally. Facebook groups for Kenyan entrepreneurs (like "Digital Entrepreneurs Kenya" or local business networks) are also active marketplaces where people regularly ask for developer recommendations.
Freelance platforms (for your second or third client). Upwork, Fiverr, and similar platforms are worth pursuing, but they work better once you have a few completed projects and reviews to show. The chicken-and-egg problem on these platforms is real: you need reviews to win jobs, but you need jobs to get reviews. Our Upwork vs direct clients guide covers strategies for breaking through this barrier. For now, focus on landing your first client through your network while setting up your platform profiles in parallel.
Tech community connections. Attend a local meetup like Nairobi.js, GDG Nairobi, or Python Nairobi. You will meet other developers who sometimes have overflow work they need to pass along. You will also meet non-technical founders looking for developers. These events are not sales pitches, they are relationship-building opportunities. Show up, be genuine, contribute to conversations, and let people know what you do.
You need a portfolio before you start looking for clients. But you do not need a masterpiece. You need something that answers one question: "Can this person actually build things that work?"
What your portfolio needs. A personal website with your name, a brief description of what you do, two or three project examples, and a way to contact you. That is the minimum. Each project should include a screenshot, a short description of what it does, the technologies you used, and a link to the live version. If the project is not deployed and accessible, it does not count. Screenshots of localhost are not convincing.
What projects to include. If you have built anything for a real user (even a friend or family member), lead with that. A simple business website you built for your aunt's salon is more impressive than a tutorial project because it shows you dealt with a real person's requirements. If you only have tutorial and personal projects, choose the ones that look most professional and solve a clear problem. A to-do app is fine technically, but a budget tracker with M-Pesa transaction categories tells a better story to a Kenyan client.
Building the portfolio site itself. Keep it simple. A clean single-page site built with React or even plain HTML and CSS is perfectly fine. Deploy it on Vercel or Netlify (both free). Buy a domain name (around KES 1,200-1,500/year for a .com). Having yourname.com looks significantly more professional than a Netlify subdomain. If you have completed McTaba's Full-Stack Software and AI Engineering course, you already have deployed projects from the curriculum that serve as strong portfolio pieces.
GitHub as a secondary portfolio. Pin your best repositories. Make sure each has a clear README with a description, setup instructions, and screenshots. Some clients will never check your GitHub, but technical clients and other developers will. A clean GitHub profile with active commits signals consistency and professionalism.
Do not wait until it is perfect. Your portfolio will improve over time as you add real client work. The version you launch with is the worst it will ever be, and that is okay. The goal right now is to have something to show when someone asks "can I see your work?" Having a basic portfolio beats having nothing while you spend months perfecting a design you are never satisfied with.
Get weekly developer tips
Join 25,000+ developers. Practical guides, job tips, and new content — straight to your inbox.
No spam. Unsubscribe anytime.
The temptation with your first project is to do it for free. "I need the experience," you tell yourself. "I will use it for my portfolio." Resist this. Working for free sets a terrible precedent and tells the client (and yourself) that your skills have no value. Even your first project should be paid.
How to set your first price. You are not going to charge market rate for your first project, and that is fine. You are offering a lower price in exchange for the client's patience and willingness to work with someone new. A simple business website for a local Kenyan client might typically go for KES 30,000-60,000 from an established freelancer. For your first project, KES 15,000-25,000 is a reasonable range. It is enough to be taken seriously, low enough to be attractive, and high enough that you will not feel resentful doing the work.
Structure the payment. For your first project, a simple 50/50 split works well. Half upfront before you start, half on completion. This protects both sides. The client knows you are committed because you have already received payment and have a reputation to build. You know the client is serious because they have already paid. Never start significant work without some upfront payment. This is a lesson many Kenyan freelancers learn the hard way after delivering completed work and then chasing payment for months.
Do not price by the hour for your first project. Hourly pricing requires tracking and trust that has not been established yet. Quote a project price for a defined scope. "I will build a 5-page business website with a contact form and mobile responsiveness for KES 20,000." Clear, simple, no ambiguity. Our detailed pricing guide covers hourly vs project pricing in depth once you are past your first few projects.
The "friends and family" discount. If your first client is someone close to you, it is okay to offer a reduced rate. But frame it as a discount, not as free work. "This would normally be KES 30,000, but I am giving you a friends-and-family rate of KES 15,000." The client understands they are getting a deal. You establish that your work has monetary value. And when you raise your rates for the next client, there is no awkwardness because everyone understood the arrangement from the start.
You do not need a lawyer for your first freelance project. But you do need something in writing. A simple agreement protects you from the two most common freelance nightmares: scope creep ("can you also add this?") and non-payment ("I will pay you next month, I promise").
What your agreement should include. Keep it straightforward. Your agreement needs to cover these points:
Format does not matter much. A Google Doc shared with the client, a PDF you both sign, or even a detailed WhatsApp message that the client confirms with "I agree" can work for small projects. The point is documentation, not formality. You want something you can point to if there is a disagreement about what was agreed. As your projects grow in size and value, invest in a proper contract template. But for a KES 20,000 first project, a clear written agreement is enough.
The scope creep conversation. It will happen. Midway through the project, the client will ask for something that was not in the original agreement. "Can you also add a blog?" or "Can we add an online booking system?" This is not the client being difficult. They are excited about the project and having new ideas. Your response is simple: "That is a great idea. It is outside the current scope, so let me quote it as an add-on." Then provide a separate quote for the additional work. Most clients accept this gracefully when you handle it professionally.
Getting paid is the whole point of freelancing. Set up your payment infrastructure before you start looking for clients so you can accept payment smoothly when the opportunity arrives.
M-Pesa for local clients. This is the most practical option for Kenyan clients. Most people are comfortable with M-Pesa and it involves no friction. For your first few projects, receiving directly to your personal M-Pesa number is fine. As you grow, consider registering a Till number through Safaricom's business portal. A Till number looks more professional, separates business transactions from personal ones, and gives you cleaner records for tax purposes.
Bank transfers for larger projects. For projects above KES 50,000, some clients prefer bank transfer. Open a business account or use a dedicated personal account for freelance income. This keeps your financial records clean and makes tax filing easier. Most Kenyan banks offer free or low-cost accounts for small businesses and freelancers.
International payments. If you land an international client (which becomes more likely as you build experience), you need a way to receive USD or other currencies. Wise (formerly TransferWise) offers good exchange rates and low fees. Payoneer is popular among freelancers on Upwork and other platforms. Both allow you to receive payments and withdraw to your Kenyan bank account or M-Pesa. Our getting paid from abroad guide covers the details.
Invoice every project. Even if the client is your cousin. Even if they pay via M-Pesa. Send an invoice before payment is due. It looks professional, creates a paper trail for your records, and makes tax filing cleaner. You can use free tools like Wave, Invoice Ninja, or even a simple Google Docs template. Include your name, the client's name, the project description, the amount, the due date, and your payment details. Our tax and invoicing guide covers best practices.
The uncomfortable topic: chasing payment. Some clients will be late paying you. Some will try not to pay at all. This is why you take an upfront deposit and never deliver final files or deploy the final version before receiving full payment. For web projects, build on your own hosting account and only transfer to the client's hosting after final payment. This gives you leverage without being confrontational. If a client disappears after receiving deliverables without paying, you have limited options. Prevention (upfront deposits, milestone payments, written agreements) is far more effective than trying to recover payment after the fact.
How you deliver your first project matters as much as the code itself. A smooth delivery turns a one-time client into a repeat client and a source of referrals. A messy delivery kills both possibilities.
Communicate throughout the project. Do not disappear for two weeks and then surface with a finished product. Send weekly updates, even if they are just a WhatsApp message with a screenshot. "Here is the homepage so far. Feedback welcome before I move to the other pages." This builds confidence, catches misunderstandings early, and makes the client feel involved. Most client frustration comes from silence, not from technical issues.
Deliver on a staging URL first. Before the final handoff, deploy the project to a staging environment and walk the client through it. Share your screen on a call if possible. Let them click around and give feedback. This is the moment where you catch the "oh, I actually meant..." comments before you consider the project complete. Deploying to staging also shows the client that you know how to ship software, not just build it locally.
Handle feedback professionally. Your first client will have opinions you disagree with. "Can you make the logo bigger?" "I want more colors." "Can the text flash?" Resist the urge to argue. If the request is purely aesthetic and does not hurt usability, just do it. If the request would genuinely harm the user experience, explain why gently: "I would recommend keeping the text static because flashing text can be difficult to read and affects accessibility. But if you feel strongly about it, I can add it." Pick your battles. Your job is to serve the client while protecting the quality of the work.
Get a testimonial before you close the project. This is crucial and most new freelancers forget to do it. Right after delivery, when the client is happy with the result, ask: "Would you mind writing a short testimonial about working with me? Just a few sentences about your experience." Most clients are happy to do this when asked directly. A testimonial from even one real client is worth more than ten self-written portfolio descriptions. Add it to your portfolio site immediately.
Ask for referrals. After a successful project, ask the client: "Do you know anyone else who might need a website or app?" Personal referrals from satisfied clients are the single most effective way to grow a freelance business. Each completed project should generate at least one or two warm leads for the next project. This is how freelancing compounds over time.
These come up repeatedly in conversations with Kenyan developers starting their freelance journey. Each one is avoidable if you know about it in advance.
1. Saying yes to everything. Your first instinct is to accept any project that comes your way because you need the experience and the money. But taking on a project that is way beyond your skill level (like building a full e-commerce platform when you have only done static sites) leads to missed deadlines, frustrated clients, and damaged reputation. Be honest about what you can and cannot do. It is better to say "this project is beyond my current experience, but I can recommend someone" than to promise something you cannot deliver.
2. Not defining the scope in writing. We covered this already, but it is worth repeating. A handshake agreement or a vague WhatsApp conversation is not enough. Get the scope in writing. Every time a freelancer tells me they were burned by a client, the root cause is almost always the same: nothing was documented.
3. Underestimating timelines. Whatever you think a project will take, add 50%. If you estimate two weeks, tell the client three. Unexpected bugs, unclear requirements, client feedback delays, and your own learning curve will eat up more time than you expect. Delivering early is a pleasant surprise. Delivering late is a professional problem.
4. Neglecting the business side. Freelancing is a business, not just coding. You need to track income and expenses, send invoices, follow up on payments, market your services, and manage client relationships. Many developers love the coding part and ignore everything else. The developers who build sustainable freelance careers are the ones who treat the business side as seriously as the technical side.
5. Not investing in skills development. Your first few projects will expose gaps in your knowledge. Maybe you struggle with deployment. Maybe responsive design takes you three times longer than it should. Maybe you have never set up email sending from a contact form. Track these gaps and fill them between projects. If you want a structured way to level up your full-stack skills, McTaba's Full-Stack Software and AI Engineering course (KES 120,000) covers the entire stack from frontend to deployment, including M-Pesa integration, which is one of the most requested features from Kenyan clients.
6. Comparing yourself to established freelancers. A developer with five years of freelance experience and a full client roster is not your benchmark. You are at the beginning. Your first project will not be perfect. Your first client might be a small local business paying KES 15,000. That is completely fine. Everyone starts somewhere. The difference between developers who build successful freelance careers and those who give up is persistence through the awkward early period.
KES 120,000
Join the McTaba Labs full-stack marathon (4 months full-time · 6 months part-time). Ship 8 production apps and get career support until placement.
Apply to the McTaba Marathon