Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Evolution of a Web Application

Evolution of a Web Application

Presentation given at ScriptConf in Linz, Austria, 27 Jan 2017

Raquel Vélez

January 27, 2017
Tweet

More Decks by Raquel Vélez

Other Decks in Programming

Transcript

  1. Evolution of a Web Application the story of js.com npm

    brought to you by @rockbot
  2. @rockbot #scriptconf an overview of npm

  3. @rockbot #scriptconf for JavaScript npm is a package manager

  4. @rockbot #scriptconf npm is a package manager

  5. @rockbot #scriptconf our #1 priority is to reduce friction

  6. @rockbot #scriptconf started out as open source

  7. @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
  8. @rockbot #scriptconf 0 15,000 30,000 45,000 60,000 12/14/2011 12/13/2012 12/13/2013

    number of packages
  9. @rockbot #scriptconf became a company in 2014

  10. @rockbot #scriptconf the npm website: the gory details

  11. @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
  12. @rockbot #scriptconf DESIGN

  13. @rockbot #scriptconf

  14. @rockbot #scriptconf

  15. @rockbot #scriptconf

  16. @rockbot #scriptconf

  17. @rockbot #scriptconf

  18. @rockbot #scriptconf npm

  19. @rockbot #scriptconf npm

  20. @rockbot #scriptconf npm

  21. @rockbot #scriptconf

  22. @rockbot #scriptconf

  23. @rockbot #scriptconf SEARCH

  24. @rockbot #scriptconf

  25. @rockbot #scriptconf

  26. @rockbot #scriptconf

  27. @rockbot #scriptconf

  28. @rockbot #scriptconf FRONT-END JAVASCRIPT

  29. @rockbot #scriptconf

  30. @rockbot #scriptconf

  31. @rockbot #scriptconf

  32. @rockbot #scriptconf vs

  33. @rockbot #scriptconf

  34. @rockbot #scriptconf

  35. @rockbot #scriptconf

  36. @rockbot #scriptconf FRAMEWORKS

  37. @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) }) }
  38. @rockbot #scriptconf vs

  39. @rockbot #scriptconf

  40. @rockbot #scriptconf TESTING

  41. @rockbot #scriptconf tests?

  42. @rockbot #scriptconf (hapi ecosystem test framework)

  43. @rockbot #scriptconf (selenium wrapper)

  44. @rockbot #scriptconf

  45. @rockbot #scriptconf node-tap

  46. @rockbot #scriptconf WHAT’S NEXT?

  47. @rockbot #scriptconf clean up

  48. @rockbot #scriptconf grow the team

  49. @rockbot #scriptconf adapt

  50. @rockbot #scriptconf npm loves you

  51. Raquel Vélez @rockbot http://rckbt.me [email protected] js.com