Groupon, a marketplace fueled by Node.js

A few days ago the Node.js Foundation published an interview with Adam Geitgey, the director of software engineering at Groupon. The interview covered various aspects about how Groupon uses Node.js and it helped the company grow and expand. You can check a recording of it on Youtube, or read it on Medium.

Groupon is one of the big brand pushed forward when mentioning the growth and rise of Node.js as a technology in the enterprise world. Justified, given the way it redefined Groupon as a business, as least from a technology point of view.


Let’s start from the very beginning. For those of you who are not familiar with Groupon; it’s an American e-commerce marketplace founded in 2008 in Chicago. It started out small, locally, then expended heavily throughout the United States and then worldwide. This happened pretty quickly, in 2010 they had 150 cities in North America and 100 cities in Europe, Asia and South America. It’s wasn’t all up and up as, despite a high IPO they ran into difficulty, not matching expectations, losing more 70% of their initial stock price and even firing their CEO and founder in 2013. The latter was connected to the former.

Technology; from Ruby on Rails to Node.js

Groupon’s Node.js story started a long time ago, around 2012 they realized that the company grew to such an extent that any simple task would swallow huge development resources.

They estimated that to change the color appearing on the website they needed about 3 months. With Node.js they did it in one week.

At its base Groupon started out on Ruby on Rails, with a big monolith that was becoming very difficult to maintain. Moreover, the company’s rapid growth also brought on different acquisitions with their own tech stack so next to Ruby on Rails they also had a Java stack in Europe and PHP in South America. They wanted and needed actually, to move to a technology that could replace them all and be easier to use on such a large and constant growing platform.

They chose Node because it scales well and because, no surprize here, it’s easy to use for any developer familiar with JavaScript. Getting Node into production and making it their default technology wasn’t easy. It took almost a year and a lot of pain and hard work. It was a bit like an obstacle race, because it didn’t go over smoothly, it almost never does, and they encountered new problems, ones that they never ran into with Ruby. But moving on one step at a time, they got it all covered. They have an extensive blog post about their journey from Ruby on Rails to Node. It’s worth a read.



Most installed packages, according to npm

Npm is the largest package registry in the world, both in downloads and number of packages. At the beginning of 2015 npm has about 12.500 packages, that number grew to 486.661 right now. At the same time, last year 160 people published their first package every week and according to Ashley Williams, Developer Community and Content Manager, that number is expected to grow to 200 in 2017.

In a virtual sea of packages some steal get more attention than other. These are the packages that developers install a lot. The order is based on the number of total downloads (this list represents packages that are installed often, not the most downloaded packages on npm).  All the data presented is from February 2015 onwards.

1 express

Express is a very popular package with 160,809,503 downloads so far. It has a very steady growth, peaking in March with a little over 12 million downloads.


  • 530,128 downloads in the last day

  • 3,085,633 downloads in the last week

  • 12,253,909 downloads in the last month

2 npm

Npm has 87,779,138 downloads. It first hit a high point in May and June 2015 and then in September 2016. This year, so far, is after the 3 million downloads/month mark.


  • 142,427 downloads in the last day

  • 769,810 downloads in the last week

  • 3,250,174 downloads in the last month

3 browserify

browserify was downloaded 58,806,324 times. Its most popular months are November 2015 and March 2017. The drop at the end is the month of May (which is not over at the time when this article is being written)


  • 94,242 downloads in the last day

  • 596,476 downloads in the last week

  • 2,754,831 downloads in the last month

4 bower

Bower has 56,646,535 downloads, in its first (tracked) month it has a little over a million downloads, while last month it had  2.1 million downloads. It grew slowly but steadily.


  • 109,460 downloads in the last day

  • 574,339 downloads in the last week

  • 2,425,566 downloads in the last month

5 gulp

Gulp has  55,391,102 total downloads. Since it was released it followed a mostly upward trend with it’s highest point in March 2017 and November 2016.


  • 141,435 downloads in the last day

  • 741,456 downloads in the last week

  • 3,084,541 downloads in the last month

6 grunt

Grunt has 44,831,357 total downloads. It grew consistently since 2015 and its bets months yet are August/September 2016 and March 2017.


  • 94,217 downloads in the last day

  • 476,082 downloads in the last week

  • 2,085,160 downloads in the last month

7 grunt-cli

Grunt-cli currently has  33,607,269 total downloads. For about a year it grew slowly, then it jumped up from approximately 1 million downloads per months to 1.6 in April 2016. It’s also a part of grunt now.


  • 72,658 downloads in the last day

  • 380,167 downloads in the last week

  • 1,657,242 downloads in the last month

8 forever

Forever has 17,577,427 downloads, with a very slow growth, even with a bit of a drop in its first year, then jumping off the chart in the summer of 2016 and falling down again. Since January 2017 is has slowly climbed back up the ladder.


  • 16,014 downloads in the last day

  • 128,593 downloads in the last week

  • 990,269 downloads in the last month

9 Cordova

