SlideShare a Scribd company logo
1 of 44
Download to read offline
@ben_nuttall
How to market your open source project
This talk is (mostly) not about marketing!
@ben_nuttall
Ben Nuttall
●
Software Engineer at BBC News
Labs
●
Former Community Manager at
Raspberry Pi
●
Based in Cambridge, UK
●
Creator of gpiozero & piwheels
●
Contributor to opensource.com
●
twitter.com/ben_nuttall
●
github.com/bennuttall
@ben_nuttall
What this talk is not
●
How to buy a billboard to advertise your
project
●
How to design a Google Adwords strategy
●
How to be a social media pro
●
How to go viral
●
How to run a great Mailchimp email campaign
●
How to optimise Google Analytics
●
How to get a celebrity endorsement for your
project
@ben_nuttall
What this talk focuses on
●
Things you can do as a developer to make it
easy for you and others to promote your
project
●
Things you can do to promote your project
●
How you can leverage any potential company
support you might have
@ben_nuttall
What does marketing mean in open source?
●
Reaching new users
●
Advocating for its use
●
Showing how it can help
●
Sharing case studies
●
Building a community
●
Promoting a bigger project (e.g.
this project makes the Raspberry
Pi look more appealing)
@ben_nuttall
Examples
gpiozero
●
Python library - “zero-
boilerplate” alternative to low-
level RPi.GPIO
●
Easier for beginners, nicer
experience for advanced users
●
Intended to replace the need for
RPi.GPIO in all cases
piwheels
●
Python Package repository
●
Provides pre-compiled
packages for Raspberry Pi
●
Makes “pip install” fast on
Raspberry Pi
●
Easy to go back to the old way
if needed
@ben_nuttall
Examples
gpiozero
●
Requires a change in behaviour
●
Requires learning something
thing new
●
Lots of tutorials showing how
to do things the old way
●
Hard to measure success
piwheels
●
No change in behaviour
required
●
Users get the new way by
default
●
Works the same as before
●
Automatic collection of detailed
usage statistics
@ben_nuttall
Fundamentals
●
Access to source code
●
Ease of installation
●
Documentation
●
Choosing a sensible name
●
Choosing an appropriate licence
●
Sensible versioning, backwards-
compatibility & deprecation policy
●
Meeting expectations
@ben_nuttall
Rome wasn’t built in a day
xkcd.com/2231
@ben_nuttall
Choosing a name
●
Short, precise and descriptive - ideally obvious
●
Well scoped (don’t overpromise)
●
What’s available? Check PyPI/npm/etc
●
Pronounceable (i.e. not kubectl)
●
Easy to spell / not confused with something else
●
Is there a convention? e.g. flask-X
●
Capitalisation: lowercase, hyphenated, full English?
@ben_nuttall
Bad things to hear about a project
●
“You can’t install it the normal way - you have to download the tarball
and build it from source”
●
“Don’t bother asking for help - they’ll laugh at you and call you stupid”
●
“Documentation? Just read the source code”
●
“It’s on SourceForge” (sorry)
●
“They only support Arch Linux”
●
“It’s a more complicated way of doing X”
●
“It’s not worth the pain”
@ben_nuttall
Good things to hear about a project
●
“There’s a great community”
●
“It has great documentation”
●
“It’s so much easier than X”
●
“It’s much faster than before”
●
“It has a really nice API”
●
“It’s easy to get started”
●
“They accepted my pull request”
●
“It’s easy to extend”
@ben_nuttall
Defining your project
●
What is your project?
– Snappy one-liner: it’s X for Y; a simple way to do X; a Python wrapper for X
●
Who is it for?
– Beginners? Advanced users? Both? People using X with Y? People using X on platform Y?
●
What problem does it solve?
– Easier? Faster? Cheaper? Automates X?
●
What’s the alternative? What’s the route to change?
– How is it better than X? How to migrate from X?
@ben_nuttall
Expectations - finding the project
●
For Debian/Ubuntu? Can I apt install?
●
Python package? Can I pip install?
●
NodeJS package? Can I npm install?
●
On GitHub? github.com/org/project
●
Where are the docs? readthedocs?
●
Is there a website?
@ben_nuttall
GitHub repository
@ben_nuttall
Welcoming contributors
●
Make it easy for someone to set
up your project for development
●
Provide developer documentation
●
Tests!
●
Lay out your contribution
expectations
●
Respond to issues & PRs
●
Thank people! (even for small
contributions)
@ben_nuttall
Noting contributors
●
Maintain a list of contributors
●
Include small & non-code
contributions (ideas,
suggestions, finding bugs, other
help)
●
Name & thank contributors in
the changelog
●
Mention contributors in comms
(social, blog posts, etc)
@ben_nuttall
Noting contributors
@ben_nuttall
Noting contributors
@ben_nuttall
Issues & questions
●
Signpost to where you want people to go, e.g:
– Check the FAQs first
– Issues & bugs: GitHub issues (use templates!)
– Q&A: GitHub discussions / Stack Exchange / community forum
@ben_nuttall
FAQs
@ben_nuttall
Issue templates
@ben_nuttall
Issue templates
@ben_nuttall
Documentation
●
Use appropriate tools e.g. sphinx
●
Host the docs e.g. readthedocs
or custom domain
●
Host multiple versions
(sphinx/readthedocs does this)
●
Mix of automated docs (from
docstrings) and written docs
●
Include diagrams & pictures (e.g.
graphviz & fritzing)
@ben_nuttall
Documentation - reference vs guidance
@ben_nuttall
The Documentation System
documentation.divio.com
@ben_nuttall
Documentation contents
●
Landing page
●
How to install / upgrade
●
Getting started / examples
●
Concepts explained
●
API / CLI reference
●
Development
●
Changelog
●
Migration guide
●
Deprecations / breaking changes
@ben_nuttall
Migration guide
●
Help people migrate their code
and introduce new concepts
●
Compare and contrast
●
Cover all areas included and
highlight any gaps
●
Explain benefits
●
Cover migration FAQs
●
Cover migration back if
necessary
@ben_nuttall
Escape hatch vs Ejector seat
What happens when users hit the limits of your abstraction?
●
Option 1: go down with the ship
●
Option 2: the ejector seat
●
Option 3: the escape hatch
https://anvil.works/blog/escape-hatches-and-ejector-seats
@ben_nuttall
Open discussions & roadmap
●
Be open about project goals
●
Public roadmap
●
Discuss decisions in public
●
Issue-driven development
@ben_nuttall
Social media - Twitter
●
Personal
– Use your own account to tweet / RT about the
project
– Follow search terms (e.g. TweetDeck column)
●
Company
– Tweets & RTs about your project from a
company account could have more reach
●
Project brand
– Consider setting up an account for the project
– Twitter bot
– Use third-party services like Buffer to help
@ben_nuttall
Social media - Twitter
@ben_nuttall
Twitter bot
@ben_nuttall
Having a website
●
Could your project warrant a “home”
on the web beyond its GitHub repo,
documentation site, package page,
etc?
●
Does your project naturally have a
website as part of its purpose?
●
Does it make sense to have a landing
page pointing to downloads, docs,
source, issues, social media,
community, etc?
@ben_nuttall
Having a website
●
Is there a collection of similar projects
like SciPy or Pallets Projects?
●
Does your company have an open
source projects page?
@ben_nuttall
Blogging
●
Could you write semi-regular updates
about your project?
●
Could you collate/accept community
contributions?
●
Start simple - use something like
hosted WordPress
●
Integrate into your website if/when
you get one
@ben_nuttall
Blogging
●
Is there an existing blog you could
contribute to?
●
Tweet and promote the articles
@ben_nuttall
Conference talks
●
Could you give a conference talk
about your project?
●
Even if the talk is not about your
project, but about another
concept using your project
●
Consider lightning talks and
local user groups too
●
Promote community members
speaking about your project
●
All Things Open CFP!
@ben_nuttall
Logos
@ben_nuttall
Logo
●
Can you design something simple?
– Word logo with simple shapes?
●
Can you do a call for a design
contribution?
– Create a GitHub issue
●
Can you ask a designer for a quote, and
raise the funds to pay it?
@ben_nuttall
Hitch a lift
●
Is there a relevant email
newsletter you can submit to?
●
Build a demo using another
project, see if you can blag a RT
out of it
@ben_nuttall
Make & share resources
●
Documentation
●
Books
●
Articles
●
Videos
●
Live streams
●
Structured courses
●
Q&A
●
Worked examples (PRIMM)
@ben_nuttall
Write for opensource.com!
●
Contributions welcome
●
Any topic related to open source
●
2 million readers per month
●
Your article will get more hits here than
your own blog
●
Twitter:
– @opensourceway
– @JenWike
●
opensource.com/how-submit-article
@ben_nuttall
How to market your open source project
This talk is (mostly) not about marketing!

