• Stars
    star
    16,694
  • Rank 1,670 (Top 0.04 %)
  • Language
  • Created over 7 years ago
  • Updated 11 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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




Spellbook of Modern Web Dev




  • 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.
  • What I'm doing in this document now is trying to provide the complete view angle of modern web (app or page) development ruled by JavaScript, reflect technological advance and help developers to acquire APIs, libraries, tools, services, best practices and learning resource which are not outdated and most commonly used.
  • I hope this document can help one developer to have more power to do much more and much better, just like a spellbook does in fantasy worlds.
  • The JS/web technology is like an ocean of stuff you don’t know. Simply collecting more stuff or composing dozens of "awesome lists" into a single one will only exacerbate the Javascript Fatigue. So this document must stay lean and focus on the most frequent problems and the most commonly used stuff.
  • So for each problem domain and each technology, I try my best to pick only one or a few links.
  • Which link belongs to "not outdated and most commonly used stuff" is not only decided by clear trends, empirical observation, and working experience, also by public data and web scraping scripts.
  • The npm package statistics (like download count) are given more weight than Github repo statistics (like starring data) because npm statistics can better reflect the actual usage and popularity.
  • 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.
  • Why not add a Europe (or other regions) section? Why not add your project? Why so many React-based projects? Why not Angular/Vue.js/XXX?

Understanding Modern Web Development






