Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Evolution of a Web Application
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Raquel Vélez
January 27, 2017
Programming
1
1.1k
Evolution of a Web Application
Presentation given at ScriptConf in Linz, Austria, 27 Jan 2017
Raquel Vélez
January 27, 2017
Tweet
Share
More Decks by Raquel Vélez
See All by Raquel Vélez
Engineering of Craft - Let's Sketch Tech
rockbot
0
180
Engineering of Craft
rockbot
0
340
The Beauty of Bad Code
rockbot
1
190
The Beauty of Bad Code
rockbot
4
550
Wombat-Driven Understanding: an interactive guide to using npm
rockbot
0
360
Wombat-Driven Understanding: An Interactive Guide To Using npm
rockbot
0
900
the npm website: a tale of wonder and woe (and wombats!)
rockbot
0
340
fear
rockbot
1
350
hiring at npm
rockbot
1
310
Other Decks in Programming
See All in Programming
DevinとClaude Code、SREの現場で使い倒してみた件
karia
1
710
受け入れテスト駆動開発(ATDD)×AI駆動開発 AI時代のATDDの取り組み方を考える
kztakasaki
2
490
Raku Raku Notion 20260128
hareyakayuruyaka
0
420
並行開発のためのコードレビュー
miyukiw
2
2.1k
AIコーディングの理想と現実 2026 | AI Coding: Expectations vs. Reality 2026
tomohisa
0
760
あなたはユーザーではない #PdENight
kajitack
4
290
NOT A HOTEL - 建築や人と融合し、自由を創り出すソフトウェア
not_a_hokuts
2
480
LangChain4jとは一味違うLangChain4j-CDI
kazumura
1
120
Beyond the Basics: Signal Forms
manfredsteyer
PRO
0
100
Oxlint JS plugins
kazupon
1
1.1k
Ruby x Terminal
a_matsuda
5
500
go directiveを最新にしすぎないで欲しい話──あるいは、Go 1.26からgo mod initで作られるgo directiveの値が変わる話 / Go 1.26 リリースパーティ
arthur1
2
400
Featured
See All Featured
Making Projects Easy
brettharned
120
6.6k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.6k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
620
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.5k
Prompt Engineering for Job Search
mfonobong
0
180
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
210
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
How GitHub (no longer) Works
holman
316
140k
Exploring anti-patterns in Rails
aemeredith
2
280
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
95
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.1k
My Coaching Mixtape
mlcsv
0
63
Transcript
Evolution of a Web Application the story of js.com npm
brought to you by @rockbot
@rockbot #scriptconf an overview of npm
@rockbot #scriptconf for JavaScript npm is a package manager
@rockbot #scriptconf npm is a package manager
@rockbot #scriptconf our #1 priority is to reduce friction
@rockbot #scriptconf started out as open source
@rockbot #scriptconf 0 20,000,000 40,000,000 2012-10-22 2013-01-10 2013-03-31 2013-06-19 2013-11-25
weekly downloads
@rockbot #scriptconf 0 15,000 30,000 45,000 60,000 12/14/2011 12/13/2012 12/13/2013
number of packages
@rockbot #scriptconf became a company in 2014
@rockbot #scriptconf the npm website: the gory details
@rockbot #scriptconf 7-day rolling 0 200,000 400,000 600,000 800,000 2014/1/6
2015/1/5 2016/1/4 2017/1/2 Users New Users users on the website
@rockbot #scriptconf DESIGN
@rockbot #scriptconf
@rockbot #scriptconf
@rockbot #scriptconf
@rockbot #scriptconf
@rockbot #scriptconf
@rockbot #scriptconf npm
@rockbot #scriptconf npm
@rockbot #scriptconf npm
@rockbot #scriptconf
@rockbot #scriptconf
@rockbot #scriptconf SEARCH
@rockbot #scriptconf
@rockbot #scriptconf
@rockbot #scriptconf
@rockbot #scriptconf
@rockbot #scriptconf FRONT-END JAVASCRIPT
@rockbot #scriptconf
@rockbot #scriptconf
@rockbot #scriptconf
@rockbot #scriptconf vs
@rockbot #scriptconf
@rockbot #scriptconf
@rockbot #scriptconf
@rockbot #scriptconf FRAMEWORKS
@rockbot #scriptconf function showProfile (req, res, showprofile) { // …
req.model.end(function (er, m) { var td = { showprofile: showprofile , profile: req.model.profile , fields: showprofile.fields , title: showprofile.name , hiring: req.model.whoshiring , packages: req.model.packages , starred: req.model.starred } res.template('profile.ejs', td) }) }
@rockbot #scriptconf vs
@rockbot #scriptconf
@rockbot #scriptconf TESTING
@rockbot #scriptconf tests?
@rockbot #scriptconf (hapi ecosystem test framework)
@rockbot #scriptconf (selenium wrapper)
@rockbot #scriptconf
@rockbot #scriptconf node-tap
@rockbot #scriptconf WHAT’S NEXT?
@rockbot #scriptconf clean up
@rockbot #scriptconf grow the team
@rockbot #scriptconf adapt
@rockbot #scriptconf npm loves you
Raquel Vélez @rockbot http://rckbt.me raquel@ js.com