expressjs / express

Fast, unopinionated, minimalist web framework for node.
https://expressjs.com
MIT License
65k stars 15.51k forks source link

is express dying? #2844

Closed TrejGun closed 8 years ago

TrejGun commented 8 years ago

Since TJ left the project and it became "property" of StrongLoop the project is slowly dying. I guess you (StrongLoop) promised TJ and thus a community to continue to maintain the code. Sure you want to push part of express users to use yours solutions and to make money on support. But open-source gave a start to your company and if you don't want to share back your code and time, just give a control back to community

jasonrhodes commented 8 years ago

Everyone saying "why don't you just fork it??!?" is missing the point about community, momentum, name recognition, existing dependencies, and the idea of attempting to work things out together as a community, of which Strong Loop is a part. That's the best solution and it's worth trying for, with a fork/rename being a sadder, lesser fallback after this option is totally dead in my opinion.

On Jan 17, 2016, at 1:10 PM, Devin Torres notifications@github.com wrote:

I don't quite understand. Why can't Express just be forked to @expressjs and everybody goes on with their lives?

Doesn't @dougwilson still have the name on npm? Even if using the name Express was a problem, I'm sure renaming the project and org would happen faster than it takes me to make coffee in the morning, and the majority of the Node ecosystem will know the new framework lickety-split.

— Reply to this email directly or view it on GitHub.

devinus commented 8 years ago

@jasonrhodes

Forking worked out pretty damn well for io.js. Hey, wait a minute...

wraithan commented 8 years ago

As someone who has to support Express users as part of his job (New Relic node agent) I've first hand seen how much effort @dougwilson has put into the project.

The only reason why this repo is under strongloop's org was a decision made by a previous maintainer (not the maintainer at the time) to sell the IP. The outrage in the thread about that shows at least some of the community's stance on that sale. I fall into the category of folks who do not trust corporate overlords, especially ones with only one primary motivator, that is the notoriety that comes from being associated with such a prominent project and have no reason to actually contribute back to it since it is being maintained for them.

I have to agree with @jasonrhodes that forking is hard and this isn't the same situation as io.js. AFAICT they own the name, changing the name does impact existing dependencies as well as things like the various APM vendors who use module name as part of their heuristic for matching.

io.js still had node as the binary. This means changing the system package was all that was needed to switch to it. Because folks use npm to install their deps (and deps of deps), and npm uses the package name exclusively (no aliasing or alternatives), the transition is harder. Express as a project is easier to take over/maintain than node as a project. This means losing the core devs isn't as costly and IBM has good enough engineers to be able to pick up and move forward, even if the direction doesn't stay the same.

NOTE: I am not speaking on behalf of New Relic but instead as an engineer who has worked adjacent to express for years. I mention New Relic because writing instrumentation means I have to deeply inspect the libraries that I instrument and then support our users in their use of those libraries with our agent.

arackaf commented 8 years ago

@devinus - not sure if that last line was sarcastic, but it seems to me the io fork was a huge success. From what I understand, a lot of progress was made in that fork, and it basically forced Node's hand to listen to the community better, leading to a re-integration.

collingreen commented 8 years ago

This is painful to watch, though lots of good points have been made across the entire thread.

I'm not sure what the right answer is, though the "hostile takeover" approach doesn't feel like the right one, even if it does feel a bit righteous.

My two cents on the problem are basically a combination of @RnbWd's comment and the path @dougwilson is already taking. Don't break express - it is stable and a standard component for more projects than you can shake a stick at.

Bringing in the new features doug mentions (html2, promises) shouldn't be crippled by backwards compatibility problems - growing a new, modern project that is "express compatible" and lead by doug sounds like exactly the right thing to me.

This thread isn't doing anyone any good. The IBM guys should get coordinated on their stance/messaging and the community side of the discussion (ownership, he said / she said, etc) should probably move to gitter and irc.

devinus commented 8 years ago

@arackaf It was tongue in cheek. The io.js fork turned out beautifully and everybody became stronger for it.

arackaf commented 8 years ago

@devinus - fair enough - tone is hard to convey in text :)

Really not sure what people are talking about regarding breaking Express, name conflicts, etc. Forking would create a new project people would be free to opt into. Ideally it would be merged back in later, or if IBM chooses to keep sucking, then not, and people would just convert over to the new version slowly but surely.