More Related Content

What's hot

Eudyptula Challenge
Eudyptula ChallengeEudyptula Challenge
Eudyptula ChallengeDrew Fustini
 
Open source, What | Why | How
Open source, What | Why | How Open source, What | Why | How
Open source, What | Why | How Nikhil Agrawal
 
Neither Rogues nor Saints: Ethics in Open Source
Neither Rogues nor Saints: Ethics in Open SourceNeither Rogues nor Saints: Ethics in Open Source
Neither Rogues nor Saints: Ethics in Open SourceAll Things Open
 
Open Source Product Management
Open Source Product ManagementOpen Source Product Management
Open Source Product ManagementDanny Rosen
 
Oscon 2016: open source lessons from the todo group
Oscon 2016: open source lessons from the todo groupOscon 2016: open source lessons from the todo group
Oscon 2016: open source lessons from the todo groupBen VanEvery
 
Github 101 An Adventurer's Guide To Open Source
Github 101   An Adventurer's Guide To Open SourceGithub 101   An Adventurer's Guide To Open Source
Github 101 An Adventurer's Guide To Open SourcePrachitibhukan
 
Selenium 4 ukraine keynote slides
Selenium 4 ukraine keynote   slidesSelenium 4 ukraine keynote   slides
Selenium 4 ukraine keynote slidesMarcus Merrell
 
