Canvas often feels like a mystery box—we use tools built on top of it, but few of us truly understand how it works. If you're a JavaScript developer, this might sound familiar 😊.
Back in May 2020, when I was at HackerRank and we were looking for a whiteboard to integrate, we chose Excalidraw for its simplicity after reviewing many options. Back then, I was very familiar with React, Webpack, and other tools as I used them daily at work. So, I proposed to the excalidraw team that we could build an npm package.
Since Excalidraw was at a very early stage and supporting the npm package would introduce a huge change in the codebase, it took me some time to convince them. Meanwhile, I forked the repo, and we shipped the editor at HackerRank.
However, I was aware of the nightmare it would introduce to keep the forked codebase up to date if we don’t push the changes to the base repository so I was having back-and-forth conversations with the Excalidraw team regarding the npm package. Finally, after ~8 months, WE DID IT! This was my AHA moment! Thus, I started maintaining the npm package.
However, I knew nothing about Canvas, but I was really curious about how these drawing tools worked inside. It seemed so cool that you could draw any shape and interact with it.
As a maintainer of the NPM package, I had the chance to dive deep into the codebase. However, the canvas was still a puzzle I was trying to solve.
Over time I learned a lot (I am still learning as learning can never end :p) and started building core canvas features, some of which were Text containers, Labeled arrows, adding points in line segments, hyperlinks, and more, and every time I realized there weren’t enough resources on the web about Canvas.
Besides my passion for open source, I love sharing what I've learned and experienced. As there aren’t enough resources on the web regarding Canvas, I want to make it more accessible so anyone can easily learn about it.
That's how I started speaking at conferences three years ago. I always aim to share my insights in my talks, and I enjoy doing it.
I’ve delivered talks and podcasts on Canvas, where I discuss building features like text containers, labeled arrows, and other whiteboard functionalities, along with how they are implemented in Excalidraw. You can check out my talks and podcasts (I will be adding the 2024 ones soon).
While giving these talks, I noticed that although not many people explore Canvas-related topics, the audience is curious and enjoys learning about the unknown and how things work behind the scenes. This inspired me to do it even more!
Since then I wanted to dive in one level deeper and do a workshop where we not only dive into the concepts but also build this stuff together - yes that’s the IDEA - A deep dive Hands-on workshop where we start from the basics and deep dive into internals turning these implementations into reality.
I have been thinking of doing this workshop for months and years. Last year I gave a workshop about “Building a whiteboard from scratch” at React Alicante and wanted to do more. But I couldn’t prioritize it but why am I finally doing it?
Recently at React India in Goa, Tejas and I were having a casual conversation, and suddenly this topic came up: "Hey Aakansha, why don’t you run a workshop on Canvas?", I replied, "Really? Do you think people will be interested? I have been thinking about this for a long time".Tejas is an awesome community member and an amazing friend. He strongly encouraged me to go for it, and the following week, I launched the website with the workshop announcement✨.
Hence here I am doing the workshop On January 25, 2025.
The workshop will start with the basics, keeping it beginner-friendly, right from how to render the Canvas and then take a deep dive into the internals.
And the best part is it’s not just theory but lots and lots of hands-on. Here is a quick overview 👇
You can find more details about my workshop here.
If any of this sounds interesting and exciting to you, sign up for my workshop with a special early bird discount of 40% until the 1st of December. I would love to see you there!. If you know someone who might be interested, please do share it with them :).
Since it's a live workshop, seats are limited, so the sooner you register, the better :). The recordings will also be provided after the workshop.
I am still working on the exact time of the workshop, based on the registrants across the world and I will soon share more details on the same.
If you have any questions or suggestions, please comment or contact me on LinkedIn, Twitter, or Bluesky. I'd love to hear from you!
If anything is stopping you from joining the workshop, my DMs are open. Let me know, and I'll do my best to help :)
I am very excited about the workshop. I'm learning a lot during this process, though I must admit some things are quite challenging! I will document all my learnings and experiences from this workshop.
Until then, goodbye and have a great day, and see you soon!