Contribute to free software. Seriously, contribute.

As a programmer, it will sharpen your code writing skills. You may discover that things that you thought were impossible weren’t.

I had always thought that React or Svelte were the only way to do things. I know there were alternatives that made more sense, such as (HTMX)[https://htmx.org] or Hyperscript but I didn’t try them out in a serious project because I thought they weren’t “ready”.

Come to find out Hyperscript is used by 26K projects on GitHub. One of the projects that used Hyperscript, (Cryptpad)[https://cryptpad.org], uses it exclusively all over their applications. Yes, exclusively, that means it is not used on some obsecure page but it is used as a replacement for JSX. They also use jQuery which makes everything ‘reactive’.

What was cool about this was that an idea I had, not using MVC at all, was experimented at scale and I got to try the final product. I did try out CryptPad and it was the same experience as if I tried a similar app with React or Svelte. It had the same characteristics of ‘modern’ web apps without being a modern web app.

It also didn’t use a ‘modern’ bundler and instead most scripts were wrapped in define functions that fetched the scripts and defined them as a variable. Here’s an example:

define([
    '/customize/messages.js',
], function (Messages) {
    // now "/customize/message.js" is available as Messages, pretty neat, ay?
}

Simple and efficient.

But, I wasn’t satisified and in my pursuit of satisifaction, I went ahead and contributed to the project. I don’t usually contribute because I don’t feel I have anything to add. That belief quickly disintegrated as I found out about some of the bugs that CryptPad had.

They weren’t at all fatal, but they were enough to make a user be frustrated. For example, archived notifications of form response didn’t have the title of the form, but normal notifications did.

As time passed, I got to familiarize myself with the codebase and really understand how Hyperscript impacted the codebase but without having to commit to a project for a couple of months.

I really appreciate this experience. If I had a time machine, I’d tell my younger self to drop ’everything’ and contribute to free software because of the mentoring possibilities it opens up.