[drupalday2017] - Behat per Drupal: test automatici e molto di più
[drupalday2017] - Behat per Drupal: test automatici e molto di più[drupalday2017] - Behat per Drupal: test automatici e molto di più
[drupalday2017] - Behat per Drupal: test automatici e molto di piùDrupalDay
 
'ElggCampSF Intro' Brett Profitt #ECSF
'ElggCampSF Intro' Brett Profitt #ECSF'ElggCampSF Intro' Brett Profitt #ECSF
'ElggCampSF Intro' Brett Profitt #ECSFCondiminds
 
Contribute to drupal
Contribute to drupalContribute to drupal
Contribute to drupalAG Prime
 

What's hot (11)

Eudyptula Challenge
Eudyptula ChallengeEudyptula Challenge
Eudyptula Challenge
 
Open source, What | Why | How
Open source, What | Why | How Open source, What | Why | How
Open source, What | Why | How
 
Neither Rogues nor Saints: Ethics in Open Source
Neither Rogues nor Saints: Ethics in Open SourceNeither Rogues nor Saints: Ethics in Open Source
Neither Rogues nor Saints: Ethics in Open Source
 
Open Source Product Management
Open Source Product ManagementOpen Source Product Management
Open Source Product Management
 
Oscon 2016: open source lessons from the todo group
Oscon 2016: open source lessons from the todo groupOscon 2016: open source lessons from the todo group
Oscon 2016: open source lessons from the todo group
 
Github 101 An Adventurer's Guide To Open Source
Github 101   An Adventurer's Guide To Open SourceGithub 101   An Adventurer's Guide To Open Source
Github 101 An Adventurer's Guide To Open Source
 
Selenium 4 ukraine keynote slides
Selenium 4 ukraine keynote   slidesSelenium 4 ukraine keynote   slides
Selenium 4 ukraine keynote slides
 
[drupalday2017] - Behat per Drupal: test automatici e molto di più
[drupalday2017] - Behat per Drupal: test automatici e molto di più[drupalday2017] - Behat per Drupal: test automatici e molto di più
[drupalday2017] - Behat per Drupal: test automatici e molto di più
 
'ElggCampSF Intro' Brett Profitt #ECSF
'ElggCampSF Intro' Brett Profitt #ECSF'ElggCampSF Intro' Brett Profitt #ECSF
'ElggCampSF Intro' Brett Profitt #ECSF
 
Contribute to drupal
Contribute to drupalContribute to drupal
Contribute to drupal
 
Github
GithubGithub
Github
 

Similar to How to Market Your Open Source Project

Kickstarting career as an Android developer.pdf
Kickstarting career as an Android developer.pdfKickstarting career as an Android developer.pdf
Kickstarting career as an Android developer.pdfShreyaDhurde
 
Overcoming the Fear of Contributing to Open Source
Overcoming the Fear of Contributing to Open SourceOvercoming the Fear of Contributing to Open Source
Overcoming the Fear of Contributing to Open SourceAll Things Open
 
Michael Widenius
Michael WideniusMichael Widenius
Michael WideniusCodeFest
 
We Need to Talk: How Communication Helps Code
We Need to Talk: How Communication Helps CodeWe Need to Talk: How Communication Helps Code
We Need to Talk: How Communication Helps CodeDocker, Inc.
 
You Don't Need to be a Developer to Contribute
You Don't Need to be a Developer to ContributeYou Don't Need to be a Developer to Contribute
You Don't Need to be a Developer to ContributeNathan Handler
 
Everyone wants (someone else) to do it: writing documentation for open source...
Everyone wants (someone else) to do it: writing documentation for open source...Everyone wants (someone else) to do it: writing documentation for open source...
Everyone wants (someone else) to do it: writing documentation for open source...Jody Garnett
 
