All Projects โ†’ slikts โ†’ Tooling

slikts / Tooling

Licence: cc0-1.0
๐Ÿงฐ Up-to-date list of JavaScript and TypeScript tooling resources

Programming Languages

javascript
184084 projects - #8 most used programming language
typescript
32286 projects

Projects that are alternatives of or similar to Tooling

drevops
๐Ÿ’ง + ๐Ÿณ + โœ“โœ“โœ“ + ๐Ÿค– + โค๏ธ Build, Test, Deploy scripts for Drupal using Docker and CI/CD
Stars: โœญ 55 (-69.61%)
Mutual labels:  continuous-integration, tooling, scaffold
Orkestra
Functional DevOps with Scala and Kubernetes
Stars: โœญ 102 (-43.65%)
Mutual labels:  devops, continuous-integration
Dyn365 Ce Vsts Tasks
VSTS Extension for Dynamics 365 Customer Engagement
Stars: โœญ 94 (-48.07%)
Mutual labels:  devops, continuous-integration
Snippod Starter Demo App
A full stack 'Hacker News' style demo web application built with React + Redux (Front) and django REST Framework (Server).
Stars: โœญ 128 (-29.28%)
Mutual labels:  stack, boilerplate
Variable Injector
Continuous Integration Tool for Swift Projects
Stars: โœญ 63 (-65.19%)
Mutual labels:  devops, continuous-integration
Dyn365 Ce Devops
DevOps for Dynamics 365 Customer Engagement (CE) is becoming a popular topic. The goal of this project is to help Dynamics 365 CE solution builders understand and accelerate their implementation of DevOps practices with Dynamics CE and VSTS.
Stars: โœญ 82 (-54.7%)
Mutual labels:  devops, continuous-integration
Lastbackend
System for containerized apps management. From build to scaling.
Stars: โœญ 1,536 (+748.62%)
Mutual labels:  devops, continuous-integration
Fluenttc
๐ŸŒŠ ๐Ÿ‘ฌ ๐Ÿข Integrate with TeamCity fluently
Stars: โœญ 42 (-76.8%)
Mutual labels:  devops, continuous-integration
Laravel Scaffold
The base for developing awesome projects
Stars: โœญ 142 (-21.55%)
Mutual labels:  boilerplate, scaffold
Terrahub
Terraform Automation and Orchestration Tool (Open Source)
Stars: โœญ 148 (-18.23%)
Mutual labels:  devops, continuous-integration
Syncd
syncdๆ˜ฏไธ€ๆฌพๅผ€ๆบ็š„ไปฃ็ ้ƒจ็ฝฒๅทฅๅ…ท๏ผŒๅฎƒๅ…ทๆœ‰็ฎ€ๅ•ใ€้ซ˜ๆ•ˆใ€ๆ˜“็”จ็ญ‰็‰น็‚น๏ผŒๅฏไปฅๆ้ซ˜ๅ›ข้˜Ÿ็š„ๅทฅไฝœๆ•ˆ็Ž‡.
Stars: โœญ 2,065 (+1040.88%)
Mutual labels:  devops, continuous-integration
Flow Core X
Powerful and user-friendly CI / CD server with high availability, parallel build, agent scaling
Stars: โœญ 1,108 (+512.15%)
Mutual labels:  devops, continuous-integration
Origin
Conformance test suite for OpenShift
Stars: โœญ 8,046 (+4345.3%)
Mutual labels:  devops, continuous-integration
Libreselery
Continuous distribution of funding to your project contributors and dependencies. Integrated into GitHub Actions
Stars: โœญ 92 (-49.17%)
Mutual labels:  devops, continuous-integration
Piplin
๐Ÿ“ค An open source self-hosted continuous integration and deployment system - QQ็พค๏ผš 656868
Stars: โœญ 1,044 (+476.8%)
Mutual labels:  devops, continuous-integration
Flint
Fast and configurable filesystem (file and directory names) linter
Stars: โœญ 115 (-36.46%)
Mutual labels:  devops, continuous-integration
Baumeister
๐Ÿ‘ท The aim of this project is to help you to build your things. From Bootstrap themes over static websites to single page applications.
Stars: โœญ 171 (-5.52%)
Mutual labels:  boilerplate, scaffold
Vue Stack
Minimalistic Boilerplate for FullStack Express and Vue.js applications
Stars: โœญ 26 (-85.64%)
Mutual labels:  stack, boilerplate
Iceci
IceCI is a continuous integration system designed for Kubernetes from the ground up.
Stars: โœญ 29 (-83.98%)
Mutual labels:  devops, continuous-integration
Aws Codebuild Jenkins Plugin
AWS CodeBuild integration as a Jenkins build step.
Stars: โœญ 132 (-27.07%)
Mutual labels:  devops, continuous-integration

