An opinionated list of components to build Node applications
We have spent hundreds of hours researching "the best" technology to build our software. Sometime the choices are more obvious but most of the time there are many fantastic languages, frameworks, environments and applications out there and if you are trying to find "the best" you risk you will never settle.
So we decided to share our list of technologies of choice to help you save time and avoid agonising which framework to choose.
Are we choosing "the best"? We don't think this is even the right questions to ask. What "the best" means is relative: speed, maintainability, security, hardware requirements, technological burden... there are just too many factors and different use cases. Developers and companies may have different views on their relative importance.
Instead of looking for "the best" we decided to settle for the stack which we think is overall solid, mainstream, has huge open source community and... we simply like to use. We no longer agonise whether to choose Express over Fastify over Hapi... we made our mind, we are happy with our choices and we share our list with you.
If you don't choose all the elements below, we hope at least this list will at least serve as a useful reference framework. If you are having trouble deciding between any particular components, this may help you make up your mind.
Node is our environment of choice. The main reasons we choose Node are:
Yarn is our Node package manager of choice and we prefer it over npm. See our Yarn vs npm comparison.
Node js application framework. Express is not the newest, not the fastest but it is probably still the most widely used Node framework. Express is light, unopinionated, mature and simple. There is a large number of packages available for Express.
We use Knex for database migrations.
Object-relational-mapping or relational query builder for Node.js
Parsing markdown server-side to deliver SEO optimised pages.
Display mathematic formulae
Standard is an opinionated, zero-configuration code linter. Stop wasting time on arguing over how to format your code. Forget about fiddling around setting up linting rules in config files. Standard allows you to run linting and fixing out of the box. It is used by many major players including Node.js, Express and Github.
Learn how to integrate Standard into an Express app.
This article is primarily about the server side stack. So the below is just a short list of key front-end technologies we like to use.
The world's most popular css framework. See how to integrate Bootstrap with an Express app to create custom themes.