You are watching from the sides, dreaming about building the next (popular?) framework or library in your field. You dream about presenting your creation in front of hundreds of people at [NameOfConference]. You believe in yourself, and all of a sudden you have thousands of downloads per month and developers relying on you to maintain your library. You think you made it, instead it all starts here.
2. I want to be an Open Source developer
Some early attempts:
● 2007 - A LL(k) Interpreted Parser:
https://github.com/mcollina/llip
● 2011 - A CoffeeScript i18n library:
https://github.com/mcollina/ci-18n
● 2013 - A control flow library for Node.js:
https://github.com/mcollina/kanban
Matteo, fresh out of
University in 2009
3. I build OSS to help other
developers build amazing
things
4. Mosca (circa 2013)
Unmaintainable architecture
Unstable CI
No community
Good niche and traction
No funds or commercial
strategy
2
1
4
3
5
Mosca is an MQTT broker. You can
find it at
https://github.com/mcollina/mosca.
It is a failed project.
11. Successful Open Source
You might think OSS is only about code. Unfortunately, it’s not. There are so many
things that successful OSS project do right.
Product strategy Documentation Dev experience Release Strategy
Licensing Reliable tooling Outreach Support
12. There are no
chances that
you can do all
of that alone
Apparently, I was a fool
0
13. Startup? No thanks
Having a successful startup is HARD.
Having a successful startup around an
Open Source is HARDER.
Any cloud provider can compete with you.
Is there a way to have other people
helping in building your vision
without building a company around
it?
17. level
Level is a community and a collection
of Node.js modules for creating
transparent databases.
18. Open Governance, the Node.js way
Excerpt from https://github.com/nodejs/node/blob/master/GOVERNANCE.md
19. “I’m going to stop
using your library
because you are
not fixing this
bug”
20. Those people do
not want to be
part of a
community.
They only want
free beer.
It’s better if they use something else, as they
will never help your project.
21. How to build an OSS project?
Scratch your own itch.
Attract people that are interested in solving the same problem you have.
Build something together, and share the ownership
Enable them to reach leadership positions.
It’s all about community.
All the rest can be fixed, together.
26. The fastest logger for Node.js, with minimal features and great community.
Pino is downloaded roughly 4 millions times per month, it has 4 collaborators and it
has now reached version 6.
27. How can I build a
new Web
Framework for
Node.js
32. Core Values
and Consensus Seeking
Open Governance
“Would you like to send a Pull
Request?”
Shared Ownership
We welcome first-time
contributors!
Community-first
33. Technical principles of Fastify
1. “Zero” overhead in production
2. “Good” developer experience
3. Works great for small & big projects
alike
4. Easy to migrate to microservices
(or even serverless) and back
5. Security
6. If something could be a plugin, it
likely should
7. Easily testable
8. Do not monkeypatch core
9. Semantic versioning & Long Term
Support
10. HTTP/1.1 spec adherence
34. One of the fastest Web framework for Node.js.
Fastify is downloaded roughly 500 thousands
times per month, it has 10 collaborators and it
has now reached version 3. It has an
ecosystem of 140 plugins
35. Oh, gosh - people use software I built
Some great communities I am part of:
● Node.js Technical Steering Committee
member
● Co-creator of Pino (2016)
● Co-creator of Fastify (2016)
In 2020, modules that I maintain will be
downloaded around 5 billion times. Matteo, Technical
Director in 2020