Stephen King's Practical Advice for Tech Writers
Stephen King's Practical Advice for Tech Writers Stephen King's Practical Advice for Tech Writers
Stephen King's Practical Advice for Tech Writers Rikki Endsley
 
Contributing to Core Python
Contributing to Core PythonContributing to Core Python
Contributing to Core PythonAbhijeet Kasurde
 
Micheal Monty Widenius - Free Open Source Software Entrepreneurship
Micheal Monty Widenius -  Free Open Source Software EntrepreneurshipMicheal Monty Widenius -  Free Open Source Software Entrepreneurship
Micheal Monty Widenius - Free Open Source Software EntrepreneurshipSouth Tyrol Free Software Conference
 
Community and Github: 7/27/2011
Community and Github: 7/27/2011Community and Github: 7/27/2011
Community and Github: 7/27/2011Andy Lester
 
Basics of Open Source Contribution - WWCodeMobile
Basics of Open Source Contribution - WWCodeMobileBasics of Open Source Contribution - WWCodeMobile
Basics of Open Source Contribution - WWCodeMobileVui Nguyen
 
YOUR OPEN SOURCE PROJECT IS LIKE A STARTUP, TREAT IT LIKE ONE, EYAR ZILBERMAN...
YOUR OPEN SOURCE PROJECT IS LIKE A STARTUP, TREAT IT LIKE ONE, EYAR ZILBERMAN...YOUR OPEN SOURCE PROJECT IS LIKE A STARTUP, TREAT IT LIKE ONE, EYAR ZILBERMAN...
YOUR OPEN SOURCE PROJECT IS LIKE A STARTUP, TREAT IT LIKE ONE, EYAR ZILBERMAN...DevOpsDays Tel Aviv
 
How to Manage Open Source Product by Github Sr. PM
How to Manage Open Source Product by Github Sr. PMHow to Manage Open Source Product by Github Sr. PM
How to Manage Open Source Product by Github Sr. PMProduct School
 
The Art Of Documentation for Open Source Projects
The Art Of Documentation for Open Source ProjectsThe Art Of Documentation for Open Source Projects
The Art Of Documentation for Open Source ProjectsBen Hall
 
Contribute to Eclipse projects
Contribute to Eclipse projectsContribute to Eclipse projects
Contribute to Eclipse projectsMickael Istria
 
Dealing with contributor overload - FOSS Backstage
Dealing with contributor overload -  FOSS BackstageDealing with contributor overload -  FOSS Backstage
Dealing with contributor overload - FOSS BackstageHolden Karau
 

Similar to How to Market Your Open Source Project (20)

Kickstarting career as an Android developer.pdf
Kickstarting career as an Android developer.pdfKickstarting career as an Android developer.pdf
Kickstarting career as an Android developer.pdf
 
Overcoming the Fear of Contributing to Open Source
Overcoming the Fear of Contributing to Open SourceOvercoming the Fear of Contributing to Open Source
Overcoming the Fear of Contributing to Open Source
 
Michael Widenius
Michael WideniusMichael Widenius
Michael Widenius
 
We Need to Talk: How Communication Helps Code
We Need to Talk: How Communication Helps CodeWe Need to Talk: How Communication Helps Code
We Need to Talk: How Communication Helps Code
 
LET'S TALK ANDROID Dev
LET'S TALK ANDROID DevLET'S TALK ANDROID Dev
LET'S TALK ANDROID Dev
 
Let's talk FOSS!
Let's talk FOSS!Let's talk FOSS!
Let's talk FOSS!
 
You Don't Need to be a Developer to Contribute
You Don't Need to be a Developer to ContributeYou Don't Need to be a Developer to Contribute
You Don't Need to be a Developer to Contribute
 
Everyone wants (someone else) to do it: writing documentation for open source...
Everyone wants (someone else) to do it: writing documentation for open source...Everyone wants (someone else) to do it: writing documentation for open source...
Everyone wants (someone else) to do it: writing documentation for open source...
 
Stephen King's Practical Advice for Tech Writers
Stephen King's Practical Advice for Tech Writers Stephen King's Practical Advice for Tech Writers
Stephen King's Practical Advice for Tech Writers
 
Contributing to Core Python
Contributing to Core PythonContributing to Core Python
Contributing to Core Python
 
Micheal Monty Widenius - Free Open Source Software Entrepreneurship
Micheal Monty Widenius -  Free Open Source Software EntrepreneurshipMicheal Monty Widenius -  Free Open Source Software Entrepreneurship
Micheal Monty Widenius - Free Open Source Software Entrepreneurship
 
Community and Github: 7/27/2011
Community and Github: 7/27/2011Community and Github: 7/27/2011
Community and Github: 7/27/2011
 
