Writing a good project proposal

You've narrowed down your search of organizations and projects, you've read all the documentation, made first contact, you've started communicating directly with potential mentors, perhaps even contributed to the codebase. Now it's time for the critical process of turning a project idea into a project proposal.

Evaluating the project idea

The project idea you’re interested in captures all that you need to know in order to prepare a strong proposal. It includes a high level description of the idea, what are the expected outcomes and resources you should read to gather more information about the idea. Make sure you go through each of these diligently. In some cases, your potential mentor(s) will have lots of ideas and preconceptions about each project that were not included in its original description on the Project Ideas page. Consider any further questions you might have about the project, how it might be implemented, and what it would entail. If there's still anything unclear about the project idea and requirements, get your doubts cleared. Formulate your questions and suggestions regarding each idea into a clear and concise communication and as much detail as possible.

You may even consider preparing mock-ups (illustrations, powerpoint, or google docs) to help clarify your understanding and vision of the project. You will want to discuss the scope of the project idea, including which parts are critical versus optional for the summer timeline. This process will directly feed into your proposal and ideally distinguish it from all the others. Just think about it: if you've helped clarify the project idea and contributed to an actual plan of action, it makes it an easy process for mentors to evaluate your proposal and give it a high ranking!

Asking the right questions

Learn to ask smart questions. Refer to Catb’s Guide To Asking Smart Questions. It is one single resource that can make it or break it; it teaches the art of asking good questions and patience to look through existing answers.

If you reach out to the mentor asking something like

Hey, I would like to contribute to X! Where do I start?

They will politely point out available online resources (especially this guide), and you will not generate any special interest. Everyone is busy, and there is so much stuff going on that you will never get noticed if you don't stand out of the crowd.

Instead, carefully prepare your message to your mentor and go with something like

Project idea X talks about improving library Y. Library Y already has features R and S, and I think feature T would also be useful because of A, B and C. I have already thought about how we could go about implementing T in library Y: [DESCRIBE WHAT YOU HAVE THOUGHT]. Can you advise if I’m thinking in the right direction? Or if I am missing something?

Of course, this is just a rough template, but the idea here is that you must own the project idea as if it is yours, justify it and then show that you have already thought about the problem and your doubts. Then, and only then, your mentor might step up and accept to guide you. But no one will do the work of preparing the project proposal for you beyond what they have already done in the project idea description. Don’t feel like you’re working for your mentor, or for Summer of Bitcoin. You’re working for the community and your mentor is helping guide you where you are stuck, but it is you in the driver’s seat. Make sure your mentor knows you by name (in a positive way) before the proposal deadline ends.

It might seem like a ton of work. However, it is also one of the most rewarding experiences in terms of professional growth.

The earlier you start engaging with your mentor and preparing your proposal, the better. Sharing your proposal early helps you get early feedback.

Preparing a draft proposal

Below are certain elements of the proposal that you must include. Proper attention to these elements will greatly improve your chances of a successful proposal. Remember, the point of your proposal is to show you are the best candidate and that means showing that nobody knows the project better than you!

Name and Contact Information

Putting your full name on the proposal is not enough. Provide full contact information, including your discord nick, time zone, email address, university name, country, GitHub, LinkedIn or website.


Your title can be the same as that of the project idea.


Start your proposal with a short summary, designed to convince the reviewer to read the rest of the proposal. Describe the project in about 50 words. Avoid directly copying the description from the organization’s project ideas page.

Project Plan

This will form the core of your project proposal. Describe how you would go about the project, detailing sequentially what you would do.

Include a brief, clear work breakdown structure with milestones and deadlines. You may want to start your summer by producing some kind of white paper, or planning the project in traditional Software Engineering style.

If your project proposal involves building a user interface, include wireframes or mockups. Provide the class and method structures wherever applicable. Which source files, classes, methods, functions, etc do you plan to work on? Will you be adding a fresh module as opposed to modifying some existing components? Lay out the pseudo code if you can. This is not required, but it can show that you are dedicated enough to get a start, and can demonstrate how things will work for more complicated projects. You don’t need to go as far as prototyping every single function, but you should have a vision of how it will all eventually work at a reasonable level of detail, such as important data structures and algorithms, which libraries or packages you will use and why, what will your tests look like. If you're in the design track, explain how you would go about each step in the process of design thinking and user research.

Split all of it into sections or phases. Make sure to label each of the deliverables as optional or required. It’s OK to include thinking time (“investigation”) in your work schedule. Overall, your deliverables should include investigation, coding and documentation.

