Why I love working on Mozilla Thimble

David Humphrey
Read, Write, Participate
7 min readMar 15, 2017

Yesterday one of my open source students, Oleg Mytryniuk, was in my office asking a question about a bug he was fixing in Thimble. As he was leaving, he turned to me and said: “you, need to blog more about what we’re doing with Thimble.” It made me smile: it’s exactly the kind of cheeky thing I love to say to my students. He’s right, though; so Oleg, this post is for you!

Thimble is one of my favourite Mozilla projects, and I love working on it. For one, I love how the DNA of Thimble is the same whether you’re a user or contributor: it’s 100% web tech all the way down (the entire editor is just a static web page).

It’s not uncommon for us to see people start out learning to code with Thimble, only to later come back and submit patches to the product in HTML, CSS, and JS! Having a teaching and learning tool for the web, which is also made of the exact same web technologies, makes it possible for a single project to accommodate everyone, no matter their experience and knowledge of web development. Thimble is for everyone.

Having a project that is appropriate for all ages and technical abilities is unique within open source and Mozilla, and I’m drawn to the diversity of people it brings to the community. Thimble gets used in a lot of different contexts. We hear from elementary and high school teachers, professors, home schoolers, mentors, people leading workshops, clubs, and every other learning environment imaginable.

Lots of people are working on solving the problem of how to make tech more accessible, to teach coding to kids, to break down barriers in order to get more girls involved — and Thimble is part of all that. It makes me happy that my open source work and teaching can help to enable people all over the world to engage with the web and web literacy:

I’m also finding that the opportunity for people to learn about the web with Thimble extends into its development community. In the same way that kids are using Thimble to learn HTML at their local library, lots of new software devs and CS students are joining us in order to learn about web technologies via involvement in Thimble’s GitHub repos. That’s not something I expected. In 2017 Thimble has become a great platform for learning the web, both for those using it and those developing it.

To give you an idea of what I mean, let me share some stats and stories with you from a survey of the community I conducted last week:

  • Thimble has had over 300 contributors involved in the project, and 85 of these were active in Jan/Feb 2017 alone. Of these 300+ developers, more than half (56%) self identify as students. My own students, while a significant group (37), are still less than half of the total developers working in 2017.
  • Many of the contributors working on Thimble (70%) have listed their country on GitHub, and together they represent 33 different countries, everywhere form Brazil to Turkey, China to the UK:
Thimble’s contributor community is global

While numbers are helpful in gaining an overall picture, what I’ve been most excited about are the people I’m meeting. Who are all these amazing people working on Thimble? Let me introduce you to a handful of those who’ve joined us in the past few months, and tell you about their work.

From Top-Left to Bottom-Right: Harkirat Singh, Ray Gervais, Margaryta Chepiga, Sana Riaz, Aayush Sanghavia, Dorel Barbu

Harkirat Singh is part of SDSLabs at the Indian Institute of Technology (IIT) in Roorkee India. He’s been fixing small bugs as fast as we can file them, and lately has started work on building visual editors for A-Frame WebVR pages in Thimble.

Ray Gervais is a student in my class at Seneca in Toronto, who has been working on adding a built-in development console for Thimble to help users quickly see log and error messages coming from their pages. The feature was requested by a computer science professor in BC, Canada, who is using Thimble to teach his first year CS programming course.

Margaryta Chepiga is also a student in my class at Seneca in Toronto, who has been working on improving our .zip/.tar project import feature and addressing internationalization bugs that we have.

Sana Riaz is a CS student from Pakistan, who has been helping to improve the UI in our Brackets editor.

Aayush Sanghavi is a CS student from India, who has been working on a number of bugs, among them adding the ability for our visual colour editor to work without first needing to specify a colour, something that has confused our users.

Dorel Barbu is a CS student from Romaina, who has been working on fixing our colour theme in the editor, and how it applies to the filetree.

Along with these six, there are dozens more currently filing my inbox and GitHub notifications with PRs and cool ideas in issues. It’s been a lot of fun getting to know these and so many other developers, all of whom are stepping out of their comfort zones, diving into tricky problems in code they didn’t write, learning git and GitHub, and participating in the growth and development of Mozilla and the open web.

If you’re interested in helping us, there are a number of things we could use:

  • more people who would be willing to mentor, do reviews, and generally be present to help all the students and new devs that are coming to us. I’ve been trying to focus my time on helping people vs. writing new code, and it’s really rewarding. If you’re an experienced dev and looking for some of that, we could use your help.
  • people interested in working on real-time collaboration. We are starting to explore ways to enable remote mentoring and real-time collaboration in the editor. Many educators we speak with have a need for this, and we’d like to find a way to do it.
  • people interested in fixing bugs in our editor, which is a fork of Brackets. We have lots of things we could do if someone had time and interest. It’s a fun code base to hack on. For example, we have lots of things we’d like to do with the filesystem treeview, which is a react component.
  • people who know how to make multi-service (e.g., multiple node apps) projects easier to install as a dev. So many of our devs are on Windows and are just getting started with coding, and the complexity of our dev environment can be overwhelming. I’d love to see it get easier.
  • people who know about doing social-sign-on with things like passport.js, and could help us add support for different auth providers.
  • people who are interested in problems around offline and file syncing.
  • people who like design and want to work on creating and implementing new UX and UI.

The list goes on. There’s lots of fun to be had whether you’re looking for a challenging bug, or to make your first contribution to an open source project with a single line of CSS. The best part is you can do it in the company of a vibrant and diverse community of students, teachers, developers and localizers. Thimble is fun.

--

--

David Humphrey
Read, Write, Participate

Believer, Husband, Dad, Writer, Birder, CS Prof @ Seneca College, Mozilla Firefox Developer, JavaScript, Squash Player