Basics of Open Source Contribution - WWCodeMobile
Basics of Open Source Contribution - WWCodeMobileBasics of Open Source Contribution - WWCodeMobile
Basics of Open Source Contribution - WWCodeMobile
 
YOUR OPEN SOURCE PROJECT IS LIKE A STARTUP, TREAT IT LIKE ONE, EYAR ZILBERMAN...
YOUR OPEN SOURCE PROJECT IS LIKE A STARTUP, TREAT IT LIKE ONE, EYAR ZILBERMAN...YOUR OPEN SOURCE PROJECT IS LIKE A STARTUP, TREAT IT LIKE ONE, EYAR ZILBERMAN...
YOUR OPEN SOURCE PROJECT IS LIKE A STARTUP, TREAT IT LIKE ONE, EYAR ZILBERMAN...
 
Open Source in Real Life
Open Source in Real LifeOpen Source in Real Life
Open Source in Real Life
 
How to Manage Open Source Product by Github Sr. PM
How to Manage Open Source Product by Github Sr. PMHow to Manage Open Source Product by Github Sr. PM
How to Manage Open Source Product by Github Sr. PM
 
The Art Of Documentation for Open Source Projects
The Art Of Documentation for Open Source ProjectsThe Art Of Documentation for Open Source Projects
The Art Of Documentation for Open Source Projects
 
Contribute to Eclipse projects
Contribute to Eclipse projectsContribute to Eclipse projects
Contribute to Eclipse projects
 
Dealing with contributor overload - FOSS Backstage
Dealing with contributor overload -  FOSS BackstageDealing with contributor overload -  FOSS Backstage
Dealing with contributor overload - FOSS Backstage
 
Ploneide
PloneidePloneide
Ploneide
 

More from All Things Open

Building Reliability - The Realities of Observability
Building Reliability - The Realities of ObservabilityBuilding Reliability - The Realities of Observability
Building Reliability - The Realities of ObservabilityAll Things Open
 
Modern Database Best Practices
Modern Database Best PracticesModern Database Best Practices
Modern Database Best PracticesAll Things Open
 
Open Source and Public Policy
Open Source and Public PolicyOpen Source and Public Policy
Open Source and Public PolicyAll Things Open
 
Weaving Microservices into a Unified GraphQL Schema with graph-quilt - Ashpak...
Weaving Microservices into a Unified GraphQL Schema with graph-quilt - Ashpak...Weaving Microservices into a Unified GraphQL Schema with graph-quilt - Ashpak...
Weaving Microservices into a Unified GraphQL Schema with graph-quilt - Ashpak...All Things Open
 
The State of Passwordless Auth on the Web - Phil Nash
The State of Passwordless Auth on the Web - Phil NashThe State of Passwordless Auth on the Web - Phil Nash
The State of Passwordless Auth on the Web - Phil NashAll Things Open
 
Total ReDoS: The dangers of regex in JavaScript
Total ReDoS: The dangers of regex in JavaScriptTotal ReDoS: The dangers of regex in JavaScript
Total ReDoS: The dangers of regex in JavaScriptAll Things Open
 
What Does Real World Mass Adoption of Decentralized Tech Look Like?
What Does Real World Mass Adoption of Decentralized Tech Look Like?What Does Real World Mass Adoption of Decentralized Tech Look Like?
What Does Real World Mass Adoption of Decentralized Tech Look Like?All Things Open
 
How to Write & Deploy a Smart Contract
How to Write & Deploy a Smart ContractHow to Write & Deploy a Smart Contract
How to Write & Deploy a Smart ContractAll Things Open
 
Spinning Your Drones with Cadence Workflows, Apache Kafka and TensorFlow
 Spinning Your Drones with Cadence Workflows, Apache Kafka and TensorFlow Spinning Your Drones with Cadence Workflows, Apache Kafka and TensorFlow
Spinning Your Drones with Cadence Workflows, Apache Kafka and TensorFlowAll Things Open
 
DEI Challenges and Success
DEI Challenges and SuccessDEI Challenges and Success
DEI Challenges and SuccessAll Things Open
 
Scaling Web Applications with Background
Scaling Web Applications with BackgroundScaling Web Applications with Background
Scaling Web Applications with BackgroundAll Things Open
 
Supercharging tutorials with WebAssembly
Supercharging tutorials with WebAssemblySupercharging tutorials with WebAssembly
Supercharging tutorials with WebAssemblyAll Things Open
 
Using SQL to Find Needles in Haystacks
Using SQL to Find Needles in HaystacksUsing SQL to Find Needles in Haystacks
Using SQL to Find Needles in HaystacksAll Things Open
 
