• 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
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
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
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)
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
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
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?
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”
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”
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?
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?
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)
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)
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)
introduce new concepts • Compare and contrast • Cover all areas included and highlight any gaps • Explain benefits • Cover migration FAQs • Cover migration back if necessary
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
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
“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?
project? • Could you collate/accept community contributions? • Start simple - use something like hosted WordPress • Integrate into your website if/when you get one
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!
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?
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