JavaScript and TypeScript tooling overview

A quick and up-to-date overview of existing build and developer tools for JavaScript and TypeScript.

The intended audience is project maintainers and tool authors. The list is selective; non-recommended tools are listed separately. Existing resources with a similar focus on tooling are listed at the end; the motivation for this list is filling a gap in them.

The list format includes links to project homepages (if they exist), GitHub pages, and npm trends comparisons where applicable. The format differs from the awesome template by being slightly more detailed and opinionated.

Criticism, adding omissions and other contributions are welcome.

๐Ÿ”ฅ Zero-config presets

npm trends ๐Ÿ“ˆ

Presets, generators or initializers that don't require configuration to start using them. Presets are recommended when starting out and to save the time and effort of building and maintaing a custom stack, but can be limited in certain aspects.

  • @pika/pack (GitHub)
    • Build npm packages using composable plugins
  • nwb (GitHub)
    • Toolkit for quick development with React, Inferno, Preact or vanilla JavaScript
  • TSDX (GitHub)
    • Library-oriented preset for TypeScript
  • Neutrino (GitHub)
    • Zero-configuration presets for React, Preact, Vue, web and Node.js projects and libraries; lacks TypeScript support

React presets and frameworks

Toolchains

  • Rome (GitHub)
    • Rome is an experimental JavaScript toolchain from Facebook which includes a compiler, linter, formatter, bundler, testing framework and more

๐Ÿšš Bundlers

npm trends ๐Ÿ“ˆ

  • webpack (GitHub)
    • The most popular bundler with a wide ecosystem of plugins; used by popular tools like Create React App
  • Rollup (GitHub)
    • A bundler often used specifically for bundling libraries; requires plugins for TypeScript support (see TypeScript section below)
  • Parcel (GitHub)
    • A fast, zero-configuration bundler; builtin TypeScript support
  • FuseBox (GitHub)
    • Fast bundler with many features and builtin publishing and TypeScript support
  • microbundle (GitHub)
    • Fast, zero-configuration bundler that aims to reduce bundle size; supports TypeScript out of the box
  • Poi (GitHub)
    • Zero-config bundler based on webpack
  • browserify (GitHub)
    • The first JavaScript bundler around

Other

๐Ÿ‘จโ€๐Ÿ’ป Compilers

Tools that allow "transcompiling" or "transpiling" JavaScript.

  • Babel (GitHub)
    • A tool to "downlevel compile" modern JavaScript to support older browsers; also used to add features like JSX to the language
    • @babel/preset-env
      • Tune Babel output for the minimum required level of browser support
  • swc (GitHub)
    • Very fast Babel alternative written in Rust
  • TypeScript (GitHub)
    • JavaScript with gradual typing; particularly useful for library authors and larger projects

๐Ÿงซ Code generators

npm trends ๐Ÿ“ˆ

  • hygen (GitHub)
    • Ad-hoc generator or project scaffold tool
  • plop (GitHub)
    • Boilerplate micro-generator framework

๐Ÿ’… Formatters and linters

npm trends ๐Ÿ“ˆ

  • ESLint (GitHub)
    • The defacto standard linter for JavaScript (and TypeScript since typescript-eslint)
    • eslint-config-airbnb (GitHub)
      • The most popular ruleset for ESLint; relatively conservative
    • Standard (GitHub)
      • A popular ruleset, although the "standard" name is more tongue in cheek
    • typescript-eslint (GitHub)
      • Replacement for the now-deprecated TSLint
    • eslint-config-es (GitHub)
      • ESLint configuration with a focus on strictness; supports TypeScript, React
  • Prettier (GitHub)
    • Opinionated formatter for JavaScript and TypeScript; useful for automatically enforcing consistent formatting and hence, for example, simplifying code reviews
    • prettier-eslint (GitHub)
      • Allows using Prettier as an ESLint plugin
    • eslint-config-prettier (GitHub)
      • Prevents ESLint conflicts with Prettier
    • pretty-quick (GitHub)
      • Skips running Prettier on unchanged files
  • XO (GitHub)
    • Opinionated (zero-config), configurable ESLint wrapper
    • vscode-linter-xo (GitHub)
      • XO doesn't integrate with ESLint tools, so it requires special support in editors
  • Zoe (GitHub)
    • Zero-config ESLint toolchain; includes Prettier and supports Jest and React
  • dprint (GitHub)
    • TypeScript, JavaScript, and JSONC formatter implemented in Rust; supports Prettier 2.0's ruleset

