I worked full-time on a project that was just one hundred lines of code in 1996.
In the early 1990s a friend of mine helped me land a “computer gig” at just twenty years old. I had not attended university, but I had already spent years wasting all my spare time programming my C64 home computer in assembler, writing demos and games.
This particular gig was for a company called IBM. I was to install and customize their RS/6000 unix machines for Swedish customers. The hardware arrived at this location where each machine would be installed and personalized according to the customers’ orders and wishes.
A colleague at this new job would soon proudly show off his 1/4” tape “full of source code”. Lots of source code for programs, completely free! Most of them were written in C, a language I had been dabbling with for a few years already by then and this took me out to deeper waters.
A few years later I was the co-author of an IRC bot – released in the open for everyone and I had a lot of fun with that. The code was made freely available but not “Open Source”, because at that time nobody had yet heard the term.
A hundred lines of code
As a side thing for the bot project, I got involved in creating a small tool for downloading content over HTTP in late 1996, and it did not take long until the side thing became my main spare time project. In the spring of 1998 we renamed that project to curl and a special journey had started for real. Oh, and by that time the term Open Source was also coined so now we had a term for what we were doing!
Those projects of mine were open source from day one as I wanted to contribute to the ever growing collection of free and useful code out there. I was acutely aware that I needed help from others to make my projects polished and to get them to properly work in many different environments – to reach success basically. I asked for people’s bug reports, patches, feedback and comments. In the beginning they were few and infrequent, but the more the project matured and improved, interaction with others increased. I have always tried to thank contributors and give them proper credit, as that is often the only currency available. I always try to be inclusive in wording and speak of “we” and not “I” about the project, even in times when most of the changes were done by me.
We shipped new curl releases early and often. Added features, fixed bugs, iterated. I spent much of my spare time on this for years to come.
Later, through the decades, I would co-start more Open Source projects (like Rockbox) and I would “take over” and push development forward in others (libssh2, c-ares) but my original main guiding principles remained. Respect contributors, remain inclusive, lower contribution friction as much as possible, give credits. Of course in addition to writing excellent code that is documented clearly so that people get a better chance to use the products and help make them better.
To Mars
In the early 2020s, when I had started to finally work full-time on curl and when we estimated curl being used in somewhere around twenty billion installations we learned it was involved in the helicopter landing on Mars. A surreal milestone.
The spare-time-approach to curl from the 1990s is quite different from the one-of-the-most-used- software-components-in-the-world-approach we have today. These days we follow procedures and protocols. We tighten every bolt iteratively. We do reviews, run scanners, analyzers and fuzzers, we sign tags, commits and releases and we do fully reproducible release tarballs etc. We spend significant efforts on security and thinking about how to further improve security.
We have grown the project to serve as a digital infrastructure cornerstone with excellence. We strive at being top of the class in every aspect when it comes to Open Source, code quality, documentation and security. This, while at the same time driving development forward at a high speed to offer the world the Internet transfers they need, want and deserve. Give something a lot of time and you can really accomplish something.
More, better, brighter
The curl project is of course not free of challenges and they are probably not that different from other projects of similar kinds. We are a handful of aging maintainers that are all (too) similar to each other: old western white men. We are always looking for more maintainers and more diverse contributors. We run an infrastructure project that is mostly invisible and out of people’s minds and we struggle with the financial side to ensure that curl can live to be a hundred years old.
Open Source use and development have truly exploded since the term was born. It is now used everywhere but we are not done and there are still many things to work on. We need to make it more sustainable, with maintainers and funding. We need to keep improving security in source code, infrastructure, tooling and supply chains. We need to take care of the maintainers we have. If you can’t complete what you want today, just continue tomorrow or the day after. No stress. Do it for the fun of it. In the great scheme of things, no one will care if you did not complete it yesterday.
Let’s make an awesome Open Source future.
/ Daniel Stenberg, April 28, 2025
Read stories shared by other maintainers.
This story was published under CC BY-SA by the author.