Configuration Security as a Game of Pursuit Intercept
Configuration Security as a Game of Pursuit InterceptConfiguration Security as a Game of Pursuit Intercept
Configuration Security as a Game of Pursuit InterceptAll Things Open
 
Scaling an Open Source Sponsorship Program
Scaling an Open Source Sponsorship ProgramScaling an Open Source Sponsorship Program
Scaling an Open Source Sponsorship ProgramAll Things Open
 
Build Developer Experience Teams for Open Source
Build Developer Experience Teams for Open SourceBuild Developer Experience Teams for Open Source
Build Developer Experience Teams for Open SourceAll Things Open
 
Deploying Models at Scale with Apache Beam
Deploying Models at Scale with Apache BeamDeploying Models at Scale with Apache Beam
Deploying Models at Scale with Apache BeamAll Things Open
 
Sudo – Giving access while staying in control
Sudo – Giving access while staying in controlSudo – Giving access while staying in control
Sudo – Giving access while staying in controlAll Things Open
 
Fortifying the Future: Tackling Security Challenges in AI/ML Applications
Fortifying the Future: Tackling Security Challenges in AI/ML ApplicationsFortifying the Future: Tackling Security Challenges in AI/ML Applications
Fortifying the Future: Tackling Security Challenges in AI/ML ApplicationsAll Things Open
 
Securing Cloud Resources Deployed with Control Planes on Kubernetes using Gov...
Securing Cloud Resources Deployed with Control Planes on Kubernetes using Gov...Securing Cloud Resources Deployed with Control Planes on Kubernetes using Gov...
Securing Cloud Resources Deployed with Control Planes on Kubernetes using Gov...All Things Open
 

More from All Things Open (20)

Building Reliability - The Realities of Observability
Building Reliability - The Realities of ObservabilityBuilding Reliability - The Realities of Observability
Building Reliability - The Realities of Observability
 
Modern Database Best Practices
Modern Database Best PracticesModern Database Best Practices
Modern Database Best Practices
 
Open Source and Public Policy
Open Source and Public PolicyOpen Source and Public Policy
Open Source and Public Policy
 
Weaving Microservices into a Unified GraphQL Schema with graph-quilt - Ashpak...
Weaving Microservices into a Unified GraphQL Schema with graph-quilt - Ashpak...Weaving Microservices into a Unified GraphQL Schema with graph-quilt - Ashpak...
Weaving Microservices into a Unified GraphQL Schema with graph-quilt - Ashpak...
 
The State of Passwordless Auth on the Web - Phil Nash
The State of Passwordless Auth on the Web - Phil NashThe State of Passwordless Auth on the Web - Phil Nash
The State of Passwordless Auth on the Web - Phil Nash
 
Total ReDoS: The dangers of regex in JavaScript
Total ReDoS: The dangers of regex in JavaScriptTotal ReDoS: The dangers of regex in JavaScript
Total ReDoS: The dangers of regex in JavaScript
 
What Does Real World Mass Adoption of Decentralized Tech Look Like?
What Does Real World Mass Adoption of Decentralized Tech Look Like?What Does Real World Mass Adoption of Decentralized Tech Look Like?
What Does Real World Mass Adoption of Decentralized Tech Look Like?
 
How to Write & Deploy a Smart Contract
How to Write & Deploy a Smart ContractHow to Write & Deploy a Smart Contract
How to Write & Deploy a Smart Contract
 
Spinning Your Drones with Cadence Workflows, Apache Kafka and TensorFlow
 Spinning Your Drones with Cadence Workflows, Apache Kafka and TensorFlow Spinning Your Drones with Cadence Workflows, Apache Kafka and TensorFlow
Spinning Your Drones with Cadence Workflows, Apache Kafka and TensorFlow
 
DEI Challenges and Success
DEI Challenges and SuccessDEI Challenges and Success
DEI Challenges and Success
 
Scaling Web Applications with Background
Scaling Web Applications with BackgroundScaling Web Applications with Background
Scaling Web Applications with Background
 
Supercharging tutorials with WebAssembly
Supercharging tutorials with WebAssemblySupercharging tutorials with WebAssembly
Supercharging tutorials with WebAssembly
 
Using SQL to Find Needles in Haystacks
Using SQL to Find Needles in HaystacksUsing SQL to Find Needles in Haystacks
Using SQL to Find Needles in Haystacks
 
Configuration Security as a Game of Pursuit Intercept
Configuration Security as a Game of Pursuit InterceptConfiguration Security as a Game of Pursuit Intercept
Configuration Security as a Game of Pursuit Intercept
 
Scaling an Open Source Sponsorship Program
Scaling an Open Source Sponsorship ProgramScaling an Open Source Sponsorship Program
Scaling an Open Source Sponsorship Program
 