davidcelis commented 8 years ago

The level of unrest in this thread should be proof enough that it is harmful for conversations about the future of Express to be happening behind closed doors at IBM. The Express contributors, maintainers, and other community members should be able to participate in these conversations openly or people are just going to continue getting angry and stewing. At the very least, if action on Express's ownership is going to be slow, IBM should be discussing it publicly here on GitHub or elsewhere.

Martinspire commented 8 years ago

From what i gather from this topic its more about people blaming others or whatever. The fact is: Express does what it does and it does it fine. Like more NPM Modules it should focus on a single thing, so when that works properly, there isn't a big need for more work on it (apart from bugfixing). So unless Express needs to shift to something else, it seems to function fine. And otherwise requests can be made and forks can be pushed. Agreed?

wraithan commented 8 years ago

I think folks are underestimating how much support load a project like this generates, even with all its stability. It isn't just the code being written, but issues being handled, PRs being reviewed, etc. Code work is only a bit of the work in a hugely popular project like this.

jasonrhodes commented 8 years ago

Really not sure what people are talking about regarding breaking Express, name conflicts, etc. Forking would create a new project people would be free to opt into.

That's exactly what I'm talking about. Throwing away the project history, project name, existing usage, etc is a Big Deal, and it's worth it to try to work with StrongLoop. Maybe a fork will be the answer eventually, maybe one of you will create impressJS tomorrow or something and we'll all migrate, who knows.

What I don't understand is resistance to and dismissal of requests that StrongLoop/IBM put the project back into the project's own org so it can continue along as-is, under community ownership. That conversation doesn't need to move to gitter or IRC, it's happening here (and has been impressively civil for OSS so far).

I'll just re-echo what @toddself said 5 hours ago, as the main idea plea from the community to StrongLoop/IBM:

Return [express] to the community. Or stop the lip service that this is a community project.

Hear, hear.

arackaf commented 8 years ago

@jasonrhodes - I agree. I only ever intended to imply that this was a last resort.

To answer your other question:

What I don't understand is resistance to and dismissal of requests that StrongLoop/IBM put the project back into the project's own org so it can continue along as-is, under community ownership.

I imagine it's because they simply don't care. At all. Doing so won't bring dollars into their company, so they don't care. It sucks that such an important project is now being controlled by IBM. I hope they do the right thing, but I'm glad forking will always be a last resort.

wraithan commented 8 years ago

To be fair to IBM, this was happening before IBM bought StrongLoop. It isn't like this is new in the month or so since they got bought.

On Sun, Jan 17, 2016 at 1:12 PM Adam Rackis notifications@github.com wrote:

@jasonrhodes https://github.com/jasonrhodes - I agree. I only ever intended to imply that this was a last resort.

To answer your other question:

What I don't understand is resistance to and dismissal of requests that StrongLoop/IBM put the project back into the project's own org so it can continue along as-is, under community ownership.

I imagine it's because they simply don't care. At all. Doing so won't bring dollars into their company, so they don't care. It sucks that such an important project is now being controlled by IBM. I hope they do the right thing, but I'm glad forking will always be a last resort.

— Reply to this email directly or view it on GitHub https://github.com/strongloop/express/issues/2844#issuecomment-172383841 .

jasonrhodes commented 8 years ago

@arackaf yeah, to be clear I meant "resistance and dismissal" by other people on behalf of StrongLoop. As for why IBM and/or SL would want to keep it in their company org, that seems more obvious, and I'm even willing to believe they have "non-evil" reasons but without their public participation in the conversation, it's hard to know.

austin1237 commented 8 years ago

TLDR of this thread should be...

toddself commented 8 years ago

@austin1237 lets not forget:

tj commented 8 years ago

I think folks are underestimating how much support load a project like this generates, even with all its stability. It isn't just the code being written, but issues being handled, PRs being reviewed, etc. Code work is only a bit of the work in a hugely popular project like this.

I think this is exactly why sponsorship is almost required for this kind of project. Look at Node itself, it would have not gained nearly as much traction as it did had Ryan, Isaac, and others had the time to work on it. People have to make a living as well. I do think tossing the repo around to different orgs is pretty silly, it should be expressjs/express with full unrestricted repo access, and of course to continue leading the design. In that ideal scenario it's a win/win for both parties.

