explaingit

thi-ng/umbrella

3,771TypeScriptAudience · developerComplexity · 3/5LicenseSetup · moderate

TLDR

A monorepo of 215 independent TypeScript libraries covering functional programming, geometry, graphics, data structures, color, WebGL, parsers, and more. Pick only the packages you need, there is no shared framework tying them together.

Mindmap

mindmap
  root((thi.ng umbrella))
    What it is
      215 TypeScript libs
      Independent packages
      Not a framework
    Topic areas
      Geometry and graphics
      Functional programming
      Data structures
      DSLs and parsers
    How to use
      Install per package
      ESM modules
      185 examples included
    Audience
      TypeScript developers
      Creative coders
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Install a single thi.ng/umbrella package for a specific task, such as 2D geometry or color conversion, without bringing in an entire framework.

USE CASE 2

Build a WebGL creative coding project using the geometry and graphics packages from the umbrella collection.

USE CASE 3

Implement a custom reactive data pipeline in TypeScript using the functional programming utilities in the umbrella monorepo.

USE CASE 4

Browse the 185 included example projects to learn how to combine umbrella packages for real tasks.

Tech stack

TypeScriptJavaScriptESMWebGLWebAssembly

Getting it running

Difficulty · moderate Time to first run · 30min

Each package is installed individually via npm, the primary repo is now on Codeberg, GitHub is a read-only mirror.

Open-source under the Apache 2.0 license, use freely in personal or commercial projects.

In plain English

thi.ng/umbrella is a large, open-source monorepo containing 215 individual TypeScript libraries. Unlike a typical monorepo that houses a single product, this one is a broad collection of independent building blocks covering a wide range of programming topics. The project started in 2015 and has been maintained actively since then. Note that the project has moved its primary home to Codeberg, the GitHub copy is now a read-only mirror. The libraries span a wide set of areas: functional and reactive programming patterns, 2D and 3D geometry, data structures, color manipulation, WebGL graphics, custom language tools (DSLs and parsers), WebAssembly interop, digital signal processing, and more. Because each package is independent, you can install only the ones you need without pulling in the rest. There is no shared runtime or global configuration tying them together. The README explicitly states that this project is not a framework. It does not offer a single approach that handles everything for you. Instead, it provides about 215 small, focused libraries that you can combine however fits your project. Each package is versioned on its own, distributed as an ESM module (compatible with modern JavaScript tooling), and includes TypeScript type definitions and a changelog. API documentation for every package is generated automatically and hosted at docs.thi.ng. About 185 example projects are also included in the monorepo to show how the libraries work in practice. Because the scope is so broad, the repository does not provide a single getting-started tutorial. Instead, it points newcomers toward the examples, per-package readmes, and a tag-based browser on the thi.ng website for exploring the ecosystem. The full README is longer than what was shown.

Copy-paste prompts

Prompt 1
I want to do 2D geometry calculations in TypeScript. Which thi.ng/umbrella package should I use and how do I install and import it?
Prompt 2
Show me how to use thi.ng/color from the umbrella monorepo to convert between RGB, HSL, and hex color formats in TypeScript.
Prompt 3
How do I use the thi.ng/rstream reactive streaming library from umbrella to build a simple event pipeline that transforms and filters values?
Prompt 4
I am building a WebGL sketch. Which thi.ng/umbrella packages should I combine for geometry, shaders, and rendering?
Prompt 5
How do I browse and find the right thi.ng/umbrella package for my use case using the tag browser on the thi.ng website?
Open on GitHub → Explain another repo

← thi-ng on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.