Table of Contents

  • Platforms and Languages
    • Open Web Platform
      • Learning, Reference, Visual Tools
      • Performance, Security, Semantics / SEO / Accessibility
    • HTML5 / Web APIs
      • HTML/DOM, Appearance, Interaction, Access, Network, Media, Graphics, Computing...
    • CSS Features
      • RWD, Layout, Typography, Text, Animation, Effects...
    • Modern CSS / Next-Gen CSS
      • CSS Module, PostCSS, CSS in JS
      • Best Practices (Skeleton, Methodology, Code Style...)
      • Know More about Web Design / UI Design / UX Design (RWD, Atomic Design, Motion Design, Grid System, Typography, Style Guide...)
    • Modern JS / Next-Gen JS
      • ES6+ Features, Intro to ES6+, Re-intro to JS, Important Proposals, Functional Programming, FRP, Static Typing, Code Style...
    • WebAssembly
      • Concepts, Features, Rust, ...
    • 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
      • CSS, React...
    • 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
      • Electron, React Native
  • Server Side
  • Tooling
    • Testing
      • Unit Testing / Test Runner, Test Doubles
      • Web Testing (Integration Testing, Functional/E2E 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
      • VSCode Plugins (UI, Formatting, Operating, Static Analysis, Docs, Assistant, Integration...)
      • Atom Plugins (UI, Formatting, 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

  1. Open Web Platform
  2. HTML5 / Web APIs
  3. CSS Features
  4. Modern CSS / Next-Gen CSS
  5. Modern JS / Next-Gen JS
  6. Platform Compatibility and Proposal Status
  7. Network
  8. Node.js
  9. npm Ecosystem
  10. Command-line Environment (Mac)
  11. IDE / Editors
  12. GUI Framework
  13. Microservices / API Services (Node.js)
  14. Testing

A Subset for Finding Libraries

A Subset for Architecture and Infrastructure






Platforms and Languages

Open Web Platform

>> Return to Table of Contents

HTML5 / Web APIs

>> Return to Table of Contents

CSS Features

>> Return to Table of Contents

Modern CSS / Next-Gen CSS

>> Return to Table of Contents

Modern JS / Next-Gen JS

>> Return to Table of Contents

WebAssembly

Node.js

>> Return to Table of Contents

Platform Compatibility and Proposal Status

>> Return to Table of Contents

Cross-browser / Polyfill Libraries

>> Return to Table of Contents

npm Ecosystem

>> Return to Table of Contents

Universal Utility Libraries

>> Return to Table of Contents

Universal Web Apps / Web Pages

GUI Framework

>> Return to Table of Contents

UI Toolkits

>> Return to Table of Contents

Standalone UI Components

>> Return to Table of Contents

Client Side

UX Libraries

>> Return to Table of Contents

Graphic Libraries

>> Return to Table of Contents

Hybrid Libraries

>> Return to Table of Contents

Server Side

Network

>> Return to Table of Contents

Server-side Best Practices

>> Return to Table of Contents

Microservices / API Services (Node.js)

>> Return to Table of Contents

Server-side Libraries (Node.js)

>> Return to Table of Contents

Cloud Services (Global)

>> Return to Table of Contents

Cloud Services (China)

The evil twins inside the Great Firewall of China

>> Return to Table of Contents

Tooling

Testing

>> Return to Table of Contents

Documentation

>> Return to Table of Contents

Toolchain

>> Return to Table of Contents

Workflow

>> Return to Table of Contents

Command-line Environment (Mac)

>> Return to Table of Contents

Command-line Libraries (Node.js)

>> Return to Table of Contents

IDE / Editors

>> Return to Table of Contents

Useful Apps

>> Return to Table of Contents

Collaboration

>> Return to Table of Contents

More Repositories

1

CardKit

A mobile UI library provides a series of building blocks which are all components built on DarkDOM and Moui.
JavaScript
703
star
2

OzJS

A microkernel for modular javascript, a toolchain for modern front-end, a micro-framework for growable WebApp
JavaScript
436
star
3

Project-WebCube

Continuously updated JS infrastructure for modern web dev
JavaScript
147
star
4

YVim

Out-of-the-box ~/.vim directory for MacVim
Vim Script
80
star
5

GrassMudMonkey

an Open Souce GrassMudHorse/Whitespace Engine Written in JavaScript
JavaScript
34
star
6

YAtom

Atom as Vim as IDE
CSS
33
star
7

DarkDOM

Design your own markup languages to build responsive cross-screen UI components
JavaScript
29
star
8

JSMatchismo

A pure JS implementation of Matchismo Playing Card Game of Stanford University CS193p lecture (Winter 2013)
JavaScript
28
star
9

TUICompiler

JavaScript preprocessor & autobuild tool
Python
20
star
10

nodecube

A batch of continuously updated base code and configurations for the minimal modern node.js service that conform to RESTful API, 12-Factor App, Microservice Architecture
18
star
11

DollarJS

A jQuery-compatible and non-All-in-One library which is more "Zepto" than Zepto.js
JavaScript
15
star
12

mo

A collection of OzJS core modules that form a library called "Mo"
JavaScript
15
star
13

doubanchou

豆瓣抽~RP在此流动 (demo for oz.js, event.js and IndexedDB)
JavaScript
14
star
14

moui

OO-based UI behavior modules behind CardKit(mobile webapp framework)'s view components
JavaScript
12
star
15

cardkit-demo-darkdom

Learning DarkDOM visually
JavaScript
12
star
16

EventMaster

Promise + Event = ?
JavaScript
9
star
17

BugHunter

A multiplayer "answer first game" or a competition responder system, based on NodeJS and OzJS
JavaScript
8
star
18

pachislot

Doubanchou II: Pachislot
JavaScript
6
star
19

grunt-ozjs

grunt tasks for oz.js and ozma.js
JavaScript
5
star
20

monokai-blackboard

A monokai-blackboard hybrid theme for Atom
CSS
5
star
21

cardkit-demo-gallery

CardKit Demo: Components Gallery App
JavaScript
5
star
22

cardkit-demo-todoapp

CardKit Demo: To-do App
HTML
5
star
23

momo

A framework and a collection for separate and simple implementation of touch gestures
JavaScript
4
star
24

ozma.js

Intelligent autobuild tool for OzJS
JavaScript
4
star
25

MacPacbot

a Python toolkit of PAC(auto proxy configuration) for Mac OS X
Python
4
star
26

hifetch

A minimal higher-level wrapper around Fetch API
4
star
27

grunt-furnace

Grunt tasks for transforming code from one format to another
JavaScript
4
star
28

URLKit

A lightweight implementation of routing and URL manager
JavaScript
3
star
29

karma-ozjs

A Karma plugin. Adapter for OzJS framework
JavaScript
3
star
30

nodecube-example

Boilerplate code and a demo for HTTP API projects based on nodecube
JavaScript
2
star
31

webcube-example

Migrated to Project WebCube's monorepo
2
star
32

webcube-exercise

JavaScript
2
star
33

NervJS

A tiny, pure, event-based model wrapper for the MVC or MDV (Model-driven Views) pattern
JavaScript
2
star
34

generator-ozjs

Scaffolding tool for OzJS which offers a packaging workflow integrates toolchain, micro-framework and many best practices
JavaScript
2
star
35

SovietJS

Standalone UI event delegate implementation, provide multiple styles/modes
JavaScript
2
star
36

ozma-demo

Ozma Demo
JavaScript
1
star
37

ozjs.org

The website for all OzJS projects
JavaScript
1
star
38

PoormanAR

Poor man's augmented reality and motion tracking with web browser and webcam
JavaScript
1
star
39

YAAS

Yet Another All-in-one Spider for Greasemonkey
JavaScript
1
star
40

webcube-cli

1
star
41

ChoreoJS

An animation library which uses "stage" and "actor" as metaphors
JavaScript
1
star
42

gulp-tpl2amd

Convert js templates to AMD modules no matter what syntax
JavaScript
1
star
43

eslint-config-webcube

Migrated to Project WebCube's monorepo
1
star
44

yyopml

YyOPML is created for transforming OPML file into a webpage with a rich, intuitive interface. OPML is a simple XML format, you can export it by using google reader or almost all RSS readers.
JavaScript
1
star