SlideShare a Scribd company logo
1 of 36
Download to read offline
Build a Community,
not a Framework
@matteocollina
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
I build OSS to help other
developers build amazing
things
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.
Unmaintainable software
“I’m going to stop
using your library
because you are
not fixing this
bug”
I felt destroyed
Impostor
Syndrome
What I think other
people know
What I
know
Reality
What I think
other people
know
What I know
Was I just building
software for myself?
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
There are no
chances that
you can do all
of that alone
Apparently, I was a fool
0
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?
An Open Source project is as good
as its community is.
Let’s try again
2013 - LevelGraph
https://github.com/mcollina/levelgraph
level
Level is a community and a collection
of Node.js modules for creating
transparent databases.
Open Governance, the Node.js way
Excerpt from https://github.com/nodejs/node/blob/master/GOVERNANCE.md
“I’m going to stop
using your library
because you are
not fixing this
bug”
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.
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.
My experience
In 2016
I found my
niche.
I was in London
and I spent San
Valentine’s night
coding a
flamegraph tool
Yes!
“Would you like to help
maintaining Pino?”
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.
How can I build a
new Web
Framework for
Node.js
There are no
chances that I
can do all of
that alone
This time, I am no fool
0
I will build a
community
this time
First things first, let’s get
another human being on
the journey
Genesis
of a
Framework
Core Values
and Consensus Seeking
Open Governance
“Would you like to send a Pull
Request?”
Shared Ownership
We welcome first-time
contributors!
Community-first
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
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
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
nearform.com
Thank you for
your time.
Matteo Collina, Ph.D.
Technical Director
@matteocollina
matteo.collina@nearform.com

More Related Content

Similar to Build a community, not a framework

WE16 - Navigating the Seas of Open Source Projects
WE16 - Navigating the Seas of Open Source ProjectsWE16 - Navigating the Seas of Open Source Projects
WE16 - Navigating the Seas of Open Source ProjectsSociety of Women Engineers
 
Bootstrapping Using Free Software
Bootstrapping Using Free SoftwareBootstrapping Using Free Software
Bootstrapping Using Free SoftwareColin Charles
 
Koha: Participation is Key
Koha: Participation is KeyKoha: Participation is Key
Koha: Participation is KeyNicole C. Engard
 
Contributing to an Open Source Project 101
Contributing to an Open Source Project 101Contributing to an Open Source Project 101
Contributing to an Open Source Project 101POSSCON
 
Contributing to Open Source
Contributing to Open SourceContributing to Open Source
Contributing to Open SourceAmol A. Sale
 
Open Your Mind: Open Source in Libraries
Open Your Mind: Open Source in LibrariesOpen Your Mind: Open Source in Libraries
Open Your Mind: Open Source in LibrariesNicole Baratta
 
How to get started in Open Source!
How to get started in Open Source!How to get started in Open Source!
How to get started in Open Source!Pradeep Singh
 
Building the Orchard Community
Building the Orchard CommunityBuilding the Orchard Community
Building the Orchard CommunityPaula Hunter
 
Resisting The Feature Creature
Resisting The Feature CreatureResisting The Feature Creature
Resisting The Feature CreatureChristian Heilmann
 
What’s Driving Open Source (for MyGOSSCon)
What’s Driving Open Source (for MyGOSSCon)What’s Driving Open Source (for MyGOSSCon)
What’s Driving Open Source (for MyGOSSCon)Simon Phipps
 
MongoTorino 2013 Opening Keynote
MongoTorino 2013 Opening KeynoteMongoTorino 2013 Opening Keynote
MongoTorino 2013 Opening KeynoteMitch Pirtle
 
Open Collaboration and Peer Production: Technical Infrastructure and Communit...
Open Collaboration and Peer Production: Technical Infrastructure and Communit...Open Collaboration and Peer Production: Technical Infrastructure and Communit...
Open Collaboration and Peer Production: Technical Infrastructure and Communit...Sebastian Benthall
 