๐ŸŒ Runtimes

  • Node.js (GitHub)
    • The de facto standard runtime for JavaScript; includes the npm and npx tools
  • babel-node
    • Can execute or provide a REPL for, e.g., TypeScript
  • Deno (GitHub)
    • JavaScript and TypeScript runtime with an alternative module design
  • ts-node (GitHub)

Version managers

  • nvm (GitHub)
    • A commonly used version manager for Node.js
  • fnm (GitHub)
    • Fast Node Manager; built in native ReasonML
  • Volta (GitHub)
    • Fast, reliable and universal version manager for the whole Node.js toolchain; written in Rust

๐Ÿƒ Testing

Tools for end-to-end, integration and unit testing.

Test libraries and frameworks

npm trends ๐Ÿ“ˆ

  • Mocha (GitHub)
    • Test framework
  • Jasmine (GitHub)
    • BDD testing framework
  • Chai (GitHub)
    • BDD or TDD assertion library for Node.js and browsers
  • Sinon (GitHub)
    • Test spies, stubs and mocks
  • testdouble.js (GitHub)
    • A minimal test double library for TDD
  • Doctest (GitHub)
    • Executable usage examples in comments for JavaScript and CoffeeScript

"Over the wire" test doubles

npm trends ๐Ÿ“ˆ

  • Nock (GitHub)
    • HTTP server mocking and expectations library for Node.js
  • SuperTest (GitHub)
  • Mountebank (GitHub)
    • Service virtualization tool with support for mock verification, stubbing with advanced predicates, JavaScript injection, and record-playback through proxying; supports HTTP, TCP and SMTP and can support custom protocols
  • Chai HTTP (GitHub)
    • HTTP integration testing addon for Chai

Test runners

npm trends ๐Ÿ“ˆ

  • Jest (GitHub)
    • Popular, well-polished test runner; supports TypeScript via @babel/preset-typescript and babel-jest; includes tools for spies, stubs, mocks and assertions
    • Majestic (GitHub)
      • GUI for Jest
    • jest-stare (GitHub)
      • Jest HTML reporter
  • Karma (GitHub)
    • Test runner for browsers
  • AVA (GitHub)
  • Wallaby (GitHub)
    • Non-free; integrates test output in the editor
  • Teston (GitHub)
    • Fast test runner similar to tape, but with ES6 module support and simpler subtest syntax

End-to-end testing focused frameworks

  • TestCafe (GitHub)
    • Automate end-to-end web testing
  • Cypress
    • End-to-end test runner
    • cypress-testing-library (GitHub)
      • Custom Cypress commands and utilities to avoid testing implementation details
  • Nightwatch (GitHub)
  • Puppeteer (GitHub)
    • Library for controlling headless Chrome or Chromium instances
  • Playwright (GitHub)
    • Node library to automate the Chromium, WebKit and Firefox browsers with a single API; made by Microsoft

React testing

๐Ÿ‡ Performance

Benchmarking and profiling

Performance monitoring

React performance

๐Ÿ“š Documentation generators

npm trends ๐Ÿ“ˆ

  • Docz (GitHub)
    • Creates live-reloading, seo-friendly, production-ready documentation sites with MDX; based on Gatsby
  • Docusaurus (GitHub)
    • A popular, full-featured documentation generator
  • docsify (GitHub)
    • Simple docs with an option to skip generating static files
  • TypeDoc (GitHub)
    • Generates API documentation from TypeScript
    • typedoc-plugin-markdown (GitHub)
      • Allows using the generated docs with Docusaurus
  • ESDoc (GitHub)
    • JavaScript API documentation generator

โ˜‚๏ธ Monorepos

Monorepo managers

npm trends ๐Ÿ“ˆ

  • Lerna (GitHub)
    • The most popular solution for managing monorepos
  • Rush (GitHub)
    • Part of the Rush stack by Microsoft
  • Yarn workspaces
    • Can be used alone or in conjunction with Lerna
  • Bolt (GitHub)
    • JavaScript project management based on Yarn
  • oao (GitHub)
    • Yarn-based, opinionated

Other

  • nx (GitHub)
    • Automated (zero-config), extensible dev tool setup for monorepos
  • syncpack (GitHub)
    • Manage multiple package.json files

๐Ÿš€ Deployment and release tools