Have a realistic plan. It's better to have a lighter proposal that can deliver a polished and mergeable piece of code than a heavy proposal that is half done by the end of the summer. This is best achieved by constantly communicating with mentors through the proposal round. Seek early feedback!

Project Timeline

This is the second most important section. Describe how you will allocate time toward each of your deliverables right from the first day to the final submission day. Split it up into smaller time periods (such as two weeks) and describe what you would do in each period. You can also further split each deliverable into smaller segments and allot a time frame for each segment. As an example, "Days 1-7: Implement and test interface X" is better than "Days 1-20: Implement feature A".

Be completely clear about outside time commitments as part of your proposal. Do not surprise an organization with your time commitments later on.

Future Deliverables

The organization would like to have students who would stick around after the program, become full-time contributors and help the organization grow. Share what you could do more in the project after the internship period is over.

Benefits to Community

Don’t forget to make your case for a benefit to the project/organization, not just to yourself. What is it solving? What would it allow users to do? Describe some use cases. Why would Summer of Bitcoin and the project/organization/mentor be proud to sponsor this work? How would open source or society as a whole benefit? What cool things would be demonstrated?

Biographical Information

Summarize your education, work, and open source experience. Be sure to communicate personal experiences and skills that might be relevant to the project. State things that make you stand out from the crowd. Convince your mentor that you are a perfect candidate for the project and you can do the work.

If there was a competency test attached to your idea, explain how you performed the tasks. Link to the code or article that came out of it.

If you've contributed already to the project you're applying to (or other open-source projects), list all the bug fixes you’ve made or code reviews you’ve participated in. Name the issue, attach a link to the issue, describe briefly how you solved the issue and how it helped the project. If you're in the design track, share the design artifacts you have contributed with.

General Notes

There is no page limit to a proposal, however, if your proposal is less than 6 to 8 pages, you didn’t include enough details. Make a draft proposal in a google document and share it early with your mentors so they can review it and ask you questions or request more detail on aspects of your proposal before the final deadline. Ensure to set the permissions to Google doc as anyone can edit so mentors can provide their comments.

Don't be that person: Cut and pasting an idea from the projects page and turning that in as your project's description is a big no-no. You'll be expected to research and submit your own words about how to accomplish the project your way, not just state the end result.

Remember, many students are submitting proposals so it can take mentors a few days or even a week+ to get back to you if they have questions. So the earlier you submit a well written draft proposal, the more time they have to give you feedback on it so you can make it stronger and understand more of what they are looking for. The things that they tell you to improve will tend to be the things that they will look at when reviewing your proposal.

All rules of scientific plagiarism apply. Make sure you've authored your proposal yourself, and reference your sources of information.

Submitting your proposal

You will be asked to submit your draft proposal on our website by logging into your account, visiting your project idea and clicking apply where you’ll be able to provide the link to your google document. You can edit the draft as many times as you wish before the proposal deadline of April 30, 2024.

There is an official limit of three submitted proposals, which means you can submit a maximum of three project proposals for any three ideas you’re interested in. Ensure they are all high-quality proposals. If you have several strong possibilities for the same organization, consider submitting several proposals. Mentors will figure out which one they like best. But avoid sending many medium-quality proposals and concentrate on fewer high-quality proposals.

References for writing a good proposal

We have compiled a list of some high-quality past proposals and tips to write a winning proposal:

Tips :

How to Write a Winning Proposal - Part 1

How to Write a Winning Proposal - Part 2

Example proposals authored by past Summer of Bitcoin students:

Summer of Bitcoin 2021 | Utreexo | By Andreas Kouloumos

Summer of Bitcoin 2021 | Lightning Network Research | By Eduardo Miranda

Summer of Bitcoin 2021 | Alby Design | By Adithya Vardhan

Summer of Bitcoin 2021 | Bcoin | By Anmol Sharma

Summer of Bitcoin 2021 | Bitcoin Core | By Animesh Bilthare

Summer of Bitcoin 2021 | Bitcoin Design | By Autumn Domingo

Summer of Bitcoin 2021 | BDK | By Cesar Alvarez

Example proposals authored by past GSoC students:

Google Summer of Code (GSOC) sample proposal | by Ashray Malhotra

GSoC 2016 Proposal - Accuracy Review of Wikipedias | by Priyanka Mandikal

GSoC 2017 Proposal - Word by Word Subtitle Sync | by Saurabh Shrivastava

GSoC Proposals accepted for KDE

Archive of GSoC proposals

Last updated