It is a lot of work to maintain stuff like this, hell, I burnt myself out over the years and now have no job (chose to leave and get healthy). If I would have known the community would have such an annoying reaction I definitely wouldn't have considered making a month's worth from the StrongLoop sponsorship, not worth the drama at all. What a terrible world we live in, where people can write free code and not live on the street.

toddself commented 8 years ago

@tj I don't think anyone here is against sponsorship as a concept, but the fact that since you sold the project to strongloop they've been mum on why it's been moved out of the expressjs org.

Either this is a community project, where people from external companies are contributing and ownership is decided by the community, or it's owned by a company and like, great, but stop pretending like it isn't.

tj commented 8 years ago

Sure, I don't like that aspect either, nor do I think it makes sense from their branding perspective, it just comes across as negative (obviously). I think it would be smart for them to move it, and maintain original thought leadership.

tleen commented 8 years ago

IBM is the very definition of a glacial computing company, months is moving fast for them. If you are used to the GitHub JavaScript frenetic pacing, IBM is the exact opposite of that.

RnbWd commented 8 years ago

I've used express for over 2 years, and I've always wondered why there Isnt more diversity in the node ecosystem? I like express because it's simple and flexible - but I just use node's http server most of the time, because that's also simple. Express is probably being used by (who knows how many?) corporations to run servers in production that require stability above all else. If it's forked all the old contributions will still be there in the git repo - name recognition doesn't mean much - io.js had cooler logos anyway. I guarantee there are more interesting / powerful / flexible ways to design a server in node that can be 100% community driven. This is just unnecessary drama - even if express is 'given back to the community', it's not as beneficial as forking it and creating new paradigms.

tleen commented 8 years ago

@RnbWd if there is one thing JavaScript has an abundance of, it is diversity. Express was early to the game, relatively easy to use so it became popular, therefore had more tutorials, which led to more use and so on... Then it became popular enough to acquire, which resulted in its company being popular enough to acquire and here we are.

This has all happened before and it will happen again.

arackaf commented 8 years ago

@tleen - Web server / Express is the one area where JavaScript is pleasantly stable. I can't think of anything more awful than for this community to start spasming a new web server framework every month, like it does on the client side.

Express is solid and stable, and I really, really hope IBM doesn't screw this up for everyone.

bartekus commented 8 years ago

On behalf of anonymous I would like to express our gratitude (no pun intended) to @tj and @dougwilson for express; many in our ranks use and learn on quality code coming from such projects, and express is one of the fundamental libraries in node community and by extension in our learning curriculum.

Alas, our dislike for corporations is well known and we will not hesitate to strong arm both StrongLoop/IBM (no pun intended) should they continue ignoring the needs of the express community.

Furthermore, while this might come off as a threat, it is but a promise; we are watching - expect us.

pwlin commented 8 years ago

@dougwilson please fork Express under expressjs org and be the leader we all desperately need. It will make the StrongLoop/IBM branch automatically irrelevant.

Why are you losing your hair waiting for some corporate bigwigs make a decision about the most important framework in node history?

arackaf commented 8 years ago

please fork Express under expressjs org and be the leader we all desperately need. It will make the StrongLoop/IBM branch automatically irrelevant.

I agree. I also agree with the disadvantages previously described with doing this, but I really think this is the best / only way to get this scummy corporation to care.

RnbWd commented 8 years ago

@arackaf - I highly doubt ibm would make the library less stable @tleen - nodejs is a server - express is a solid library - but I don't think there's much competition and I wouldn't exactly describe the situation as a corporate acquisition @tj and @dougwilson - totally agree with what you've both said in this thread and just want to express gratitude for all the hard work - no pun intended :+1:

I apologize if this was triple posted - GitHub is weird on my phone

arackaf commented 8 years ago

@RnbWd - I'm not worried about IBM making Express less stable. I'm worried about IBM letting Express stagnate. A fork might force their hand.

tleen commented 8 years ago

This is not malice by IBM. Its simply how unfathomably huge companies operate. It takes forever for consensus and decision, and acquisitions just leave everything up in the air for a long time. I don't think its fair to categorize it as anything but an unfortunate byproduct of StrongLoop's acquisition of Express and then IBM's acquisition of StrongLoop. Think of the sheer number of VP's, Senior Project Managers and Directors of Technology is this gonna have to go through to just to get done. Express may be a big deal to us, but to IBM its a small 0 (as in income) at the end of a huge balance sheet.

