Andrey Sitnik, Evil Martians

How to Make a Popular Open Source Project

I work at

My open source projects

Nano ID

Browserslist

PostCSS

Autoprefixer

3 M

50 M

80 M

30 M

Downloads per month

The real list of my projects

52 non-popular and only 4 popular

Ты почему опенсорс не пишешь?

Часики-то тикают

Опенсорс надо писать пока молодой
Потом поздно будет

Что значит не хочешь?
Опенсорс все хотят

Дал Бог проект,

даст и PR

Halt and Catch Fire

“You must have an OSS project to get a job”

HR

The open source dream is a lie

Better ways to be popular

Articles

Talks

GitHub project ≠ good resume

1 month of work → few stars

vs

2 weeks → commit to Babel

Better ways to be popular

Create an app

Fix docs in popular projects

Use beta version → fix bugs

The best reason: change the world

My reason for Autoprefixer: kill Compass

My reason for PostCSS: CSS tools diversity

Stylelint

Lost Grid

cssnano

RTLCSS

My reason for Size Limit: reduce JS lib size

My main mistake: Russian-only announcement

My main mistake: did not mention anyone

Success formula

Project popularity =
Your popularity
Promotion
Benefits for users
Luck

+

+

+

Success formula has Popularity on both sides

Project popularity =
Your popularity
Promotion
Benefits for users
Luck

+

+

+

Advice 1: Create an English Twitter account

Waterfall of popularity

Previous success

Your English Twitter

Next projects

README.md is your main entry point

How people read docs

Bad project description is a main mistake

Svelte is cybernetically enhanced web apps

Svelte is JS framework with unique compiler

which generates smaller JS files

Not clear

First block of PostCSS

PostCSS is a tool for transforming styles with JS plugins.

These plugins can lint your CSS, support variables and mixins, transpile future CSS syntax, inline images, and more.
 

PostCSS is used by industry leaders including Wikipedia, Twitter, Alibaba, and JetBrains. The Autoprefixer PostCSS plugin is one of the most popular CSS processors.

Clear description

How it could be useful

Why it is important

Advice 2: make the description clear

It may take a few days

First block of Nano ID

A tiny, secure, URL-friendly, unique string ID generator for JS.

  • Small. 141 bytes (minified and gzipped). No dependencies.
  • Safe. It uses cryptographically strong random APIs and tests distribution of symbols.
  • Fast. It’s 16% faster than UUID.
  • Compact. It uses a larger alphabet than UUID (A-Za-z0-9_-).

Clear description

Difference from analogs

How to make a good description

You in the bar with friends.
”So, I created …”

And then cut it down 2-4 times

What do you think people read

What people actually read

Advice 3: More illustrations or code examples

Advice 4: More lists and bolds

Important parts are highlighted

Advice 5: Step-by-step starting guide

Be very specific

Help with choice

The main secret

How we think people choose frameworks

Rational choose across all options

How we think people choose frameworks

Rational choose across all options

False

How people really choose frameworks

Irrational choose across popular options

Advice 6: Show who uses your project

The most effective part of PostCSS description

PostCSS is a tool for transforming styles with JS plugins.

These plugins can lint your CSS, support variables and mixins, transpile future CSS syntax, inline images, and more.
 

PostCSS is used by industry leaders including Wikipedia, Twitter, Alibaba, and JetBrains. The Autoprefixer PostCSS plugin is one of the most popular CSS processors.

Advice 7: Speak about the project regularly

Advice 7: Speak about the project regularly

Hype as a solution for hype driven development?

Do we miss a big picture?

Andrey Sitnik, Evil Martians

Front-end innovation
is over

Front-end reminds me of the Spanish Empire

Columbus discovered America by mistake

John Vanderlyn: Landing of Columbus

Spain got a lot of silver

A Diego Rivera mural from the Palacio Nacional in Mexico City

But spent it for war and notables

The Defense of Cadiz against the English

And lost everything

Defeat of the Spanish Armada

S-curve of technologies

We are here

We are rich now (and it is OK)

Stagnation is a problem

The Defense of Cadiz against the English

We choose frameworks by stars & downloads

And it is bad

Moment

date-fns

The better way to choose dependencies

Moment

date-fns

Stars ≠ good support

How we defeated IE if we look on popularity?

The biggest ecosystem

Will we have anything after React?

We are proud of using React for static sites

We are proud of using styled-components

We use what opinion leaders tell us

Abnormal followers distribution

Abnormal followers distribution

Autoprefixer got Grid for IE feature

grid-template-rows: auto auto

Idea spread was slowed by a single key person

grid-template-rows: auto auto

To be clear

Hate Autoprefixer

The single person desides for the whole industry

Social elevators are broken

Popularity brings you popularity

Break the wheel instead of supporting it

Front-end is dying

Defeat of the Spanish Armada

We can create a new S-curve

Solution

We need an environment for next technology

Transition gap

1. Choose dependencies rationally

Because it has more stars

Because of hype

Because big company use it

Because opinion leader told you

Better ways to choose

  • Search on npm
  • Size   bundlephobia.com
  • Make your own benchmark
  • Issues without answers
  • Make a small demo

Big projects can ignore your problems

Small projects can fix your problem in a day

Maintainer’s motivation > stars

Local cafe

Network

vs

Patricia Ernsberger

Framework is not really important

2. Specific tools > universal tools

Static page

Svelte

Parcel

BEM

Web app

React

Webpack

zero runtime CSS-in-JS

3. Promote non-popular developers

< 7000 followers

Retweet more often

 7000 followers

Think twice before retweet

Think twice before retweeting me too

 7000 followers

How to create a new S-curve

4. Do not study only CS and math

Cryptography + Economy → Cryptocurrency

Cryptocurrency + Politics → EOS

5. Try to see the big picture

Our software violates privacy

Internet censorship

Open datasets

Metrics is not a silver bullet

Front-end is not the first

6. Front-end is dead. Dance on tables.

Thanks

DM me your open source