Take the Open Source road: learn, share, grow
Take the Open Source road: learn, share, growTake the Open Source road: learn, share, grow
Take the Open Source road: learn, share, growNaLUG
 
Towards An Open Development Culture V1.0
Towards An Open Development Culture V1.0Towards An Open Development Culture V1.0
Towards An Open Development Culture V1.0larskurth
 
openp2pdesign.org @ Open Hub Days, Hub Milan
openp2pdesign.org @ Open Hub Days, Hub Milanopenp2pdesign.org @ Open Hub Days, Hub Milan
openp2pdesign.org @ Open Hub Days, Hub MilanMassimo Menichinelli
 
Foss final seminar
Foss final seminarFoss final seminar
Foss final seminarSmit Patil
 
Foss final seminar
Foss final seminarFoss final seminar
Foss final seminarSmit Patil
 
Open Source: Freedom and Community
Open Source: Freedom and CommunityOpen Source: Freedom and Community
Open Source: Freedom and CommunityNicole C. Engard
 

Similar to Build a community, not a framework (20)

WE16 - Navigating the Seas of Open Source Projects
WE16 - Navigating the Seas of Open Source ProjectsWE16 - Navigating the Seas of Open Source Projects
WE16 - Navigating the Seas of Open Source Projects
 
Bootstrapping Using Free Software
Bootstrapping Using Free SoftwareBootstrapping Using Free Software
Bootstrapping Using Free Software
 
Koha: Participation is Key
Koha: Participation is KeyKoha: Participation is Key
Koha: Participation is Key
 
Contributing to an Open Source Project 101
Contributing to an Open Source Project 101Contributing to an Open Source Project 101
Contributing to an Open Source Project 101
 
Contributing to Open Source
Contributing to Open SourceContributing to Open Source
Contributing to Open Source
 
Open Your Mind: Open Source in Libraries
Open Your Mind: Open Source in LibrariesOpen Your Mind: Open Source in Libraries
Open Your Mind: Open Source in Libraries
 
How to get started in Open Source!
How to get started in Open Source!How to get started in Open Source!
How to get started in Open Source!
 
Ulterior motives
Ulterior motivesUlterior motives
Ulterior motives
 
Building the Orchard Community
Building the Orchard CommunityBuilding the Orchard Community
Building the Orchard Community
 
Let's talk FOSS!
Let's talk FOSS!Let's talk FOSS!
Let's talk FOSS!
 
Resisting The Feature Creature
Resisting The Feature CreatureResisting The Feature Creature
Resisting The Feature Creature
 
What’s Driving Open Source (for MyGOSSCon)
What’s Driving Open Source (for MyGOSSCon)What’s Driving Open Source (for MyGOSSCon)
What’s Driving Open Source (for MyGOSSCon)
 
MongoTorino 2013 Opening Keynote
MongoTorino 2013 Opening KeynoteMongoTorino 2013 Opening Keynote
MongoTorino 2013 Opening Keynote
 
Open Collaboration and Peer Production: Technical Infrastructure and Communit...
Open Collaboration and Peer Production: Technical Infrastructure and Communit...Open Collaboration and Peer Production: Technical Infrastructure and Communit...
Open Collaboration and Peer Production: Technical Infrastructure and Communit...
 
Take the Open Source road: learn, share, grow
Take the Open Source road: learn, share, growTake the Open Source road: learn, share, grow
Take the Open Source road: learn, share, grow
 
Towards An Open Development Culture V1.0
Towards An Open Development Culture V1.0Towards An Open Development Culture V1.0
Towards An Open Development Culture V1.0
 
openp2pdesign.org @ Open Hub Days, Hub Milan
openp2pdesign.org @ Open Hub Days, Hub Milanopenp2pdesign.org @ Open Hub Days, Hub Milan
openp2pdesign.org @ Open Hub Days, Hub Milan
 
Foss final seminar
Foss final seminarFoss final seminar
Foss final seminar
 
Foss final seminar
Foss final seminarFoss final seminar
Foss final seminar
 
Open Source: Freedom and Community
Open Source: Freedom and CommunityOpen Source: Freedom and Community
Open Source: Freedom and Community
 