That being said if improvement and an increase of pace is what you are looking for, fork is the way. If you like stability and a thing that won't change for a long time, this is still a good repo.

davidcelis commented 8 years ago

For everybody thinking that @dougwilson can simply fork express to a different organization and continue to release it on npm under the same name, he can't. If I understand, the IP behind express (which includes the name) was sold to StrongLoop and, subsequently, is owned by IBM. Express being open source does not mean that the name can be hijacked. A fork would mean changing the name of Express which would cause a lot of confusion for users and community members who are not watching this discussion.

Twipped commented 8 years ago

please fork Express under expressjs org and be the leader we all desperately need

None of y'all are listening to what Doug is saying.

I have personally been making a big push to HTTP/2 and Express is not in a good position to take advantage of modules like http2 and will need a lot of work (i.m.o), so will be working on a new open-source framework that is Express-compatible, support HTTP/2 (which I need) and hopefully provides a better abstraction for route building for better separation of concerns in application code and testing.

Doug is done. Express has reached its peak, there's no need for a fork. People comparing this to io.js aren't remembering why io.js forked in the first place. There was tons of work still needing to be done to Node and Joyent wasn't enabling it. Express is in a completely different place, it's mature and stable. What it needs is support, not development.

The kinds of changes Doug wants to do shouldn't even be done under the Express name. Keeping it under the Express name is just saddling the project with a bunch of baggage of pre-existing expectations.

Let it go.

jonathanong commented 8 years ago

i personally do not use express anymore by choice. koa is vastly superior, and i think everyone should switch over from express when Koa v2 is stable, regardless of the political situation.

the problem with frameworks is that it hides all the magic. web development is so easy, and hiding all the magic makes learning harder. for example, i think view systems are totally unnecessary. it's so easy to render templates yourself.

const jade = require('jade')

app.use((req, res) => {
  const locals = req.locals // get your template locals from where ever
  locals.cache = process.env.NODE_ENV === 'production' // set the template cache
  const html = jade.renderFile('templates/home.jade', locals) // render the template
  res.setHeader('Content-Length', Buffer.byteLength(html))
  res.setHeader('Content-Type', 'text/html; charset=utf-8') // set the content type header
  res.end(html) // send the response
})

The last three lines can be truncated to just res.send(html) in express. The first two lines is just for demonstration. Coding like this allows engineers to better understand their code. For example, jade is synchronous! I didn't know that until I actually used Jade's API instead of Express. This allowed me to code differently by reducing callbacks.

So if you want to build with stability, security, and structure in mind, i would personally recommend hapijs. On the other hand, if you want to learn everything, build piece by piece, and code closer to node-core, I'd recommend Koa. Express is in the middle and does not do either well.

tylerdmace commented 8 years ago

While Express benefits from corporate sponsorship and I understand the desire to avoid losing that, I'd just like to remind people that a fork might be a good opportunity for a different sponsor altogether.

dougwilson commented 8 years ago

@dougwilson ... if there some existing threads of discussion you can point me too on that, please let me know.

@jasnell, all communications have been by phone call. I did record a few of them over the year, but not all of them. I don't know if they contain confidential information, so not sure if I can post the recordings or not.

jasnell commented 8 years ago

