https://github.com/dexteryy/spellbook-of-modern-webdev A Big Picture, Thesaurus, and Taxonomy of Modern JavaScript Web Development
Spellbook of Modern Web Dev
A Big Picture, Thesaurus, and Taxonomy of Modern JavaScript Web Development
This document originated from a bunch of most commonly used links and learning resources I sent to every new web developer on our full-stack web development team.
For each problem domain and each technology, I try my best to pick only one or a few links that are most important, typical, common or popular and not outdated , base on the clear trends , public data and empirical observation .
Prefer fine-grained classifications and deep hierarchies over featureless descriptions and distractive comments .
Ideally, each line is a unique category . The " / " symbol between the links means they are replaceable. The ", " symbol between the links means they are complementary.
I wish this document could be closer to a kind of knowledge graph or skill tree than a list or a collection.
It currently contains 2000+ links (projects, tools, plugins, services, articles, books, sites, etc.)
Feel free to submit the missing or better links in your opinion. Also, please provide the reason.
Table of Contents
Platforms and Languages
Open Web Platform
Learning, Reference, Visual Tools
Performance, Security, Semantics / SEO / Accessibility
HTML5 Features
HTML/DOM, Appearance, Interaction, Access, Network, Media, Graphics, Computing...
CSS Features
RWD, Layout, Typography, Text, Animation, Effects...
Next Generation CSS
CSS Module, PostCSS, CSS in JS
Best Practices (Skeleton, Methodology, Code Style...)
Web Design (RWD, Atomic Design, Grid System, Typography, Style Guide...)
Next Generation JS
ES6+ Features, Intro to ES6+, Re-intro to JS, Important Proposals, Functional Programming, FRP, Static Typing, Code Style...
Node.js
Intro, Workshop, Best Practices...
Platform Compatibility and Proposal Status
Platform Status / Releases / Updates, ECMAScript Compatibility
Proposal Status (W3C WG, WICG, WHATWG, ECMA TC39, Node.js CTC)
JS Engine (V8, JSC, Chakra), Web/JS Runtime (Electron, Cordova, React Native...), Device...
Cross-browser / Polyfill Libraries
Appearance, Interaction, Access, Network, Performance, Offline, Media...
npm Ecosystem
Finding Packages (Search, Stats, Rank)
Dependency Management / Release / Maintenance (npm, yarn, lerna, ncp...)
Convention (Open Source, SemVer, package.json, Small modules, Isomorphic JS / Universal JS...)
Universal Utility Libraries
Standard Library Extensions (FP, OOP, Async...)
Hashing / Generating
Parsing / Manipulating (URL, Validator, i18n, Date, Numbers, Color, Text, Buffer / Blob...)
Logic, Network, Storage, NLP, ML...
Universal Web Apps / Web Pages
GUI Framework
View / ViewModel / ViewController (React)
Model / App State (Redux)
API (GraphQL)
GUI Architectures (MVC, MVP, PM, MVVM, Flux, Redux, Elm, MVI, SAM...)
UI Toolkits
Standalone UI Components
Layout, Icon, Button, Form, Overlay, Picker, Content, Editor...
Client Side
UX Libraries
Drag & Drop, Gesture, Scrolling, Zoom, Tooltip, Tour...
Graphic Libraries
Animation (Effects, Loading, Scrolling, Parallax, Transition, Timeline, Motion / Curved Path...)
2D (Canvas, SVG, Physics...), 3D (WebGL, Physics...)
Data Visualization, Game...
Hybrid Libraries
Server Side
Network
HTTP (Intro, Same-origin policy, Performance, HTTPS, HTTP/2, gRPC...)
TCP, UDP...
Server-side Best Practices
Restful API, SaaS, Microservices (API Gateway, Serverless)
Cloud / Distributed, Web Hosting / Non-distributed
Authentication / Authorization, Security, Logging / Monitoring, DevOps...
Microservices / API Services (Node.js)
Frameworks (RESTful API, Microservices, Serverless, Bots...), GraphQL, DocGen + CodeGen...
Server-side Libraries (Node.js)
Configuration, Debugging, Protocols, Network, Crypto, Auth, Storage, Jobs, Scraping, Images, Parsing / Generating, NLP...
Cloud Services (Global)
Compute (FaaS / Serverless / WebHook, PaaS, CaaS)
Storage (Object Storage, DBaaS)
BaaS (CRUD, Auth, Search, Email, SMS...)
AIaaS / BDaaS (Natural Language, Computer Vision...)
Cloud Services (China)
The evil twins inside the Great Firewall of China
Tooling
Testing
Unit Testing / Test Runner, Test Doubles
Web Testing (Integration Testing, Functional Testing, Visual testing, Monkey Testing, Headless Browsers)
Server-side Testing (Functional Testing, Load Testing)
Benchmark Testing
Analysis (Code Coverage, Node.js Security...)
Documentation
JS, API, CLI, CSS / Style Guide, Writing
Toolchain
Compiler / Transpiler / Preprocessor (Babel, PostCSS...)
Loader / Builder / Bundler (Webpack, Rollup...)
Minifier / Compressor / Optimizer (Prepack, Babili / Uglify, imagemin, cssnano / clean-css...)
Formatter (Prettier, Stylefmt...)
Static Analysis (ESLint, Flow, StyleLint...)
Task Automation (npm scripts, Gulp...)
Workflow
Development (Micro Generator, Live Reload / Watch / Preview, Dev Tools, HTTP Inspector, Debugging Proxy...)
Deployment (Process Supervisor, Containers, Container Clusters, PaaS)
Monitoring (Error Tracking, Logging, APM...)
Command-line Environment (Mac)
Terminal, Homebrew, Zsh, Vim, Git, Docker, dotfiles, Utilities...
Command-line Libraries (Node.js)
Input (Options/Arguments Parser, Interactive, Configuration...)
Output (Color / Style, Icon, Updating Log, Notice, Columns, Curses, Drawing...)
Delivery, OS, API, Parser...
IDE / Editors
Atom Plugins (UI, Formating, Operating, Static Analysis, Docs, Assistant, Integration...)
Out-of-the-box Atom IDE, Other Electron-based IDE, Programming Fonts...
Useful Apps
Playground, Visual Tools, Viewer, Docs, Automation...
Collaboration
Version Control, ChatOps, Kanban, Markdown, Design...
A Subset as a Learning Path
Open Web Platform
HTML5 Features
CSS Features
Next Generation CSS
Next Generation JS
Platform Compatibility and Proposal Status
Network
Node.js
npm Ecosystem
Command-line Environment (Mac)
IDE / Editors
GUI Framework
Microservices / API Services (Node.js)
Testing
A Subset for Finding Libraries
A Subset for Architecture and Infrastructure
Platforms and Languages
Open Web Platform
Learning
Reference
Visual Tools
Performance
Rendering
Loading
Offline
Measure
Security
Semantics / SEO / Accessibility
HTML5 Features
HTML / DOM
Appearance
Interaction
Access
Network
Offline
Media
Graphics
Computing
CSS Features
Basics
Responsive Web Design
Layout
Flexbox, CSS Grid Layout
Traditional
Web Typography
Text
Animation
CSS Transition
CSS Animation
Motion Path
Effects
Next Generation CSS
Next Generation JS
ES6+ Features
Intro to ES6+
Re-intro to JS
Articles
MDN
Dmitry Soshnikov
Dmitri Pavlutin
Other
Books:
Reference
Important Proposals:
Functional Programming
FRP (Functional Reactive Programming)
Static Typing
Code Style
Node.js
Intro
Workshop
Best Practices
Platform Compatibility and Proposal Status
Web
ECMAScript
Proposal Status
W3C WG (World Wide Web Consortium Working Groups)
WICG (Web Incubator Community Group)
WHATWG (Web Hypertext Application Technology Working Group)
ECMA TC39 (Ecma International Technical Committee 39)
Node.js CTC (Node.js Core Technical Committee)
JS Engine
Web Runtime / JS Runtime
Device
Cross-browser / Polyfill Libraries
Appearance
Responsive Web Design
Web Typography
Web Animation API
Web Components
Interaction
Access
Network
Performance
Offline
Service Work - sw-toolbox
File / FileReader API
IndexedDB
Media
npm Ecosystem
npm
Finding Packages
Dependency Management / Release / Maintenance
Convention
Open Source
SemVer
package.json
Small Modules
Isomorphic JS / Universal JS
Universal Utility Libraries
Standard Library Extensions
Utilities
FP
OOP
Async
Syntax
Node.js API
Debugging
Hashing / Generating
Parsing / Manipulating
URL
URL Parsing - qs , URI.js
IP Address Manipulation - ip
Environment
Validator
i18n
Date
Numbers
Color
Text
Buffer / Blob
Logic
Network
Storage
File Database
IndexedDB / WebSQL / localStorage / Memory
Realtime / P2P - Gun , ShareDB
NLP
ML
Universal Web Apps / Web Pages
GUI Framework
View / ViewModel / ViewController
Model / App State
API
Offline First
Routing
i18n
Server-side Rendering
Monitoring
Debugging
Scaffold / Boilerplate / Generator
GUI Architectures
UI Toolkits
Standalone UI Components
Layout
Icon
Button
Accordion
Progress
Form
Overlay
Picker
Content
Editor
Widget
Client Side
UX Libraries
Drag & Drop
Gesture
Scrolling
Zoom
Crop
Resize
Tooltip
Tour
Accessiblity
Graphic Libraries
Animation
Effects
Loading
Scrolling
Parallax
FLIP
Characters
Keyframe / Transition
Keyframe + Timeline
Motion / Curved Path
2D
3D
Data Visualization
Game
Hybrid Libraries
Electron
Persistence
UI
Interaction
Debug
React Native
UI Toolkits
Standalone UI Components
UX
Access
Graphic
Media
Storage
Server Side
Network
Server-side Best Practices
Restful API
SaaS
Microservices
Cloud / Distributed
Architecture
Static
Queue / Jobs
Decompose
Configuration
Storage / Querying
Resiliency / Availability
Multitenant
Old-fashioned Web Hosting / Non-distributed
Authentication / Authorization
Security
Logging / Monitoring
DevOps
Microservices / API Services (Node.js)
Frameworks
RESTful API
Middleware Framework
Express / Koa
Express Middlewares
Logger
HTTP Parser
HTTP Headers and Verbs
Performance
Security
Auth
Proxy
Rich Framework
Microservices
Serverless
Bots
GraphQL
DocGen + CodeGen
Scaffold / Boilerplate / Generator
Server-side Libraries (Node.js)
Configuration
Debugging
Protocols
Network
Crypto
Auth
Storage
Jobs
Scraping
Images
Parsing / Generating
NLP
Cloud Services (Global)
Compute
FaaS / Serverless / WebHook
PaaS
CaaS
Storage
BaaS
AIaaS / BDaaS
Natural Language
Computer Vision
Cloud Services (China)
The evil twins inside the Great Firewall of China
Compute
FaaS / Serverless / WebHook
PaaS
CaaS
Storage
BaaS
AIaaS / BDaaS
Natural Language
NLP
Speech Recognition / Speech Synthesis
Translation - 腾讯云-机器翻译
Computer Vision
Graphs / Networks / Clusters
Persona
Tooling
Testing
Unit Testing / Test Runner
Web Testing
Integration Testing
Functional Testing
Visual Testing
Monkey Testing
Headless Browsers
Browsers
In-memory X11 Display Server
Docker
Server-side Testing
Functional Testing
Load Testing
Benchmark Testing
Test Doubles (Fakes, Mocks, Stubs and Spies)
Analysis
Code Coverage
Software Complexity
Node.js Security
Web Page
Documentation
JS
API
CLI
CSS / Style Guide
Writing
Toolchain
Compiler / Transpiler / Preprocessor
Loader / Builder / Bundler
Formatter
Static Analysis
ESLint
ESLint Rules
Plugins
babel , eslint-comments , unicorn , no-use-extend-native
compat
node , security
react , graphql
flowtype , jsdoc
ava , mocha , chai-expect
fp , lodash , lodash-fp , immutable
promise , optimize-regex
filenames
Flow
StyleLint
HTMLHint
Minifier / Compressor / Optimizer
Task Automation
Workflow
Development
Micro Generator
Live Reload / Watch / Preview
Dev Tools
HTTP Inspector
Debugging Proxy
Deployment
Publishing App
Server-side Rendering
Static Web
Dynamic Routing + CDN
Object Storage + CDN
Packaged App
DevOps
Process Supervisor
Containers
Container Clusters
PaaS
Monitoring
Error Tracking
Logging
APM (Application Performance Management)
Command-line Environment (Mac)
Command-line Libraries (Node.js)
Input
Output
Delivery
Framework
OS
Shell Commands - ShellJS
Filesystem
Local
API
Parser
IDE / Editors
Atom Plugins
UI
Formating
Operating
Static Analysis
Docs
Assistant
Integration
Out-of-the-box Atom IDE
Other Electron-based IDE
WebStorm
Programming Fonts
Useful Apps
Playground
Visual Tools
Viewer
Docs
Automation
Collaboration
Version Control
ChatOps
Kanban
Markdown
Design