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