Showing results for 
Search instead for 
Did you mean: 

5 Questions Your Web Development Proposal Should Answer

Community Manager
Lena E Community Manager Member Since: Apr 7, 2015
1 of 1

This story was submitted by freelance writer Faraz Ahmed and does not constitute the views or opinions of Upwork.


Faraz Ahmed is a Zend-certified PHP developer from Karachi, Pakistan who’s been using Upwork to find freelancing opportunities for almost two years. With 40 engagements and over 3,600 hours of work completed, he’s a pro when it comes to writing great development proposals. In this article, he offers tips for crafting an excellent web development proposal to increase your chances of landing a project.

Clients know that writing a detailed description of work is a great way to attract a skilled freelance developer, but for developers, the proposal can be just as important in attracting a client’s attention. All too often on Upwork community forums, I see freelancers complain about not getting responses from clients after they submit a proposal for a project—despite having a stellar profile. If you didn’t get that project, then that means someone else did. That certain someone must be doing something right that you aren’t–and it might come down to the detail of their proposal.

Yes, having a great profile, portfolio, and feedback is all great, but your proposal is your first impression and also your opportunity to show you understand the project and the skills required, and even to suggest better solutions to the client’s problem.

Put yourself in the client’s shoes. You are a client, you come to Upwork, and you post a project and start receiving all the bids. What is the first thing you look for in the bid? Not the freelancer’s profile–their proposal. Here are some questions a well-written development proposal should answer.


Think from the client’s perspective–and get right to the point. Say I’m a client who has come to Upwork to get a project done, and I want someone capable who understands what I want to accomplish. While a client always loves to see how awesome you have been in the past, your past feedback, and how long you have been on the platform, what they’re most interested in is if you have the understanding, skills, and strategy to complete their project.

Tip: If it’s a WordPress project, for example, start by listing the programming languages you know (e.g., PHP), plugins you’ve written, and the number of WordPress sites you’ve built. This will instantly make the client feel that you’re not a robot or a copy/paster, and that you actually read and understand their project. Address this up front, since your proposal won’t be the only one they’ll have to read through.

2. “Do you understand the project and how to complete it?”

What clients really want to know from a development proposal is that you understand the project (or the problem) and can deliver a solution within budget. Show that you understand the task by writing it back to them in your own words.If clients are technical and know what skills are needed for the project, use this opportunity to get as detailed as possible. This speeds up the communication process because you both know what you’re talking about and can get right down to business.

Tip: If the client just wants the project done and doesn’t mention any technical terms, try to explain things in layman’s terms. I try to always clearly communicate with the client using the language/terms they use, so they’re comfortable and know I understand their goals.

3. “Why will it take that long and cost that much?”

Provide project details that will support your proposal’s cost and timeline. Because development projects consist of many tasks, which are broken further into many smaller tasks, it’s important to explain and “go deep” in development proposals. You can’t simply say “It will take X amount of time and X amount of dollars to complete the project:”–break the project down into modules, then assign a timeframe to each module. Also, include what tools you’ll use, what plugins you recommend they purchase, what infrastructure is needed to host the project, etc.

Tip: An easy way to do this is to track how long it took you to complete similar tasks in the past, then use those breakdowns to build new timelines. If something is of the exact same nature of a project I’ve done before, I already know how much time it will take me to do it again. If something is not exactly the same, but similar, then depending on the extent of it, I add or cut some hours. If something is totally new to me, then I search for any existing code snippets, classes, or ideas, then come up with my best estimate depending on my research and ability. If I’m uncertain about a task, then I add some cushion to it, just in case it takes longer than initially expected.


While you’re not required to give a complete solution of course, provide enough to make the client feel that you do have a solution to the task. If you’ve done something similar in the past, showcase that. This makes things easier because I can show the client my previous work that is similar to what they’re asking for. That also helps me determine my rate and timeline since I already know how long the project is going to take. If it’s something I haven’t done before, I spend some time on research.

For example, the client wants me to fix something on an existing site (e.g., a CSS fix, PHP error fix, etc.), I open the site, look at the issue, and try to figure out the solution. If it’s a common issue, then I immediately know the solution. I even download the script and software the client is using if needed, and install it on my local machine. I don’t give the exact solution in my proposal, but give the client enough information to let them know that I have what they need.

