How to start a (successful?) Open Source project.

Mathew Robinson

Who am I?

  • Mathew Robinson
  • DevOps Engineer for The Kroger Co.
  • Creator of many failed FOSS projects
  • Linux/FOSS Enthusiast for 13 years
  • Documentation Conniseur
  • Developer

The Intro

This talk is for people wanting to start a FOSS project. Specifically a FOSS project which is bigger than a weekend hackfest. Though most of the advice applies there pretty nicely too.

This is not for the faint of heart.

The Why

What makes you want to build something?

  • Change the world
  • For fun
  • To replace something you hate
  • To satisfy your own itch
  • To learn a new technology
  • To make money

The Who

This is the most important question.

  • Yourself
  • Your friends
  • Developers
  • Sys admins
  • Enterprises

The Success

What defines success for your project?

  • Getting paid
  • Having # of users > 1
  • It functions.

The License

Remember the who.

  • GPL
    • V2 or V3?
    • AGPL or some other variant?
  • Apache
  • MIT
  • <Insert other licenses here>

The Friends

Don't be scared to beg.

  • Find your coding buddy.
  • Convince coding buddy you have a good idea.
  • Find next friend.
  • Rinse.
  • Repeat.

The Stack

What technology you're going to work with.

  • Praelatus has been rewritten 3 times.
  • Put thought into why you're picking what you're picking.
    • Do you want to attract new contributors?
    • Do you want to test out a new tech?
    • What will the tech stack do for the complexity of deployment?
    • Will you be able to find contributors? (i.e. Popularity)

The DOCUMENTATION!

No one can read your mind.

  • Make a ticket / issue for EVERYTHING.
  • This includes non-coding tasks. (Docs, Ops, etc.)
  • This will help you get focused and set goals.
  • If you don't do this no one will help you. Seriously.
  • Document how to download and build your project.
  • Document how to contribute to your project.
  • This gives you more time to do other stuff.

The Blood, The Sweat, The Tears

You're going to have to put in the majority of the work.

  • No one is as passionate about your project as you.
  • No one will work for someone who isn't working.
  • You set the example.
  • If there's something that needs done, you better learn how to do it.
  • But, if you build it they will likely come.

The Blood, The Sweat, The Tears

Lines of code we've written on Praelatus

-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Go                              97           2117            557           9097
JavaScript                     194           1920            344           8279
Python                          57           1048            807           3039
Markdown                        16            762              0           2980
Elixir                          57            266            183           1146
EEx                             19             79              0            407
CSS                              2             95            170            197
Bourne Shell                     1             50             13            173
JSON                             2              0              0            123
Sass                             3             18              1             74
INI                              1             18              0             73
YAML                             4              9              1             55
PO File                          1             20             18             55
HTML                             2              0              0             18
-------------------------------------------------------------------------------
SUM:                           456           6402           2094          25716
-------------------------------------------------------------------------------

The Current Version

Lines of code in the current development version.

-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
JavaScript                     190           1322             58           6626
Python                          57           1048            807           3039
Markdown                         7            290              0            713
CSS                              2             95            170            197
JSON                             1              0              0            100
INI                              1             18              0             73
YAML                             2              2              0             21
HTML                             2              0              0             18
-------------------------------------------------------------------------------
SUM:                           262           2775           1035          10787
-------------------------------------------------------------------------------

The Marketing

Discoverability is super important.

  • Host the project on GitHub <- I hate this.
  • Start a local Meetup group for weekly FOSS coding sessions.
    • Or find one that exists and ASSIMILATE.
  • Remember you're a sales person now.

Shout outs

These guys are my heroes.

  • Mark Chandler @lionize
  • Ryan Brzezinski @link867
  • Wes Swett @swettw
  • Justin Chiou @shadowlion

The Questions

Thank you!

Mathew Robinson @chasinglogic

Things I'm qualified to talk about:

  • Git
  • Whiskey
  • People skills
  • Programming Languages

Pretty much in that order.