Google Summer of Code Project Ideas 2025
Project Ideas are proposed by Mentors from the Plone organization. Potential contributors never propose ideas. If the Plone organization is accepted to participate in GSoC on February 27, 2025, then potential contributors may discuss application ideas with Mentors in the Community Forum. See the Google Summer of Code 2025 Timeline.
Plone Google Summer of Code guidelines
The Plone Foundation has been a mentoring organization for the Google Summer of Code program for many years. It is great to have students working on Plone and related projects during the summer, it has brought many new contributors to the community.
Since a few years ago, the number of candidates has been significantly growing, and we are very happy about that. However, the amount of candidates is not easy to manage for us as a community.
We want to list here some dos and don'ts for the GSoC candidates, to help them to get started with Plone and to help us to manage the amount of candidates.
Do learn about Plone
Plone is a complex system, and it is not easy to get started with it. We expect that you have started to learn about Plone before applying.
The best way to learn about Plone is to follow our online trainings and our documentation.
Don't create issues, pull requests, or comments in GitHub
GitHub is used by contributors who use Plone for their work. GitHub is not a place for GSoC candidates to ask for guidance, help, or support. GSoC candidates should not create pull requests, issues, or comments that do not follow our contributing guidelines. In fact, doing so may result in you getting suspended or banned from the Plone GitHub organization. It also may hurt your chances of being selected to participate in GSoC.
Do introduce yourself to the community
Introduce yourself to our community by starting a new post or joining a conversation here in the community forum.
You can ask questions about Plone, and more importantly, you can discuss the GSoC projects on their dedicated threads. You can ask questions about the projects, and you can propose your own ideas.
Don't be disrespectful
Candidates must treat other developers and GSOC mentors with respect, both in text and communication. And also respect their limited time that they make available to our project and cause. If you don't receive an answer from a Team Lead, other developer or Release Manager, it is considered impolite to start pinging them in comments every day for an answer. Pinging 4 or 5 other developers because you didn't get an answer is considered rude as well.
Do focus on your application
What will make the real difference between candidates is the quality of their application, not the amount of GitHub issues they have commented on.
Make your application stand out by showing that you have learned about Plone and that you have a good understanding of the project you are applying for.
The GSoC contributor application period will start on March 24, 2025.
Thank you!
Ideas
Note: This is a draft list, the ideas listed here will be refined and detailed in the coming days, and we might add new ones too.
Keyword manager for Volto
Skills: React and Python
An implementation of KeywordManager for Volto. Basically, it is a tool to manage tags/keywords on a site. Over time, as multiple people tag content items, it is almost inevitable that there will be duplicates ("labor" vs "labour", various spellings of countries, etc).
A way to handle (merge, change, delete) keywords should be more or less a core feature, but it's probably safer to have it as add-on first. That's the objective of this project.
The UX for Products.Keywordmanager has always been a bit clunky, but functional. As it targets mainly site admins or 'senior editors', it doesn't have to be super user friendly but should cope with hundreds or thousands of keywords.
There could be ways to help (like marking words that are spelled similarly) but ultimately it is an editor decision to say that e.g. "global warming" and "climate change" should be merged as tags, or not.
Size: 350
Rating: intermediate
Possible mentors:
Expected outcome: a working Volto add-on implementing the feature, with tests and documentation.
Installation and documentation
Skills: Python
A mix of dev and documentation: streamline/simplify the Plone installation instructions, which are spread out over docs.plone.org, training.plone.org, plone.org.
They have different target audiences to consider: back end devs, front end devs, add-on devs, I Just Wanna Have Fun And Use Plone people, with docker and without docker…
Size: 175
Rating: intermediate
Possible mentor:
Expected outcome: documentation.
GUI for export/import
Skills: React, Python
We have plone.importexport but we should have it GUI-based so mortals can use it.
Here are the UI mockups from the last time this was attempted as a GSoC: https://github.com/collective/plone.importexport/issues/15
Building on top of the excellent exportimport and using react would make this a lot more achievable now.
Size: 350
Rating: intermediate
Possible mentors:
Expected outcome: a working Volto add-on implementing the feature, with tests and documentation.
Volto themes
Skills: React
The objective of this project is to create new ready-to-use Volto themes.
Size: 175
Rating: intermediate
Possible mentor: Rafael
Expected outcome: Volto themes and documentation
Workflow manager for Volto
Skills: React and Python
Size: 350
Rating: hard
Possible mentor: Rafael
Expected outcome: a working Plone add-on implementing the feature, with tests and documentation.
Social media sharing
Skills: React, Python
Size: 175
Rating: easy
Possible mentor:
Expected outcome: a working Plone add-on implementing the feature, with tests and documentation.
Update pas.plugins.authomatic to the current state of different providers
Skills: React, Python
Size: 175
Rating: intermediate
Possible mentor: Jens W. Klein
Expected outcome: a working Plone add-on implementing the feature, with tests and documentation.
Repeater block
Skills: React, Python
The ability to reuse blocks types as the items in a listing to make listings more powerful. e.g. teaser listing, image listing etc.
In addition the ability to have sources plugins so listings can be other kinds of data not just plone search, for example social media posts, RSS feeds, related/recommended items to this content or links to search pages with different facets preselected.
Size: 175
Rating: intermediate
Possible mentor: Rafael
Content warnings
Skills: React, Python
An content warning system for when content violates custom rules, such as WCAG guidelines, design system rules or other organisation specific guidance. Similar to content rules but warning during edits as well as reports across the whole site.
Size: 175
Rating: intermediate
Possible mentor:
Expected outcome: a working Plone add-on implementing the feature, with tests and documentation.
Integrate akismet.com
Skills: React, Python