Here's what I get from this conversation so far, if I am wrong on any point, please do let me know

  1. express has many passionate users. This part is obvious. It's a project that people care about, which is a very good thing.
  2. A lot of people got mad when StrongLoop took over stewardship of the express project and there are still lots of feelings being harbored about how that happened. There's absolutely nothing we can do about that now, however, other than to acknowledge it and move on.
  3. As with every open source project, there are three fundamental areas that tend to require the most focus: Development, Support and Documentation. Express is stable and mature, while there are definitely a range of things that could be worked on, the core is essentially complete. The documentation is also in pretty excellent shape. From what I'm understanding from @dougwilson's comments, Support is the area we need more focus on. I need to take some time to get my head around the specific requirements there. @dougwilson ... if there some existing threads of discussion you can point me too on that, please let me know.
  4. There seems to be quite a bit of consensus in this thread so far that open governance is the path forward. However, one thing that became apparent to me is that the existing governance on express is not very well documented. I've asked a couple of the StrongLoop folks to begin documenting better how the decisions are made, how commit bits are handed out, etc. Once we get that documented we can begin iterating on that process.
  5. I'd love to get more people involved in the project. For those who are asking for express to be under open governance, have you tried getting involved in the project and run into roadblocks? Have you been discouraged from participating in someway? If so, let's fix that, but first I have to know what those issues have been (I honestly don't know).
  6. I'd love to hear more concrete ideas around what folks would like the governance for express to be. What model would folks like to see?
  7. What are the main community problems we need to see fixed? I'm asking honestly, let me know.

As others have pointed out, there are MANY moving parts here. Things don't change over a matter of days and corporations tend not to change things simply because a group of people start demanding change in a single github repo. There is a solid case to be made for moving express to open governance so let's put that case together.

Simply moving the project to a different repository doesn't automatically give it open governance. Nor would moving the project automatically give it more vitality. Without a community of active contributors and a clear roadmap, moving the project is nothing more than administrative noise.

jasnell commented 8 years ago

@dougwilson ... ok, in that case, can you document (as much as you are able) the support requirements that are not being met currently?

jasnell commented 8 years ago

Question for those of you talking about a fork: Have you tried making contributions to express and had those rejected? @dougwilson ... perhaps you could comment here: how are commit bits to the express project handed out? Have there been non-StrongLoop contributions that have been rejected? From what I can determine, most external contributions fell off when StrongLoop took over stewardship largely because people were mad about the transition that occurred. I'm not aware of any actual governance issues that have blocked contributions so I'm asking honestly if there have been any.

toddself commented 8 years ago

tbqh their lack or response to the ticket regarding why they moved the repo pretty much turned me off entirely.

dougwilson commented 8 years ago

@jasnell, please setup a phone/video meeting with me to have tonight so we can talk about this.

jasnell commented 8 years ago

I'm happy to have a call but I have family visiting tonight and have been building furniture for the kid's room for the past three days. A call tonight definitely is not going to work. Let's get something penciled in for next weekend but if we can either do a call sooner this week or just get things documented in an issue here, that would be better.

dougwilson commented 8 years ago

Hi @jasnell, we can definitely shelve this until next weekend, if necessary. If we think that during the week works better, I am typically available for this type of thing after 9pm Eastern Time, if that works for you.

jasnell commented 8 years ago

I'm out in CA so 9pm Eastern tends to work great for me. Any night this week ought to work if you'd like to send a calendar invite. We can do a hangout and talk things through. (Correction, any night other than the 20th works, I doubt my wife would appreciate me taking conference calls the night of our anniversary :-)...)

For everyone else, I really would like to hear more about any specific issues you've had contributing to the project. If there are issues, we need to get those fixed.

dougwilson commented 8 years ago

@jasnell, I'm not sure what IBM has been saying, but AFAIK, contributing is not where the issue lies here (though the fact that I have never had the ability to add contributors to this project didn't help if it was necessary). To me, the heart of the issue is outlined in https://github.com/strongloop/express/issues/2844#issuecomment-172390529

In essence, if it was not clear from what IBM has told you, the lack has been in supporting users. For example, I don't have enough time remaining after user support to really review current pull requests to this repo (let alone many other repos), and the decisions StrongLoop/IBM has been making to "help" has continually resulted in more support requests, at which I am the only person who has been fielding them, pulling me even further away from helping with contributors.

I'm still so burred in support, I cannot just take the time to type up enormous lists that I have spent a lot of time speaking with StrongLoop/IBM over the phone regarding. At the time of the StrongLoop move, we had active members like @Fishrock123 working to create the very documentation you have noted is missing. Then all there was was me as a single person doing this in my free time with mounting support requests. It was never possible for me to sit down and write all this out by myself, especially since I would have taken any spare time to work on Express 5 (and see how far that's gone in all the time, which really shows how stretched I have been). And all this time I've been killing myself, I have been committing under the StrongLoop name.

No matter what happens, I will not ever commit again to any repository under StrongLoop's name, as they did me so wrong over all this time.

jasnell commented 8 years ago

Just so I understand, what kind of support requests are you spending most of your time on? Are they bugs that need fixed? Or are they more how-to-do-X kinds of things? It's not quite clear. On Jan 17, 2016 7:04 PM, "Douglas Christopher Wilson" < notifications@github.com> wrote:

