Hello everyone,
My name is Harsh Gupta and I’m a 3rd-year undergraduate student. I’m a web developer who genuinely enjoys building things that people actually use. Alongside development, I’ve been actively involved in open source and really value collaborative projects.
In the past, I’ve contributed to AsyncAPI with around 20 PRs merged, and through that experience I’ve developed a strong understanding of TypeScript and JavaScript. Recently, I set up the Joplin project locally and have started exploring the codebase to understand how everything fits together.
I really like the vision behind Joplin. I’m excited to keep learning, contribute meaningfully, and engage with the community.
It has been around three weeks since I started contributing to Joplin, and I thought it would be a good idea to document my journey so far. I’ll continue updating this as I progress.
Week 1 — Understanding the Codebase
The first week was mostly about understanding the codebase and figuring out how things work in Joplin. I spent time exploring the repository, reading documentation, and learning how different parts of the project are structured.
I started with a few small contributions:
#14410 — Added video tutorials to documentation pages
#14423 — Prevent 4th backtick when closing fenced code block
#14474 — Add option to disable the Joplin icon for internal note links
These PRs helped me get a better understanding of how the project works and how the contribution workflow looks.
Week 2 — More Contributions
In the second week, I continued contributing and working on more issues.
PRs from this week:
#14474 — Copying from markdown preview including theme background colour
#14529 — Translate Find and Replace dialog in Rich Text editor
#14591 — Auto-scroll to selected note from "Go to Anything" search results
By this point I was getting more comfortable navigating the repository and understanding how features are implemented.
Week 3 — Proposal Research and Plugin Development
During the third week, I started looking at the GSoC ideas list. I was particularly interested in projects related to AI/ML, and ideas 3 and 4 caught my attention.
Since these ideas involve building a plugin, I decided to first understand how Joplin plugins work. I followed the official plugin tutorial:
Using the tutorial as a starting point, I built my first Joplin plugin — a Table of Contents plugin, and made some modifications to it to better understand the plugin architecture.
Repository:
Video demo:
Current Work
I am currently working on this PR:
#14561 — Added a PDF viewer for the Rich Text editor
At the same time, I have been doing research for Idea #4 and I am close to finishing my first GSoC proposal. I will post it on the forum once it is ready.
I didn’t open any PRs in the last week because I was mostly focused on working on the proposal and researching the architecture.