Guides

Web Development

How to Hire a Freelance Web Developer

Hire a freelance web developer with a clear brief, evidence of relevant work and agreed terms for source code, payment, testing and handover.

Author
Mathias Kjær Pedersen, MKP Digital
Published
Published
Reading time
9 min read

To hire a freelance web developer, define the outcome you are buying, find people who have delivered comparable work, and agree the scope, payment terms, rights and handover before development begins. A strong portfolio helps you shortlist candidates. A clear agreement turns that shortlist into a workable engagement.

Your goal is to leave the hiring process with a developer who understands the brief and a project you can review, approve and operate after delivery. That requires decisions about both the work and the working relationship.

1. Write a brief that candidates can assess

Give each candidate the same short brief. Describe what users need to do and what the business needs from the result. You do not need to prescribe a framework before someone has assessed the requirements.

Include the following.

  • The business goal and the most important user journey
  • Any existing website, platform, integrations and known constraints
  • Features and page types required for the first release
  • Content and assets you will supply, with responsibility for anything missing
  • Budget boundaries, desired launch date and external dependencies
  • The person who can make decisions and approve work
  • Work that is explicitly outside the engagement

For example, a service business might send this illustrative brief.

We need a website with a home page, services, case studies and a contact page. Visitors must be able to send an enquiry to our shared inbox and see an on-screen confirmation. We will provide approved copy and images. Please include setup, mobile layouts, the form, agreed SEO work, testing and handover. Booking, user accounts and additional languages are excluded. Tell us what else you need to estimate the cost and delivery schedule.

Add acceptance criteria for the main journey. A contact form might need to deliver valid enquiries to the agreed inbox, explain missing fields and work with a keyboard on the devices you specify. Agree the test data and recipient before testing, so the review does not expose unrelated personal information or disturb customers.

For changes to an existing system, describe the current code access, documentation and known problems. Arrange the terms of an initial review before granting the access it requires. A candidate cannot responsibly estimate unfamiliar legacy work from a screenshot alone.

2. Build a shortlist around relevant experience

Recommendations, professional networks, direct searches and freelance marketplaces can all produce candidates. Treat a recommendation as a lead to investigate. Ask what the developer delivered and whether the work resembles yours.

Match the specialist to the task. Configuring an online store, building a marketing website and developing a customer portal call for different experience. If an existing platform already meets the requirements, a platform specialist or a template may be sufficient. Custom development needs a reason grounded in the brief.

Send the brief with your first enquiry. Ask about comparable work, availability, how they would approach the project and what remains unclear. Shortlist people whose experience and capacity fit the engagement, rather than collecting proposals from everyone who replies.

If you have not yet decided whether one person can cover the work, the comparison of freelance web developers and web agencies helps you assess the delivery model first.

3. Check what the developer personally delivered

Ask for a walkthrough of a relevant project. Establish which parts the candidate built, what other people contributed and what the client received. A screenshot does not prove responsibility for design, integrations, testing or maintenance.

Use questions such as these.

  • What problem was the client trying to solve, and what constrained the project?
  • Which parts were your responsibility from discovery through handover?
  • What difficult decision did you make, and what informed it?
  • How did you test the result and prepare it for the client to operate?
  • What would you change if you tackled the same brief again?

You can inspect a public website, but it may have changed since the developer delivered it. Do not submit enquiries or place orders through someone else's site as an interview exercise.

For a substantial or business-critical engagement, arrange a relevant reference with the candidate. Ask about communication, scope changes, delivery and the response to defects. Respect confidentiality. If client code or names cannot be shared, an anonymised explanation or a demonstration project can still give you useful evidence.

4. Ask technical questions that expose the delivery plan

You do not need to run a programming quiz to assess a freelancer. Ask how the developer would handle the practical risks in your brief, and look for explanations you can understand and check.

Which parts would you configure, and which would you build? A useful answer connects the approach to requirements, maintenance and limitations. Naming several tools does not explain the decision.

How would you test the main user journey when things go wrong? Ask them to use your brief as an example. For an enquiry form, the answer should cover message delivery, invalid input and failure of a connected service.

How would you make changes without interrupting the existing service? Discuss a test environment, backups, deployment and recovery. The plan should match the platform and the consequences of an outage.

How would you handle credentials and personal data? Look for limited access, individual accounts and a test-data plan. A shared administrator password or a full copy of customer records should not be the default requirement for a small change.

What would another developer need to take over? Ask about source code, setup instructions, licences and account access. With a proprietary platform, establish what can be exported and what would need to be rebuilt.

What happens if you become unavailable or miss a milestone? Agree how you will be notified, how work in progress is made available and whether another person can help. Availability at the interview does not establish a continuity plan.

If the architecture or integration risk exceeds your technical knowledge, consider a bounded review by an independent specialist. Focus that review on decisions that could make the engagement expensive to recover from.

5. Use a paid discovery task when you need more evidence

A small paid engagement can resolve uncertainty before you commit to the full build. For example, ask the shortlisted developer to investigate an existing integration and deliver a written recommendation, constraints and a proposed next phase.

Define the output, fee or time cap, rights and stopping point. The result should remain useful even if you choose someone else for implementation. Avoid asking several candidates to produce usable project code for free as a condition of competing for the contract.

Discovery is not mandatory for every website. If the brief is straightforward, the evidence is relevant and the terms are clear, adding another phase may create little value. Use it to answer a real uncertainty.

6. Agree the contract, payments and rights before kickoff

Turn the proposal into a written agreement that both parties accept. It should cover at least these points.

  • Deliverables, exclusions, client inputs and acceptance criteria
  • Milestones, feedback deadlines and the response to delays
  • Fees, currency, applicable taxes, payment dates and third-party costs
  • Approval of changes and their impact on cost and timing
  • Source files, usage rights, licences and when rights take effect
  • Testing, launch, defect correction and any continuing support
  • Confidentiality, subcontractors and responsibilities for personal data
  • Termination, payment for work in progress and handover if the project stops

For a bounded project, you might agree an initial payment, a payment after a demonstrated milestone and a final payment linked to the agreed delivery. This is a possible structure, not a prescribed percentage split. Specify the amounts, evidence and review window for each milestone. For hourly work, agree reporting, a spending cap and approval before that cap is exceeded. The guide to fixed price versus hourly web development explains the choice of billing model.

Source code access and ownership are separate decisions

Receiving code, controlling its repository and holding the rights to use or modify it are different things. Do not treat an invoice or a repository transfer as a complete statement of intellectual property terms. WIPO explains that the creator is generally the first copyright owner, with exceptions that depend on national law. See WIPO's copyright guidance.

Have the agreement state the rights you receive in the custom work, whether another supplier may modify it and when those rights take effect. Identify pre-existing components, open-source dependencies, images, fonts and paid plugins separately. Their licence terms need to be respected even when the custom code is assigned to you.

Include the practical handover too. A code archive without setup instructions, required configuration and access to connected services may not be enough to operate the project. For cross-border engagements, establish the governing law and get qualified advice where rights, liability or termination carry significant risk. Do not assume that employment rules also settle the rights in an independent contractor's work.

Clarify data responsibilities before sharing records

Decide what data the developer actually needs, where it will be processed and who else will have access. Prefer synthetic test records when real customer information is unnecessary. Where GDPR applies, establish whether the freelancer is processing data on your behalf and put the required terms in place before that processing starts. The role depends on the actual arrangement, not just the word freelancer.

The Danish Data Protection Authority's guidance on controllers and processors includes examples distinguishing processing on a client's behalf from incidental access during a different task. Apply the requirements relevant to your jurisdiction and engagement.

How much does a freelance web developer cost?

The cost depends on what you commission, what still needs discovery and how the work is billed. Request quotes against the same brief and separate implementation from licences, hosting and support. For a closer look at cost drivers and comparing proposals, read the guide to small business website costs.

7. Review delivery and make handover explicit

Schedule short progress reviews that show completed work. Put one person in charge of consolidated feedback. New requests should be described and approved before they become additional work, and changed assumptions should result in a revised plan.

At delivery, review the acceptance criteria in the agreed environment. Test the main journey on the specified devices, failure states, message receipt and administrative access. Check accessibility against the level you agreed. W3C's Easy Checks offer an initial review, not a substitute for a comprehensive assessment.

Record the following in the handover.

  1. The approved version and any remaining defects or exclusions
  2. Source code and the design or content files included in the agreement
  3. Business access to the domain, hosting, CMS and required services
  4. Relevant instructions for setup, updates, backups and recovery
  5. Licences, renewals and recurring charges, with someone responsible for each
  6. Defect-correction terms and the contact route for operational problems

If the project uses GitHub, its documentation describes how to transfer a repository. That technical process does not replace the rights agreement or transfer every external service account.

Finish with written acceptance or an agreed defect list and a plan to resolve it. Confirm that you can sign in to the necessary accounts and find the documentation. Remove access that is no longer needed, retaining only what an ongoing maintenance or support agreement requires.

Mathias Kjær Pedersen, MKP Digital

Writes practical guides from MKP Digital about websites, web development and digital solutions.