Tangram
Tangram is an open-source build system and package manager that uses TypeScript for programmable builds with sandboxing, lockfiles, and distributed caching.
At a Glance
About Tangram
Tangram is an open-source build system and package manager developed by tangramdotdev and written primarily in Rust. It is available on GitHub under the MIT License and can be installed via a single shell script or by downloading the latest release binary. The project targets developers who need fast, reproducible, and distributable builds across multiple machines.
What It Is
Tangram sits at the intersection of build systems (like Bazel or Nix) and package managers (like Homebrew or Nix). Its core job is to lock every dependency — compilers, interpreters, binaries, and libraries — in a lockfile, then break down build tasks into small, independently cacheable steps. This lets Tangram reuse cached work from other machines with confidence and distribute work across as many machines as possible. Builds are defined in TypeScript files (tangram.ts), giving developers autocomplete and type checking in their editor.
How It Works
Tangram's architecture combines several mechanisms to achieve reliable, fast builds:
- Sandboxing ensures builds cannot access unspecified dependencies, preventing hidden inputs.
- Content-addressed storage accessed through a virtual filesystem minimizes disk use and network transfer by eliminating duplication.
- Lockfiles cover all dependencies end-to-end, making builds reproducible across machines and time.
- Granular caching enables fast incremental builds that are shared between machines.
- Distributed execution schedules build steps across as many machines as possible.
- Cross compilation supports building for any target machine without virtualization.
- Rootless operation means no elevated permissions are required to install or use Tangram.
Dual Role: Build System and Package Manager
As a build system, Tangram can build existing projects faster and more reliably. A Rust project that depends on native libraries like OpenSSL, for example, can have all its toolchain and library dependencies locked and cached. As a package manager, Tangram builds reproducible environments that start instantly — a tangram.ts file can declare specific versions of tools like jq and ripgrep, and tg run -- sh drops the user into a shell with exactly those versions available.
Setup Path
Getting started requires only a single command:
curl -fsSL https://tangram.dev/install.sh | sh
After installation, a tangram.ts file at the project root defines the build. Running tg build produces a content-addressed output artifact, and tg run builds and executes the result. The TypeScript-based build language means standard editor tooling provides autocomplete and type checking without additional configuration.
Current Status
The repository was created in December 2023 and has been actively maintained, with the last push recorded in May 2026. The latest published release is labeled "canary," indicating the project is in an early/preview release stage. The repository has accumulated 125 stars and 7 forks on GitHub, with 8 open issues at the time of data collection. The project is MIT-licensed and free to use, modify, and distribute.
Community Discussions
Be the first to start a conversation about Tangram
Share your experience with Tangram, ask questions, or help others learn from your insights.
Pricing
Open Source
Free and open-source under the MIT License. Use, modify, and distribute freely.
- Full build system functionality
- Package manager functionality
- TypeScript build definitions
- Sandboxed builds
- Lockfiles for all dependencies
Capabilities
Key Features
- TypeScript-based build definitions with autocomplete and type checking
- Sandboxed builds to prevent unspecified dependencies
- Lockfiles covering all dependencies including compilers and libraries
- Content-addressed storage via virtual filesystem
- Granular caching shared between machines
- Distributed execution across multiple machines
- Cross compilation without virtualization
- Rootless operation without elevated permissions
- Reproducible environments as a package manager
- Incremental builds with artifact reuse
- Version constraints for precise dependency control
- Bundles that package software with all dependencies in isolation