Build Developer Experience Teams for Open Source
Build Developer Experience Teams for Open SourceBuild Developer Experience Teams for Open Source
Build Developer Experience Teams for Open Source
 
Deploying Models at Scale with Apache Beam
Deploying Models at Scale with Apache BeamDeploying Models at Scale with Apache Beam
Deploying Models at Scale with Apache Beam
 
Sudo – Giving access while staying in control
Sudo – Giving access while staying in controlSudo – Giving access while staying in control
Sudo – Giving access while staying in control
 
Fortifying the Future: Tackling Security Challenges in AI/ML Applications
Fortifying the Future: Tackling Security Challenges in AI/ML ApplicationsFortifying the Future: Tackling Security Challenges in AI/ML Applications
Fortifying the Future: Tackling Security Challenges in AI/ML Applications
 
Securing Cloud Resources Deployed with Control Planes on Kubernetes using Gov...
Securing Cloud Resources Deployed with Control Planes on Kubernetes using Gov...Securing Cloud Resources Deployed with Control Planes on Kubernetes using Gov...
Securing Cloud Resources Deployed with Control Planes on Kubernetes using Gov...
 

Recently uploaded

2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024The Digital Insurer
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKJago de Vreede
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 

Recently uploaded (20)

2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 

How to Market Your Open Source Project

  • 1. @ben_nuttall How to market your open source project This talk is (mostly) not about marketing!
  • 2. @ben_nuttall Ben Nuttall ● Software Engineer at BBC News Labs ● Former Community Manager at Raspberry Pi ● Based in Cambridge, UK ● Creator of gpiozero & piwheels ● Contributor to opensource.com ● twitter.com/ben_nuttall ● github.com/bennuttall
  • 3. @ben_nuttall What this talk is not ● How to buy a billboard to advertise your project ● How to design a Google Adwords strategy ● How to be a social media pro ● How to go viral ● How to run a great Mailchimp email campaign ● How to optimise Google Analytics ● How to get a celebrity endorsement for your project
  • 4. @ben_nuttall What this talk focuses on ● Things you can do as a developer to make it easy for you and others to promote your project ● Things you can do to promote your project ● How you can leverage any potential company support you might have
  • 5. @ben_nuttall What does marketing mean in open source? ● Reaching new users ● Advocating for its use ● Showing how it can help ● Sharing case studies ● Building a community ● Promoting a bigger project (e.g. this project makes the Raspberry Pi look more appealing)
  • 6. @ben_nuttall Examples gpiozero ● Python library - “zero- boilerplate” alternative to low- level RPi.GPIO ● Easier for beginners, nicer experience for advanced users ● Intended to replace the need for RPi.GPIO in all cases piwheels ● Python Package repository ● Provides pre-compiled packages for Raspberry Pi ● Makes “pip install” fast on Raspberry Pi ● Easy to go back to the old way if needed
  • 7. @ben_nuttall Examples gpiozero ● Requires a change in behaviour ● Requires learning something thing new ● Lots of tutorials showing how to do things the old way ● Hard to measure success piwheels ● No change in behaviour required ● Users get the new way by default ● Works the same as before ● Automatic collection of detailed usage statistics
  • 8. @ben_nuttall Fundamentals ● Access to source code ● Ease of installation ● Documentation ● Choosing a sensible name ● Choosing an appropriate licence ● Sensible versioning, backwards- compatibility & deprecation policy ● Meeting expectations
  • 9. @ben_nuttall Rome wasn’t built in a day xkcd.com/2231
  • 10. @ben_nuttall Choosing a name ● Short, precise and descriptive - ideally obvious ● Well scoped (don’t overpromise) ● What’s available? Check PyPI/npm/etc ● Pronounceable (i.e. not kubectl) ● Easy to spell / not confused with something else ● Is there a convention? e.g. flask-X ● Capitalisation: lowercase, hyphenated, full English?
  • 11. @ben_nuttall Bad things to hear about a project ● “You can’t install it the normal way - you have to download the tarball and build it from source” ● “Don’t bother asking for help - they’ll laugh at you and call you stupid” ● “Documentation? Just read the source code” ● “It’s on SourceForge” (sorry) ● “They only support Arch Linux” ● “It’s a more complicated way of doing X” ● “It’s not worth the pain”
  • 12. @ben_nuttall Good things to hear about a project ● “There’s a great community” ● “It has great documentation” ● “It’s so much easier than X” ● “It’s much faster than before” ● “It has a really nice API” ● “It’s easy to get started” ● “They accepted my pull request” ● “It’s easy to extend”
  • 13. @ben_nuttall Defining your project ● What is your project? – Snappy one-liner: it’s X for Y; a simple way to do X; a Python wrapper for X ● Who is it for? – Beginners? Advanced users? Both? People using X with Y? People using X on platform Y? ● What problem does it solve? – Easier? Faster? Cheaper? Automates X? ● What’s the alternative? What’s the route to change? – How is it better than X? How to migrate from X?
  • 14. @ben_nuttall Expectations - finding the project ● For Debian/Ubuntu? Can I apt install? ● Python package? Can I pip install? ● NodeJS package? Can I npm install? ● On GitHub? github.com/org/project ● Where are the docs? readthedocs? ● Is there a website?
  • 16. @ben_nuttall Welcoming contributors ● Make it easy for someone to set up your project for development ● Provide developer documentation ● Tests! ● Lay out your contribution expectations ● Respond to issues & PRs ● Thank people! (even for small contributions)
  • 17. @ben_nuttall Noting contributors ● Maintain a list of contributors ● Include small & non-code contributions (ideas, suggestions, finding bugs, other help) ● Name & thank contributors in the changelog ● Mention contributors in comms (social, blog posts, etc)
  • 20. @ben_nuttall Issues & questions ● Signpost to where you want people to go, e.g: – Check the FAQs first – Issues & bugs: GitHub issues (use templates!) – Q&A: GitHub discussions / Stack Exchange / community forum
  • 24. @ben_nuttall Documentation ● Use appropriate tools e.g. sphinx ● Host the docs e.g. readthedocs or custom domain ● Host multiple versions (sphinx/readthedocs does this) ● Mix of automated docs (from docstrings) and written docs ● Include diagrams & pictures (e.g. graphviz & fritzing)
  • 27. @ben_nuttall Documentation contents ● Landing page ● How to install / upgrade ● Getting started / examples ● Concepts explained ● API / CLI reference ● Development ● Changelog ● Migration guide ● Deprecations / breaking changes
  • 28. @ben_nuttall Migration guide ● Help people migrate their code and introduce new concepts ● Compare and contrast ● Cover all areas included and highlight any gaps ● Explain benefits ● Cover migration FAQs ● Cover migration back if necessary
  • 29. @ben_nuttall Escape hatch vs Ejector seat What happens when users hit the limits of your abstraction? ● Option 1: go down with the ship ● Option 2: the ejector seat ● Option 3: the escape hatch https://anvil.works/blog/escape-hatches-and-ejector-seats
  • 30. @ben_nuttall Open discussions & roadmap ● Be open about project goals ● Public roadmap ● Discuss decisions in public ● Issue-driven development
  • 31. @ben_nuttall Social media - Twitter ● Personal – Use your own account to tweet / RT about the project – Follow search terms (e.g. TweetDeck column) ● Company – Tweets & RTs about your project from a company account could have more reach ● Project brand – Consider setting up an account for the project – Twitter bot – Use third-party services like Buffer to help
  • 34. @ben_nuttall Having a website ● Could your project warrant a “home” on the web beyond its GitHub repo, documentation site, package page, etc? ● Does your project naturally have a website as part of its purpose? ● Does it make sense to have a landing page pointing to downloads, docs, source, issues, social media, community, etc?
  • 35. @ben_nuttall Having a website ● Is there a collection of similar projects like SciPy or Pallets Projects? ● Does your company have an open source projects page?
  • 36. @ben_nuttall Blogging ● Could you write semi-regular updates about your project? ● Could you collate/accept community contributions? ● Start simple - use something like hosted WordPress ● Integrate into your website if/when you get one
  • 37. @ben_nuttall Blogging ● Is there an existing blog you could contribute to? ● Tweet and promote the articles
  • 38. @ben_nuttall Conference talks ● Could you give a conference talk about your project? ● Even if the talk is not about your project, but about another concept using your project ● Consider lightning talks and local user groups too ● Promote community members speaking about your project ● All Things Open CFP!
  • 40. @ben_nuttall Logo ● Can you design something simple? – Word logo with simple shapes? ● Can you do a call for a design contribution? – Create a GitHub issue ● Can you ask a designer for a quote, and raise the funds to pay it?
  • 41. @ben_nuttall Hitch a lift ● Is there a relevant email newsletter you can submit to? ● Build a demo using another project, see if you can blag a RT out of it
  • 42. @ben_nuttall Make & share resources ● Documentation ● Books ● Articles ● Videos ● Live streams ● Structured courses ● Q&A ● Worked examples (PRIMM)
  • 43. @ben_nuttall Write for opensource.com! ● Contributions welcome ● Any topic related to open source ● 2 million readers per month ● Your article will get more hits here than your own blog ● Twitter: – @opensourceway – @JenWike ● opensource.com/how-submit-article
  • 44. @ben_nuttall How to market your open source project This talk is (mostly) not about marketing!