Cordova doesn’t shoot right ot the top, but it still gets there. It slowly grew to ~ 500k downloads in December 2015, then dropped for about a year, picking up again in February and March 2017. It has 9,218,040 total downloads.


  • 24,421 downloads in the last day

  • 177,173 downloads in the last week

  • 660,780 downloads in the last month

Cover photo from, stats from and



Node.js events in 2017

As a major technology, Node.js has quite a few events dedicated to people in love with it, developers who want to learn more, connect and grow professionally. We covered the Node Summit, a major Node.js conference in a previous article, but there are more worthy events besides it that might interest anyone with Node.js on their resume.

There are two dedicated Node.js events that most people know about, the previous mentioned Node Summit on July 25-27th and Node.js Interactive on October 4-6th. Node Summit will be held at the Mission Bay Conference Center in San Francisco and Node.js Interactive in Vancouver, Canada at the Vancouver Convention Centre.

Besides them we also have quite a few other Node.js conferences. Let’s dive in.

Nodeconf Adventure is a 3 day event, on July 6-9th in Walker Creek Ranch, in California. It’s a bit different that the usual Node conference. It’s an adventure for the whole family, in their own words. They have a kids Track and Significant Other track so for this conference you can really take your loved ones with you. This is an Un-conference, meaning that it’s not a traditional event with talks and speakers it’s more informal, attendees build the schedule right at the event.

NodeConf EU, in Ireland, 4 day event, from November 5-8th. This is a key event for Node.js in Europe (but no the only one). A true community event, it’s an attraction point for Node.js developers from across Europe and not just. It will take place at the  Lyrath Convention Centre, a conference venue and convention centre able to hold more than 1500 participants. Speaker proposals are open until June 30th.

Barcelona NodeConf, another european node.js event. To be fair this already happened, it was on April 7th, but it’s it should still be on your radar for next year. It was a one day event, with English talks, focusing on node.js, server-side and embedded JavaScript technologies in Barcelona. The Barcelona Node.js community is thriving.

WebRebels Oslo, this is a JavaScript conference happening on June 1-2nd in Oslo. Although it’s marketed as a JS conference, if you have a look at the speakers you will find that most of them also work in Node.js so in this regard it can also be considered a Node.js event. Last year there was an Oslo NodeConf, but so far they haven’t announced any plans to do another one in 2017.

NodeFest Japan, the largest Node.js conference in Japan. A 2 day event in November, 25-26th. It should be a real JavaScript festival, the Node Gakuen festival with the slogan “Be More Global, Be More Interactive”. It really shows Node is worldwide.

Possible events

Last year there were 3 more NodeConf events, nodeConf Italy (the 5th edition), NodeConf Oslo,  NodeConf Brazil and NodeConf Argentina. Dates for this year haven’t been announced yet, but they may still happen so if you’re in the area be sure to check them out.



JavaScript as a backend language

You’ve learned the basics, HTML, CSS and JavaScript and now you want to learn something serious, a backend  language.

This idea has been in heavy rotation in communities and groups and the answers vary a lot, just like the community. The premise itself is flawed from the very beginning, differentiating front development as easy and back end development as hard.

Moving past that another question arises: what language should you choose?

The answers go from PHP to Ruby, to Python and often enough to Node.js as well. Of course you have to take into account that everybody has a different learning process, so it depends a lot on how do you approach the language you choose. For beginners choosing the easy or let’s say approachable choice would be fine, but learning something useful is far more valuable, even if it’s harder.

This is one of those never ending debates, and the truth is,  it’s not meant to reach a bottom line, the value of it all is the debate itself. Which language should you choose after getting a good grip on the front end side?

Well, we’re going to recommend one, you guessed it – Node and we have one very good reason for it – universality. Let’s be honest, JavaScript has complete monopoly on the front end side. If you work client-side you use and know JavaScript so it makes sense to apply that knowledge to the backend as well, by using Node.js. Seems simple enough, but there’s a wall of misconceptions and old ideas that makes people doubt JavaScript in the backend and a part of that is JavaScript’s fault. It’s renowned as a front end language, the best and the most used and as such it’s been typecast as strictly front end. Backend JavaScript..pfaa..madness!

Node.js and JavaScript are (obviously) not the same thing, there are plenty of differences between them, but they share a commonality that makes all the difference (pun intended) – JavaScript itself. Node.js is built in JavaScript, and JavaScript, well JavaScript is just JavaScript. If you have a look at all the frameworks made in JavaScript, starting from React, Ember, Angular all the way to Cylon you can see how adaptable the language really is and how much you can do with it.

Node.js is just another, pretty big way to use JavaScript in a very important part of development. The back end side provides functionality and has always been seen as the serious side of programming, while the front stayed somewhere in the it’s sort of programming side. Node is not the next step in JavaScript, it’s not a evolution or extension of it, it’s an independent platform that runs JavaScript. This distinction is very important as JavaScript, due to its monopoly in the front end, is misrepresented as just a front end language.

If you already know JavaScript and want to try the backend world, you’re already three steps ahead because you know the language that Node runs. JavaScript is unbelievably versatile and through Node is also a very powerful back-end language.