Skip to content

Instantly share code, notes, and snippets.

Created September 18, 2022 23:36
What would you like to do?
Final report on Plugin Discovery Website Project in Google Summer of Code 2022

GSoC 2022 - Improve plugin search and discoverability

Contributor: Retr0ve

Mentors: JackGruber and PackElend

This project was to build a Plugin Discovery Website to help Joplin users to find the plugins they want easily.

What Was Done

1. Add support for screenshots in plugin manifest.json

PR: laurent22/joplin#6672


  • Added screenshots field in plugin manifest.json
  • Wrote several rules in the packing script to validate the screenshots

Status: Completed and merged

2 . Separate allPossibleCategories to @joplin/lib

PR: laurent22/joplin#6754


  • Refactor allPossibleCategories field from hard code to a customized json in @joplin/lib
  • Updated packing script to access allPossibleCategories field

Status: Completed and merged

3. Plugin Website



  • Built a static website generator.
  • Utilized Github Action to automate the building process.
  • Used jest for testing.
  • Implemented UI using HTML, CSS(Bootstrap), and JavaScript.

Status: To be reviewed.

What's left to be done

  • Merging code from the demo repo to the main repo.
  • Implementing the comment section of the website.

Challenges and learnings

The most important thing I have learned from this project is the maintainability of the codebase. If we added too many newest cool techs, it can cause a maintenance problem in the future.

For other aspects, I learned:

  • Using jest to write unit test
  • Typescript can be helpful in maintenance
  • Trying to hear more voices from the community
  • Understand the user's demand rather than pushing them to accept your idea

In the end, I want to thank my mentors JackGruber and PackElend for sparing their valuable time to give me support and guidance. And also thanks to all the community members for giving their advice.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment