Simarjot · May 30, 2025

GSoC 2025 Community Bonding Period

Pre-Coding Period Highlights

  • Leading up to the coding period, I spent time getting familiar with the project structure, exploring technical possibilities, and aligning with the mentors on the development plan. Here’s what I worked on:

  • ✅ Dev Logs Hosting & Initial Exploration
    • Set up a site to host my developer logs and added my proposal to it.
    • Started exploring how to use C++ libraries directly within Node.js using two methods:
  • Node Addons via N-API and CMake.
  • Using child processes to execute system commands.

I initially tried building a Node addon with CMake-js, which allowed us to invoke C++ functions from Node. Although technically feasible, this approach introduced runtime complexity and pointer-related instability.

Discussion & Pivot

  • After some experimentation and mentor input, especially from @Divyanshu Garg and @Daniel Rossberg, I realized that a simpler and more stable method would be to run the existing gcv binary as a child process from Node.js. This method is:

  • More reliable and platform-independent.

  • Easier to debug and optimize (via spawn, caching, job queues).

  • A good fit for the stateless nature of web backends.

MVP Planning

Based on Divyanshu’s feedback, I restructured the original plan to focus on the Minimum Viable Product (MVP):

🎯 User Story: “I should be able to upload a file in any supported format and get a converted file in the desired format.”

🧩 MVP Scope: Upload a file.

Convert using the gcv backend tool.

Download the output.

I broke this down into smaller tasks and created a detailed plan which I shared with the mentors for review. The finalized document was then used to populate the GitHub Issues Board for task tracking.

Twitter, Facebook