More from Matteo Collina

No. la sottile arte di trovare il tempo dove non esite - codemotion 2015
No. la sottile arte di trovare il tempo dove non esite - codemotion 2015No. la sottile arte di trovare il tempo dove non esite - codemotion 2015
No. la sottile arte di trovare il tempo dove non esite - codemotion 2015Matteo Collina
 
Making your washing machine talk with a power plant
Making your washing machine talk with a power plantMaking your washing machine talk with a power plant
Making your washing machine talk with a power plantMatteo Collina
 
Crea il TUO database con LevelDB e Node.js
Crea il TUO database con LevelDB e Node.jsCrea il TUO database con LevelDB e Node.js
Crea il TUO database con LevelDB e Node.jsMatteo Collina
 
No. la sottile arte di trovare il tempo dove non esite.
No. la sottile arte di trovare il tempo dove non esite.No. la sottile arte di trovare il tempo dove non esite.
No. la sottile arte di trovare il tempo dove non esite.Matteo Collina
 
Making things that work with us - Distill
Making things that work with us - DistillMaking things that work with us - Distill
Making things that work with us - DistillMatteo Collina
 
Exposing M2M to the REST of us
Exposing M2M to the REST of usExposing M2M to the REST of us
Exposing M2M to the REST of usMatteo Collina
 
The internet of things - Rails Girls Galway
The internet of things - Rails Girls GalwayThe internet of things - Rails Girls Galway
The internet of things - Rails Girls GalwayMatteo Collina
 
Making things that works with us - First Italian Internet of Things Day
Making things that works with us - First Italian Internet of Things DayMaking things that works with us - First Italian Internet of Things Day
Making things that works with us - First Italian Internet of Things DayMatteo Collina
 
Making things that works with us codemotion
Making things that works with us   codemotionMaking things that works with us   codemotion
Making things that works with us codemotionMatteo Collina
 
Building a multi protocol broker for the internet of things using nodejs
Building a multi protocol broker for the internet of things using nodejsBuilding a multi protocol broker for the internet of things using nodejs
Building a multi protocol broker for the internet of things using nodejsMatteo Collina
 
L'universo dietro alle App
L'universo dietro alle AppL'universo dietro alle App
L'universo dietro alle AppMatteo Collina
 
Making things that works with us
Making things that works with usMaking things that works with us
Making things that works with usMatteo Collina
 
Enter the app era with ruby on rails (rubyday)
Enter the app era with ruby on rails (rubyday)Enter the app era with ruby on rails (rubyday)
Enter the app era with ruby on rails (rubyday)Matteo Collina
 
E così vuoi sviluppare un'app (ci servono le APi!)
E così vuoi sviluppare un'app (ci servono le APi!)E così vuoi sviluppare un'app (ci servono le APi!)
E così vuoi sviluppare un'app (ci servono le APi!)Matteo Collina
 
Operational transformation
Operational transformationOperational transformation
Operational transformationMatteo Collina
 
Enter the app era with ruby on rails
Enter the app era with ruby on railsEnter the app era with ruby on rails
Enter the app era with ruby on railsMatteo Collina
 
E così vuoi sviluppare un'app
E così vuoi sviluppare un'appE così vuoi sviluppare un'app
E così vuoi sviluppare un'appMatteo Collina
 
The usability of open data
The usability of open dataThe usability of open data
The usability of open dataMatteo Collina
 
Designing and developing mobile web applications with Mockup, Sencha Touch an...
Designing and developing mobile web applications with Mockup, Sencha Touch an...Designing and developing mobile web applications with Mockup, Sencha Touch an...
Designing and developing mobile web applications with Mockup, Sencha Touch an...Matteo Collina
 

More from Matteo Collina (20)

No. la sottile arte di trovare il tempo dove non esite - codemotion 2015
No. la sottile arte di trovare il tempo dove non esite - codemotion 2015No. la sottile arte di trovare il tempo dove non esite - codemotion 2015
No. la sottile arte di trovare il tempo dove non esite - codemotion 2015
 
