The web development ecosystem is in constant flux, new favorite tech stacks emerge and darlings fall out favor. Trying to stay on top of these developments and trends is time-consuming, especially when not using certain technologies for a while (sometimes a few months are enough for a whole lot to change).
If you're like you me you want to use the latest and greatest things when starting a new project. Sifting through boat loads of blog posts and HN comments to understand what stack is (somewhat) future-proof takes hours.
This list tries to distill the gist and keep up to date with the current best way™ of doing things.
- Mostly my future self and as a reference I can give to friends
- Not meant as a beginners tutorial or roadmap of sorts
- PRs are very welcome, make sure to be opinionated though!
- This list is not meant to document all options available but the relevant ones
Gist: Boils down to personal preference and experience
Sublime Text 3
- Despite being not-free is still going strong with a large following and plugin ecosystem- Pros: Cross-platform, light-weight and extremely fast & responsive, magic session auto-saving, lots of high quality plugins
Atom
has a solid user based by now with healthy ecosystemVSCode
is picking up steam: Good support from MS, great tooling (e.g. Typescript support)- Classics like
vim
still persist
Language features, transpilers, type safety
Gist: Use ES6/2015 as default, TypeScript et al if you have the need.
ES6/ES2015
emerged as the standard of writing JavaScript- Frontend
- Transpile using
babel
when targeting browsers
- Transpile using
- Backend
- Avoid transpiling when targeting Node.js
- Most ES2015 features are natively supported starting from v7.10
- Notable exception:
import
statements (userequire
for now)
- Notable exception:
- Frontend
TypeScript
is gaining momentum for larger code bases due to type safety, strong backing by Microsoft, good tooling with VSCodeFlow
mostly popular in react land (supported by Facebook)- Dead/obsolete: Coffeescript
- Use
async/await
for control flow and to avoid nested callbacks, wrap callbacks in promises for now
& Dependency management
Gist: Use yarn
for now but get ready to switch back to npm
soon.
yarn
gained a lot of traction and should be used instead ofnpm
npm
still the current standard and comes bundled withnode
- Had some big issues (performance, reproducability) that led to development of yarn
- Starting from v5 they've addressed most issues (speed, package-lock.json)
- Dead/obsolete:
bower
(Fronted focus, swallowed by npm/yarn)
Gist: Use React
or Vue.js
React
is the new standard for a while now, no signs that this will change soonVue.js
(dubbed to be more approachable) is up and coming with a dedicated followingAngular
took a massive hit in popularity with the backwards breaking v2 release
TODO
Gist: Use mocha
or jest
mocha
is the current standardjasmine
has a similar large followingjest
is up and coming, especially in conjunction with React code
Gist: Use webpack
with npm scripts
(if sufficient)
webpack
is the current standard, especially for bundlingrollup
is the new kid on the block, consider using it for librariesgulp
not a bundler but a build tool with rich ecosystem- Dead/obsolete: Grunt (use Gulp), Browserify (use webpack)