@jasnell https://github.com/jasnell, I'm not sure what IBM has been saying, but AFAIK, contributing is not where the issue lies here (though the fact that I have never had the ability to add contributors to this project didn't help if it was necessary). To me, the heart of the issue is outlined in #2844 (comment) https://github.com/strongloop/express/issues/2844#issuecomment-172390529

In essence, if it was not clear from what IBM has told you, the lack has been in supporting users. For example, I don't have enough time remaining after user support to really review current pull requests to this repo (let alone many other repos), and the decisions StrongLoop/IBM has been making to "help" has continually resulted in more support requests, at which I am the only person who has been fielding them, pulling me even further away from helping with contributors.

I'm still so burred in support, I cannot just take the time to type up enormous lists that I have spent a lot of time speaking with StrongLoop/IBM over the phone regarding. At the time of the StrongLoop move, we had active members like @Fishrock123 https://github.com/Fishrock123 working to create the very documentation you have noted is missing. Then all there was was me as a single person doing this in my free time with mounting support requests. It was never possible for me to sit down and write all this out by myself, especially since I would have taken any spare time to work on Express 5 (and see how far that's gone in all the time, which really shows how stretched I have been). And all this time I've been killing myself, I have been committing under the StrongLoop name.

No matter what happens, I will not ever commit again to any repository under StrongLoop's name, as they did me so wrong over all this time.

— Reply to this email directly or view it on GitHub https://github.com/strongloop/express/issues/2844#issuecomment-172414097 .

dougwilson commented 8 years ago

It is how to do X or Y as well as misunderstands of how to use this. You can see the ones that have accumulated over this weekend here so far. Most issues are not a simple answer, and a lot of the time it is questions regarding the best way to do X or Y and how to get a complex integration working, which takes significant time.

There are support requests into this repository, but most come in via IRC or Gitter, and the second most come directly to my personal email account, likely because I have been the only active maintainer on the project (this emailing me personally happens a lot with the mysql module as well).

jasnell commented 8 years ago

Ok.. yeah, that's always not fun, especially when there's other stuff that needs to get done. It almost sounds like we need to get some "express evangelists" spun up that could help take that load. Ideally we'd have people from the community step up to help... perhaps that's where we should start? That is: rather than looking at IBM or StrongLoop, we put out a call to the community to ask for help? There are obviously some very passionate members of the community (many of whom spoke up in this thread)... maybe they could help field those issues?

dougwilson commented 8 years ago

Ideally we'd have people from the community step up to help... perhaps that's where we should start? That is: rather than looking at IBM or StrongLoop, we put out a call to the community to ask for help? There are obviously some very passionate members of the community (many of whom spoke up in this thread)... maybe they could help field those issues?

Yes, that sounds right. We had that right before the repository moved and then most of those left (see comments above, especially ones like https://github.com/toddself). My point is at that point, what is StrongLoop doing to have the repository under their name? It shooed away a lot of the community at the time, generally seems to keep them away, prevents me from having the ability to add hooks to the repository to get things like AppVeyor setup for Windows CI (it is now, but it was such a nightmare to walk a SL employee thorough the process blind), add contributors to the repository, etc.

In order for community members to be effective in triaging issues within this repository, they need the access to label issues, close them, etc. I have never had the ability to add anyone to the repository, which likely turned off potential helpers, as they always felt like they were not a part, as I could never perform the administrative action to make them a part. The ask has been to move the repository into an organization, especially since that would allow me to perform these actions.

jasnell commented 8 years ago

Ok, that gives me enough to work with for now. I need to go visit with the family (I'm starting to get dirty looks for not participating in the conversation ;-)...) I'll have some chats with the strongloop folks on this end and will chat you tomorrow night more.

dmethvin commented 8 years ago

This sounds awfully familiar. IMO, many of the issues I see from the past few days are not bug reports and shouldn't need to be answered by the maintainers. Instead they should be posted with the Express keyword at StackOverflow where people can help to triage the issue and form it, if needed, into a true issue with actionable information.

The reason users post in Github Issues is because the design makes it easy for users to stumble their way in and ask a poorly-formed question. Several large projects have put together a petition to Github requesting these long-standing problems be addressed. Feel free to sign it if you agree.

gx0r commented 8 years ago

+1 on Koa ... Express is like Windows 8, Koa is like Windows 10