If it’s a project from scratch, then I research and gather all the tools that are required to accomplish the project in the most efficient and cost-effective way, then include these details so the client knows I have done my research before submitting a proposal to the project.

Tip: Applying for a project without knowing how I am going to deliver it is a big no-no for me because if I get the project and am unable to deliver, it’s going to affect my reputation negatively. Researching takes time, and I may be late submitting the proposal, but I can rest assured that my proposal will stand out from the rest and increase my chances of landing the project.

5. “Is there a better way to tackle this project, and if so, what is it?”

Tell the client what tools or process would be ideal to accomplish the task, and how it could benefit them in terms of timelines and budget. If you see an opportunity to correct, improve, or streamline a project’s proposed solution, don’t be afraid to suggest it. You’re the pro and they’ll appreciate that you’re interested in making the outcome as good as possible.

Remember, the proposal should be about the client and their project, not about you. But if you’ve completed a similar project, you can add it at the end with some information about yourself–the part that most people write at the beginning of the proposal.

Now, let’s look at some examples. Here are a few of my proposals for recent development projects I completed:

Example 1

Title: Need some help with an Error 404

Project Description:
I need some help with my code, there is a bug I can’t find.

My Proposal:

Could you please send me the link to your website/web page which shows the 404 error? Did you do any modification to the code before you encountered the error?
I have been working on PHP for 5+ years. I am also a Zend-Certified PHP Professional (the top PHP certification available), and I am pretty sure I can fix this error ASAP.

I am available via email/skype/phone to discuss the project further. Let me know if you want to proceed.
Best Regards,

Example 2

Title: Need WordPress Expert

After I installed the most recent WP update this appeared:
“Warning: Missing argument 2 for wpdb:Smiley Tonguerepare(), called in /home/content/53/6479453/html/wp-content/plugins/nextgen-gallery/lib/tags.php on line 315 and defined in/home/content/53/6479453/html/wp-includes/wp-db.php on line992”

It should be an easy fix, less than an hour.

My Proposal:


I read the description of the job and I know exactly what is causing the error. Some code in ‘nextgen-gallery’ needs to be updated for the new WordPress version.

I am a Zend-Certified PHP Professional and have been working on PHP/WordPress for the last 5+ years. I am available via email/skype/phone to answer any questions you may have. Let me know if you want to proceed further.

Best Regards,

Example 3

Title: WordPress mobile website with member login functionality

Project Description:

-Wordpress mobile website with member login functionality (unless you can prove there is another platform which can be as easily updated by non-web designers
-Loyalty program website with member login capabilities. Social media profiles logins integration a must (Facebook, Twitter, and Google)
-Custom forms integration
-Best user experience, website mainly will be used in mobile, so this defines the approach to design
-Fast load time–will take your advice on how to achieve this

My Proposal:

Hi Larisa, thanks for the invitation.

Yes, WordPress will be the best platform for this, as I myself have created a lot of websites in WordPress for the last 5+ years, and I know how easy it is for clients to update the content themselves.

For member login functionality, I find this plugin the very best because it is so easy to customize and extend:

Please review the following website that I worked on: This is a responsive website and will change its look depending on which device you are viewing it from. Try shrinking the width of your browser and see how it adjusts its contents.

For custom forms: Gravity Forms plugin is just awesome. There are also a lot of free plugins available that we can use, like Fast Secure Contact Form, but it depends on how we are going to use the forms, like whether they will be contact forms or forms that store user data in the database.

We can discuss load times after I get more details about the project, like how many images and pages are going to be there, how many users you are expecting, what product the loyalty program is for, etc. There are a lot of approaches we can use to achieve faster load times, like caching, hosting scripts/images on content delivery networks like Amazon, using a dedicated server, etc. But it will all depend on our case.

I am available to start immediately. I am also available via email/skype/phone to discuss this job further. Let me know if you want to proceed further.

Best Regards,

In conclusion, make the client feel that you have the right skills and experience for the job, give them an overview of how it will get completed and how much it will cost, and show that you have their best interests at heart, and the project will be yours.

This story was submitted by freelance writer Faraz Ahmed and does not constitute the views or opinions of Upwork.