npm trends ๐Ÿ“ˆ

  • semantic-release (GitHub)
    • Automated version management and package publishing based on semver
  • Shipit (GitHub)
    • Automation engine and a deployment tool; alternative to Capistrano
  • release-it (GitHub)
    • Automated versioning and package publishing
  • Ship.js (GitHub)
  • Conventional Commits
    • A specification for adding human and machine readable meaning to commit messages
  • Standard Version (GitHub)
    • Like semantic-release but without the automatic publishing
  • gh-pages (GitHub)
    • Publish files to a gh-pages branch on GitHub (or any other branch)
    • Tutorial about using gh-pages with CRA
  • publish-please (GitHub)
    • Replacement for npm publish

๐Ÿšฉ TypeScript

  • GraphQL Code Generator (GitHub)
    • Generate TypeScript types from GraphQL schema; invaluable for large projects
    • graphql-let (GitHub)
  • tsd (GitHub)
    • Check TypeScript type definitions with assertions
    • A recent alternative is @ts-expect-error
  • AssemblyScript (GitHub)
    • Compile TypeScript to WASM
  • ts-jest (GitHub)
    • TypeScript preprocessor with sourcemap support for Jest
  • gts (GitHub)
    • Google TypeScript Style; zero-configuration formatting, linting and code fixing
  • tsc-watch (GitHub)
    • nodemon for TypeScript
  • Tsearch (GitHub)
    • Search functions in different packages by their type signature
  • dts-bundle-generator (GitHub)
    • Tool to generate a single bundle of dts

Documentation

  • TSDoc (GitHub)
    • A documentation comment standard
  • API Extractor (GitHub)
    • Analysis tool that can extract API reports for an API review workflow, bundle multiple declaration files into one, and extract a documentation model and generate an API reference website from it
  • See also: TypeDoc

Rollup plugins

npm trends ๐Ÿ“ˆ

Useful for generating library type definitions; can be replaced with tsc for applications.

  • @wessberg/rollup-plugin-ts (GitHub)
    • A more modern but slightly less mature alternative to rollup-plugin-typescript2
  • rollup-plugin-typescript2 (GitHub)

๐Ÿ“ฆ Package management

Package managers

npm trends ๐Ÿ“ˆ

Package search, vetting

Git hook managers

npm trends ๐Ÿ“ˆ

Desktop packaging

Executables

Other

  • patch-package (GitHub)
    • Fix issues with packages without having to fork them or waiting
  • npm-package-scripts (nps) (GitHub)
    • A specialized tool for having complex npm scripts
  • bundlesize (GitHub)
    • Set configurable bundle size limits
  • Size Limit (GitHub)
    • Performance budget tool
  • Depcheck (GitHub)
    • Check npm packages for unused dependencies
  • why-npm-i-so-long (GitHub)
  • Package Phobia (GitHub)
  • nrm (GitHub)
    • npm registry manager; fast switch between different registries
  • Open-Registry
    • Community-funded mirror of the npm registry
  • Dependency cruiser (GitHub)
    • Validate and visualize dependencies

๐Ÿ’ก Create React App

npm trends ๐Ÿ“ˆ

Create React App purposely limits its configurability to be able to give developer guarantees, but there are advanced use cases that require configuration while still avoiding "ejecting" from Create React App.

๐ŸŽจ Design systems and prototyping

npm trends ๐Ÿ“ˆ

Tools for developing and testing components and for creating style guides and reusable collections of components.

โŒ Cross-platform

  • cross-env (GitHub)
    • Set and use environment variables across platforms
  • shx (GitHub)
    • Unix-like shell commands

๐Ÿ—ฟ GraphQL

  • eslint-plugin-graphql (GitHub)
    • ESLint plugin to validate GraphQL query strings against a schema

โœ” Static type checkers

๐Ÿšง Unvetted or uncategorized

TypeScript

  • node-typescript-boilerplate (GitHub)
  • ttypescript (GitHub)
    • Wraps tsc to enable transforming the compiled code
  • TypeScript Node Starter (GitHub)
    • Microsoft's end-to-end project setup for Node.js using TypeScript

webpack plugins

React

Package management

  • reg (GitHub)
    • Experimental package manager for native ES modules
  • Yarn deduplicate (GitHub)
    • Deduplication tool for yarn.lock files

GraphQL

React

  • jest-react-profiler (GitHub)
    • Jest helpers for working with the React Profiler API

Linting

WebExtensions

  • web-extension-starter (GitHub)
  • Chrome Extension CLI (GitHub)
  • Chrome Extension Boilerplate (GitHub)
  • Web Store Upload CLI (GitHub)

Extension testing

Other

๐Ÿ’€ Legacy or not recommended tools

Listed separately to avoid confusion.

๐Ÿ™ˆ See also

Outdated resources

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].