Sails.js: Rags to...Open Source

Preview:

Citation preview

from rags to open-source

Raleigh, North Carolina 2014

Mike McNeil

@mikermcneilgithub.com/mikermcneil

bdfl ofthe leading open-source MVC framework for Node.js

the leading open-source MVC framework for Node.js

at least pageviews since 2013830,000

GitHub stars 8,030

over downloads / day1,500

in funding$0

est. feb 2012

(us)

(customer)

(Javascript app)

love at first sightcirca 2011

Node.js...

“We’re doing I/O completely wrong.”

<— “just look at the Unterschied!”

“Not acceptable!”

“Threads should be used by experts only.”

“Concurrency should be easy.”

How is that possible?

(copy the browser)

// synchronous!console.log(‘hi’)

// asynchronous!setTimeout(function (){! console.log(‘hi’);!}, 240000000);

vs.

incredible

could we use

…for everything?

I wondered…

so…

You don't want to be writing all these system calls.

You need something that gives you… an ORM abstraction, or

something.

so Sails.js was born

Sails is an MVC framework.

Sails is an MVC framework.

Sails is an MVC framework.

Sails is an MVC framework.

Sails is an MVC framework.

Sails is an MVC framework.

Sails is an MVC framework.

Sails is an MVC framework.

first version (late 2011)

December 2012

>=20 other community adapters custom app-specific adapters

January 2013

first halfway-decent docs

http://web.archive.org/web/20130514080123/http://balderdashy.github.io/sails/

posted screencast in early 2013

…woke up to 1000 views

reddit — Feb 2013hacker news — Mar 2013and again two months later

managed to get sailsjs.org online

mid-spring 2013

issues pull requests

questions

????

???????????

v0.9 introduced a new streamlined asset pipeline

asset pipeline????

“what about gulp?!”

“so thirsty…”

asset pipeline????????!!!!

asset pipeline????????!!!!

asset pipeline????????!!!!

asset pipeline????????!!!!

asset pipeline????????!!!!

so v0.10 introduced generators.

feature requests are the hydra

they will never stop.

they will never stop.

ever.

moral of the story

only write code you actually need

if someone else actually needs something, they’ll write a pull request

only merge new code if someone actually needs you to merge it (i.e. there’s no other way, via a

plugin or something)

Supporting the Community

Tools

Metrics

Advice

#sails on freenode (IRC)

issues

groups

Tools

Metrics

Advice

• Github stars

• NPM downloads / day

• Google group membership

• IRC channel activity

• Number of tagged StackOverflow questions(and your answer ratio)

Tools

Metrics

Advice

inline jsdoc comments are not enough

write docs in markdown

compile to HTML

don’t repeat yourself

DRY

don’t repeat ourselves

DRO

the goal of open source

make an IRC channel start a Google group post a YouTube video

so

support !== marketing

but remember

support !== marketing

( )

but remember

far more front-end developers

than back-end developers

far more front-end developers

than back-end developers

eventually everyday backend development

will be commoditized

Questions?

from rags to open-source

@mikermcneil