Project 1: Universal Guide to Web Development - Node.js Go to guide

Nodejs logo

Our initial project is to provide a universal guide for website and API development for mid-sided or above projects.

Goals

  1. One stop shop for creating a web app or API.
  2. Every programming choice is well reasoned and peer reviewed.
  3. Always up-to-date.
  4. As fast to prototype in as Ruby on Rails.

Why Node.js?

There are dozens of programming language and web framework combinations to choose from to build a web application. Some of the most popular ones are Ruby on Rails, Python and Django, Java and Spring, PHP and Laraval, C# and .net, and JavaScript with Node.js and Express. Of those we recommend all web developers learn Node.js with Express as their primary or secondary web development stack.

Why? First, because Node.js uses JavaScript as it's programming language. All full stack web developers need to know JavaScript for the front end. The advantage of using the same language for both the front and back end is self evident. No overhead of learning a new language or switching back and forth between languages.

Second, Node.js is fast. It is built on top of Google's V8 engine that powers the Chrome browser. Google has deep pockets, top talent, and a stake in keeping V8 (and by extention Node.js) as fast as possible.

Third, the Express.js web framework is light weight and unopinionated. Less code means a faster framework. It also means less opaque magic going on in the background. Opinionated frameworks are great, but they lock you into their way of doing things. If you need to make a significant change it can be much more difficult than with a light weight framework like Express.

A light-weight unopinionated framework like Express has two big downsides though. First, it does a lot less out-of-the-box than a full service framework like Ruby on Rails. Rails is famous for it's ability to quickly prototype ideas using it's built-in generators. Second, being unopinionate, Node.js apps are not structured in a consistent manner. The same problems are solved in many different ways.

It is those downsides that this project aims to address. By researching and publishing well reasoned solutions to common problems. And by keeping them peer reviewed and continually updated, we hope to provide a service that all web developers can turn to, contribute to, and trust.

This doesn't mean Node.js is the right solution for all websites. Small business or local organization websites that have low volume should use none of those web stacks, but rather a content management system like Wordpress which requires no programming at all. And someone who is already a Python expert may be most at home with a Python based framework like Django or Flask. A Ruby on Rails expert may be best served continuing to use Ruby on Rails. But if there was one language and framework stack that all web devs should know in addition to any others they may know or like, we believe this is it.