This week of GSoC felt much more hands-on. After spending the first week understanding the project and getting familiar with the setup, I started focusing on building a stronger understanding of how everything fits together.
One of the biggest things I worked on was creating a detailed architectural diagram for the plugin. Since the project has several interconnected parts, I wanted to properly understand the structure and workflow before moving deeper into development. Building the diagram helped me get a much clearer picture of the system and where different components fit in.
I also created my first PR, which lays the foundation for future development. This included setting up the overall repository structure, wiring up a minimal Joplin plugin panel, adding a Tools menu command to open the Note Graph panel, and implementing a simple “x” button inside the webview to close the panel.
Another big focus this week was experimenting with embedding models. I tested multiple models on 1000+ notes, with each note averaging around 400 words, to better understand performance and trade-offs at scale. I explored different approaches using Transformer.js (WASM), Transformer.js (WebGPU), and Ollama-based embeddings, comparing speed and feasibility for larger datasets.
It was interesting to see how much performance changes depending on the model and runtime. These experiments gave me a much clearer idea of what might work best moving forward.
Until the next update, Yugal Kaushik signing off.