Making your washing machine talk with a power plant
Making your washing machine talk with a power plantMaking your washing machine talk with a power plant
Making your washing machine talk with a power plant
 
Crea il TUO database con LevelDB e Node.js
Crea il TUO database con LevelDB e Node.jsCrea il TUO database con LevelDB e Node.js
Crea il TUO database con LevelDB e Node.js
 
No. la sottile arte di trovare il tempo dove non esite.
No. la sottile arte di trovare il tempo dove non esite.No. la sottile arte di trovare il tempo dove non esite.
No. la sottile arte di trovare il tempo dove non esite.
 
Making things that work with us - Distill
Making things that work with us - DistillMaking things that work with us - Distill
Making things that work with us - Distill
 
Exposing M2M to the REST of us
Exposing M2M to the REST of usExposing M2M to the REST of us
Exposing M2M to the REST of us
 
The internet of things - Rails Girls Galway
The internet of things - Rails Girls GalwayThe internet of things - Rails Girls Galway
The internet of things - Rails Girls Galway
 
Making things that works with us - First Italian Internet of Things Day
Making things that works with us - First Italian Internet of Things DayMaking things that works with us - First Italian Internet of Things Day
Making things that works with us - First Italian Internet of Things Day
 
Making things that works with us codemotion
Making things that works with us   codemotionMaking things that works with us   codemotion
Making things that works with us codemotion
 
Building a multi protocol broker for the internet of things using nodejs
Building a multi protocol broker for the internet of things using nodejsBuilding a multi protocol broker for the internet of things using nodejs
Building a multi protocol broker for the internet of things using nodejs
 
L'universo dietro alle App
L'universo dietro alle AppL'universo dietro alle App
L'universo dietro alle App
 
Making things that works with us
Making things that works with usMaking things that works with us
Making things that works with us
 
Enter the app era with ruby on rails (rubyday)
Enter the app era with ruby on rails (rubyday)Enter the app era with ruby on rails (rubyday)
Enter the app era with ruby on rails (rubyday)
 
E così vuoi sviluppare un'app (ci servono le APi!)
E così vuoi sviluppare un'app (ci servono le APi!)E così vuoi sviluppare un'app (ci servono le APi!)
E così vuoi sviluppare un'app (ci servono le APi!)
 
Operational transformation
Operational transformationOperational transformation
Operational transformation
 
Enter the app era with ruby on rails
Enter the app era with ruby on railsEnter the app era with ruby on rails
Enter the app era with ruby on rails
 
E così vuoi sviluppare un'app
E così vuoi sviluppare un'appE così vuoi sviluppare un'app
E così vuoi sviluppare un'app
 
The usability of open data
The usability of open dataThe usability of open data
The usability of open data
 
CI-18n
CI-18nCI-18n
CI-18n
 
Designing and developing mobile web applications with Mockup, Sencha Touch an...
Designing and developing mobile web applications with Mockup, Sencha Touch an...Designing and developing mobile web applications with Mockup, Sencha Touch an...
Designing and developing mobile web applications with Mockup, Sencha Touch an...
 

Recently uploaded

(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 

Recently uploaded (20)

(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 

Build a community, not a framework

  • 1. Build a Community, not a Framework @matteocollina
  • 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.
  • 6. “I’m going to stop using your library because you are not fixing this bug”
  • 8. Impostor Syndrome What I think other people know What I know
  • 9. Reality What I think other people know What I know
  • 10. Was I just building software for myself?
  • 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?
  • 14. An Open Source project is as good as its community is.
  • 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.
  • 23. In 2016 I found my niche. I was in London and I spent San Valentine’s night coding a flamegraph tool
  • 24.
  • 25. Yes! “Would you like to help maintaining Pino?”
  • 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
  • 28. There are no chances that I can do all of that alone This time, I am no fool 0
  • 29. I will build a community this time
  • 30. First things first, let’s get another human being on the journey
  • 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
  • 36. nearform.com Thank you for your time. Matteo Collina, Ph.D. Technical Director @matteocollina matteo.collina@nearform.com