Awesome TypeScript
A collection of awesome TypeScript resources for client-side and
server-side development. Write your awesome JavaScript in TypeScript.
Inspired by the awesome lists.
More awesome resources
semlinker/awesome-typescript
thank you @semlinker for curating the list!
Contributing
Please take a quick look at the contribution guidelines first. If you see a
package or project here that is no longer maintained or is not a good
fit, please submit a pull request to improve this file.
Contents
Getting Started with
(Awesome) TypeScript
Awesome TypeScript
Essential Resources
Typescript Project Starters
- typescript-starter
– A CLI to quickly generate and configure new libraries and Node.js
projects
- next-smrt – A
Typescript/NextJs boilerplate with Redux/Styled Components/Material UI
and TypeSafe Actions.
- :octocat: Next-Postgres-With-Typescript
- Forum-like fullstack web app boilerplate with Next.js 7.0.2 +
Sequelize 4/Postgres + Typescript + Redux + Passport Local Auth +
Emotion
- MicroTS
Microservice code generator with interface-first approach: from OpenAPI
(Swagger) REST API specification is generated complete project with
TypeScript code, input validator, UI, tests and Docker
configuration.
- pankod/next-boilerplate
A well-structured production ready Next.js boilerplate with Typescript,
Redux, Jest, Enzyme, Express.js, Sass, Css, EnvConfig, Reverse Proxy,
Bundle Analyzer and Built-in CLI
- jsynowiec/node-typescript-boilerplate
Up-to-date, developer ready and comprehensive, yet minimalistic
template. Works out of the box for most Node.js projects. All basic
tools included and configured. Targets latest Node.js LTS and TypeScript
releases.
- typescript-express-starter
- Quick and Easy TypeScript Express Starter.
- The Knests
Stack - Full stack boilerplate (hackathon starter) with: PostgreSQL,
Knex.js, NestJS, Next.js, GraphQL, React (with hooks and typescript),
Material-UI, Docker multistage images for, Docker compose and a Gitlab
CI/CD pipeline fully configured.
- tRPC +
Next.js - Full-stack starter projects for end-to-end type safe
development with React
- nd.ts - setup bare
minimum Node.ts project asap
- :octocat: samchon/backend -
TypeScript backend template project using the NestJS (nestia) and TypeORM (safe-typeorm). It
helps newbie backend developers through the derived example projects.
Also, it even supports the non-distruptive update system in the process
level through the pm2.
- :ok_man: ts-express-boilerplate
- ExpressJS / Typescript template good to start backend projects, with a
focus on simplicity and minimal features :P It has logging and testing
configured out of the box. Typeorm is used for data access.
- create-typescript-app
- provides a starting point for TypeScript web applications. pnpm,
Rollup, Jest, and CSS Modules with SCSS.
- ts-vite-npm-template
- An all-in-one solution for crafting TypeScript-based NPM packages with
Vite, complete with built-in GitHub Pages live-demo deployment,
automated test-and-build workflows, and Vite-powered unit test
configuration, including coverage analysis and a README.md template for
your package.
Books
Reference Lists
Blogs
CLI and REPL
- Taze A modern cli tool
that keeps your dependencies fresh
- Use ts-node to
run scripts or REPL
- How to make executable typescript scripts:
- Make sure you have
npx (shipped with
npm >= 5.2) and typescript package is
installed
- Add this shebang as first
line to your script:
#!npx ts-node
- Make script executable:
chmod +x script.ts
- Run directly:
./script.ts :)
IDE
Offline
Visual Studio
Online
Playground
Build Systems
- Grunt tasks:
- grunt-ts -
Grunt-ts is an npm package that handles TypeScript compilation work in
GruntJS build scripts
- Zwitterion -
Super simple development server with built-in support for TypeScript
files.
- Nx - Smart, Fast and
Extensible Build System
Cloud Data Warehousing
- :sparkles: Crisp
BigQuery Starter project that delivers Google BigQuery data to end
user browsers with cost control. Allows to implement rich data
presentation options.
- DDB-Table
Strongly typed querys and tables for AWS DynamoDB
- DynamoDB-Toolbox
Light-weight and type-safe query builder for AWS DynamoDB
Module Bundlers
CMS
- Factor - The Javascript CMS
(TypeScript supported natively)
- Graphweaver
- Turn multiple data sources into a single GraphQL Headless CMS.
- sqlx-ts - SQLx-ts
is a CLI application featuring compile-time checked queries without a
DSL and generates types against SQLs to keep your code type-safe
- bun - Bun is a fast JavaScript
runtime, package manager, bundler, test runner
- deno - A secure runtime for
JavaScript and TypeScript
- OXC - A suite of
high-performance tools for JavaScript and TypeScript written in
Rust
- biome - Biome formats
and lints your code in a fraction of a second
- SweetIQ/schemats
Generate typescript interface definitions from SQL database schema
- TypeDoc - A documentation
generator for TypeScript projects
- TypeScript
Standard - Zero-configuration TypeScript 2 Standard Validation
- typed-install
- Easily install new dependencies and their typings, no matter where
they may be
- type-config
- A generator for tsconfig.
- Zapatos -
Zero-Abstraction Postgres for TypeScript
- dep-tree -
Render your project’s file dependency tree and/or validate it against
your own rules.
- itertools-ts -
Extended itertools port for TypeScript and JavaScript. Provides a huge
set of functions for working with iterable collections (including async
ones).
- ParaglideJS
- An i18n compiler that generates fully typesafe translations
- pg - Browser
PostgreSQL Playground, no server, just client and pglite (postgresql
wasm)
- nocodb - 🔥 🔥 🔥
Open Source Airtable Alternative
- jqlite - ⚡ The
query language for JSON
Types
- jsonup - Compile-time
JSON parser
- type-o-rama - JS
type systems interoperability
- utility-types -
Utility Types for TypeScript (provide compatibility with Flow’s Utility
Types)
- elm-ts - Port of Elm
architecture to TypeScript featuring fp-ts, io-ts, rxjs5 and React
- ts-essentials -
All essential TypeScript types in one place
- typescript-conditional-types
- Helpers for typescript generic types
- ts-types-utils -
Type utilities for typescript
- typesync -
Install missing TypeScript typings for dependencies in your
package.json.
- type-fest -
A collection of essential TypeScript types
- typetype - A
programming language designed for typescript type generation
- nominal -
nominal types & dependent types for Typescript.
- @tool-belt/type-predicates
- Type Predicates, Assertion Functions and Utilities.
- getmytypes -
Install @types files
into your devDependencies.
- ts-toolbelt -
Large collection of type utilities for TypeScript
- string-ts
- Strongly-typed string functions for all
- lib-result
- A lightweight, Rust-inspired
Result type for type-safe
error handling in TypeScript and JavaScript.
- iso-locale -
A comprehensive TypeScript library providing ISO standards for handling
countries, languages, dialects, and currencies.
CSS In JS With Types
- PandaCSS - CSS-in-JS with build
time generated styles, RSC compatible, multi-variant support, and
best-in-class developer experience
- Vanilla-Extract - Use
TypeScript as your preprocessor. Write type‑safe, locally scoped
classes, variables and themes, then generate static CSS files at build
time
- StyleX - StyleX is a JavaScript
library for defining styles for optimized user interfaces
Runtime
- json-decoder -
Typesafe JSON decoder and runtime checker
- typescript-is -
TypeScript transformer that generates run-time type-checks.
- type-plus -
Additional types and type adjusted utilities
- Agent
Framework Create interceptor for your class and method using
decorators
- SunTori - A
JSON de/serializer to ensure everything is safe at runtime.
- config - Runtime
configuration resolver
Validation
- @core/match - Type-safe destructuring
assignment with pattern-match validation
- io-ts - Runtime type
system for IO decoding/encoding
- zod - TypeScript-first
schema validation with static type inference
- valibot -
Valibot is a Typescript schema library with static type inference, and
it’s exceptionally lightweight compared to Zod, with no
dependencies.
- runtypes - Runtime
validation for static types
- ts-codec -
TypeScript Codecs for encoding, decoding and validating data
- ow - Function
argument validation for humans
- superstruct - A
simple and composable way to validate data
- computed-types -
🦩 Joi like validations for TypeScript
- json-schema-to-ts
- Dynamic type inference from JSON schemas
- Yunomix
- A form validation toolkit which is designed in AOP form.
- typia - 20,000x times
faster runtime validator using pure TypeScript type. Only one line
required like
typia.assert<T>(input). Also, supports
200x faster JSON serialization, and Protocol Buffer features. 🚀 (see
also https://typia.io/docs)
- fta - Rust-based static
analysis to monitor code quality
- dto-classes -
Developer-friendly parsing, validation & serialization. Static types
by default. Uses properties for field schemas, not decorators.
- iso-locale -
A comprehensive TypeScript library providing ISO standards for handling
countries, languages, dialects, and currencies. ## Built with TypeScript
### Mobile
- :octocat: ReactNative -
Create native apps for Android, iOS, and more using React
- :octocat: NativeScript -
Open Source framework for building cross-platform truly native iOS,
Android and Windows mobile apps using JavaScript
- Monaco
Editor
Web
- :octocat: Angular -
Angular is a development platform for building mobile and desktop web
applications
- :octocat: It-Tools - Collection
of handy online tools for developers, with great UX
- :octocat: feednext.io - An
open-source social media application built with Typescript on both
client-server side.
- :octocat: ionic -
An open-source mobile app development framework build in TypeScript
- :octocat: React-UWP - React
Components that Implement Microsoft’s UWP Design & Fluent
Design.
- :octocat: palantir/plottable - A
library of modular chart components, built on
D3 (see also:
http://plottablejs.org)
- :octocat: APIs-guru/graphql-voyager
- Represent any GraphQL API as an interactive graph 🛰️
- :octocat: Rebilly/ReDoc -
OpenAPI/Swagger-generated API Reference Documentation
- :octocat: excaliburjs/Excalibur
- Free open source JavaScript game engine
- :octocat: Bobril -
Component oriented framework inspired by Mithril and ReactJs. (see also:
http://bobril.com/)
- :octocat: Stencil - a tool for
building modern Web Components
- :octocat: Langfuse - Open source
LLM engineering platform 🪢 - Tracing, Prompt Mgmt, Evaluations,
Analytics
- :octocat: redux-zero -
A lightweight state container based on Redux
- :octocat: wretch - A
tiny (< 2.2Kb g-zipped) wrapper built around fetch with an intuitive
syntax.
- :octocat: Cycle.js
- A functional and reactive JavaScript framework for predictable
code.
- :octocat: Tridactyl - A Firefox
browser addon that replaces browser’s control mechanism with one
modelled on the one true editor, Vim.
- :octocat: armour/vue-typescript-admin-template
- A vue-cli 3.0 & typescript minimal admin template + a
production-ready front-end solution for admin interfaces (demo)
- :octocat: n8n.io - Open
Source Workflow Automation Tool
- :octocat: Dnote - A
command line notebook with a multi-device sync and a web interface.
- :octocat: Thin Backend
- Realtime Backend for your Single Page Apps, with End-to-End Type
Safety thanks to types being derived from the Postgres Schema
- :octocat: Flowbite - Open-source
component library built on top of Tailwind CSS featuring interactive UI
components built with TypeScript
- :octocat: ILLA Cloud - Open
source low-code platform alternative to Retool and Appsmith for
developers to build internal tools in minutes.
- :octocat: Treehouse - Open
source lightweight library to build your own note-taking tool.
- :octocat: GOUI -
Open source User Interface library with lots of components for building
web applications
Web/ReactJS
Back-end API
- :octocat: Actio -
The Node.js framework for monoliths and microservices.
- :octocat: design-first
- A REST Api templating engine for Typescript
- :octocat: Fastify -
Fast and low overhead web framework, for Node.js
- :octocat: Hono - Hono is a small,
simple, and ultrafast web framework for the Edges. It works on any
JavaScript runtime
- :octocat: Nest - A
progressive Node.js framework for building efficient, scalable, and
enterprise-grade server-side applications on top of TypeScript 🚀 (see
also: https://nestjs.com/)
- :octocat: nestia -
20,000x faster validation and 200x faster JSON serialization decorators
using
typia. Enable to utilize pure TypeScript interface
type as DTO, and overall server performance improved by about 30x times.
Also, it supports SDK (collection of fetch functions with
type definitions) and Mockup Simulator (backend server simulator
embedded in SDK) generation, and even possible to migrate NestJS project
only by swagger.json file. 🚀 (see also:
https://nestia.io/docs)
- :octocat: LoopBack 4 - A
highly extensible Node.js and TypeScript framework for building APIs and
microservices. :rocket: (see also: https://loopback.io/)
- :octocat: FoalTS - A
simple, intuitive and complete framework for building enterprise-grade
Node.JS applications :boom: :rocket: (see also: https://foalts.org)
- :octocat: Enso - Typescript
first Node.JS framework inspired by Domain Driven Design principles with
a focus on composition and Developer Experience
- :octocat: Libstack - A collection
of various modules to create Typescript server easily and ready to be
deployed on Docker.
- :octocat: tinyhttp - A modern
Express-like web framework for Node.js, written in TypeScript and
compiled to Native ESM.
- :octocat: ZenTS - A
modern Node.js and TypeScript first framework for building rich web
applications
- :octocat: Booster
Framework - Event-driven cloud native GraphQL open-source framework,
part of the Booster Cloud ecosystem. It makes use of high-level
abstractions and conventions. (see also: https://booster.cloud)
AI
- :octocat: MastraAI
- Mastra is an opinionated TypeScript framework that helps you build AI
applications and features quickly.
- :octocat: VoltAgent - A
TypeScript framework for building and running AI agents with tools,
memory, and visibility.
- :octocat: Maxim AI
- JS/TS SDK for enabling Maxim observability. Maxim is an enterprise
grade evaluation and observability platform. (see also:
https://getmaxim.ai)
Standalone apps
- :octocat: Visual
Studio Code - Multiplatform IDE.
- :octocat: alm - A
next generation IDE just for TypeScript written in TypeScript +
React
- :octocat: App
Outlet - An universal linux app store for AppImages/Flatpaks/Snaps
written in TypeScript + Angular
- :octocat: SnowFS -
a fast, scalable version control file storage for graphic files
- :octocat: MemFree
- Open Source Hybrid AI Search Engine, Instantly Get Accurate Answers
from the Internet, Bookmarks, Notes, and Docs. Support One-Click
Deployment.
- :octocat: Nostream
- A Nostr Relay written in TypeScript
- :octocat: Peekaping - Uptime
monitoring solution - Monitor websites, APIs, and services with
real-time notifications, beautiful status pages, and comprehensive
analytics
Chrome Extensions
Design patterns
Decorators
- :octocat: Performance
Decorators - A collection of TypeScript decorators for performance
optimization, including execution time logging, memory usage monitoring,
and more.
Libraries
- :octocat: SuperJSON - Safely
serialize JavaScript expressions to a superset of JSON, which includes
Dates, BigInts, and more
- :octocat: Procedurem - A Small
(2kb) And Performant Bi-Directional RPC Library Using WebSockets.
- :octocat: RxJS - A
reactive programming library for JavaScript.
- :octocat: xstream -
An extremely intuitive, small, and fast functional reactive stream
library for JavaScript.
- :octocat: mockt -
Joyful mocking library for Typescript and Javascript
- :octocat: substitute.js
- A fluent mocking library for TypeScript ported from NSubstitute.
- :octocat: TypeMoq -
A simple mocking library for TypeScript.
- :octocat: fast-check - Property
based testing framework for TypeScript.
- :octocat: InversifyJS -
powerful and lightweight inversion of control container for JavaScript
& Node.js apps powered by TypeScript.
- :octocat: TypeORM -
ORM for TypeScript and JavaScript (ES7, ES6, ES5). Supports MySQL,
PostgreSQL, MariaDB, SQLite, MS SQL Server, Oracle, WebSQL databases.
Works in NodeJS, Browser, Ionic, Cordova and Electron platforms.
- :octocat: Safe-TypeORM -
Enhances
TypeORM in the compilation level and supports
automated performance tuning tools through the application level
joining. Furthermore, your raw SQL queries would be ensured safety by
type meta programming.
- :octocat: MikroORM - TypeScript
ORM for Node.js based on Data Mapper, Unit of Work and Identity Map
patterns. Supports MongoDB, PostgreSQL, MySQL and SQLite.
- :octocat: DrizzleORM -
Lightweight TypeScript ORM, SQL-like library for flexible data access,
serverless-ready, with zero dependencies.
- :octocat: Prisma -
Modern database access (ORM alternative) for Node.js & TypeScript |
PostgreSQL, MySQL & SQLite
- :octocat: prisma-markdown:
Generates markdown document composed with ERD diagrams and their
descriptions.
- :octocat: Neuledge - Neuledge is
a universal language for databases that provides state-of-the-art tools
for data modeling, business logic representation, and schema
validation.
- :octocat: Typetta
- Typescript ORM for Node.js that uses GraphQL as schema definition
language | Supports all main SQL databases and MongoDB.
- :octocat: TypeGQL
- Set of tools for creating GraphQL schema directly from typed
TypeScript class.
- :octocat: TSTL -
Implementation of C++ STL (Standard Template Library) in TypeScript.
Provided modules are containers, iterators, algorithms and functors.
- :octocat: ECol -
Extension of TSTL containers; collections dispatching Elements I/O
events.
- :octocat: TGrid -
Grid Computing Framework, Network & Thread extension of TSTL,
supporting RFC (Remote Function Call).
- :octocat: Mutex-Server -
Critical sections controller, like mutex and semaphore, in the network
level.
- :octocat: Kalimdor.js - Machine
Learning library for the Web, Node and Developers!
- :octocat: prelude.ts -
Functional programming: immutable persistent collections, constructs
such as Option and Either, and combinators.
- :octocat: ee-ts -
Typed event emitters
- :octocat: io-ts - Type
validation at runtime
- :octocat: mokia - A
mock server integrated data simulation and http service.
- :octocat: sub-events -
Strongly-typed events.
- :octocat: ts-audio - an agnostic
and easy-to-use library to work with the
AudioContext
API
- :octocat: tslog - A powerful
logging library with native TypeScript support: beautiful interpolation,
native V8 stack trace, secret masking, support for requestIds based on
AsyncLocalStorage
- :octocat: tsParticles - A
lightweight library for easily creating particles animations for
websites (Supports also ReactJS, VueJS, Angular, Svelte and others)
- :octocat: statek -
Reactive state management library
- :octocat: Injex - Simple,
Decorated, Pluggable dependency-injection framework for TypeScript
applications
- :octocat: tRPC - TypeScript
toolkit for building end-to-end type-safe APIs
- :octocat: interface-forge
- Test data factories using TypeScript types and interfaces
- :octocat: iter-ops - Operations
with iterable objects
- :octocat: Remult -
End-to-end type-safe CRUD and frontend-backend model code sharing in
fullstack TypeScript applications.
- :octocat: Jest - A
comprehensive JavaScript testing solution. Works out of the box for most
JavaScript projects.
- :octocat: diod - A
very opinionated and lightweight inversion of control container and
dependency injector for Node.js or browser apps.
- :octocat: @deliberative/crypto - A
Typescript/WebAssembly library for public key cryptography, AEAD secret
boxes, Shamir secret sharing and random shuffling. Runs on Nodejs, ESM,
CommonJS and the browser.
- :octocat: castore - Typescript
library to easily implement Event Sourcing in your application
- :octocat: sweet-monads -
Typescript library for popular monads (such as
Maybe or
Either) and performant iterators.
- :octocat: simple-mask-money
- 💰 Simple mask money is a light, safe and typed package to format
money!
- :octocat: Color-Core -
color-core is a powerful, type-safe color manipulation
library for TypeScript and JavaScript applications. It provides a
comprehensive toolkit for working with colors across multiple color
spaces, making it an indispensable tool for developers working on
projects that require advanced color handling.
- :octocat: PigmentTS - A
lightweight utility for color manipulation and conversion.
- :octocat: file-graph - Library for
storing graphs in files and making queries to them.
- :octocat: @diy0r/nestjs-rabbitmq -
Library for building NestJS microservices with RabbitMQ.
- :octocat: Onion.JS - Design
and apply wrappers (i.e. high-order functions) without breaking types!
Based on HotScript
high-order types.
- :octocat: text-smart-trimmer
- A lightweight TypeScript utility for trimming text while choosing to
preserve word boundaries, punctuation, and custom suffixes.
LLM
- duckduckgo-ai-chat
- Providing Duckduckgo AI Chat API, which can use gpt-4o-mini for
free.
Video Courses
:free: Free Courses
:dollar: Paid Courses
Tutorials
Roadmap
Badges
Social
- @typescriptlang - Official
Typescript Twitter
- @angularjs - Official Angularjs
Twitter using Typescript Since 2.0
- @jntrnr - Typescript Program Manager at
Microsoft
- @ahejlsberg - Technical Fellow at
Microsoft involved with the Typescript project
Acknowledgements
(added: 2023) A new section to say thank you for the
contributions.
- 2023 - ⚒ Thank you Hamza ( @Hamza12700 https://github.com/Hamza12700
) for more
than 15 merged pull requests. Great contribution to keeping this
list up-to-date with modern TypeScript projects. Contributor of
the year 2023.
typescript.md
Github