






Weave it all together
A high-performance, local toolchain for managing monorepos. Build every language in your repo with one command, and skip the work that hasn't changed.
Spend less time waiting on builds
Point Lattice at a monorepo and it takes care of the busywork, so you can get back to writing code.
Builds finish sooner
Repeat a build and the parts that didn't change come straight from cache. You wait for new work, not for work you already did.
One command for the whole repo
Build, test, and run every project in your monorepo the same way, whatever language it's written in. No per-language scripts to remember.
No build scripts to write
List your projects once, and Lattice reads each one's own manifest to work out how it builds. No per-language build scripts to write or keep in sync.
The right tool versions, every time
Lattice pins the compilers and tools each project needs, so a fresh clone builds the same on your laptop and in CI.
Skip work you already did
Your projects and how they build live in one file. Run it, and Lattice rebuilds only what changed since last time.
{
"workspaces": [
{ "name": "api", "path": "apps/api", "engines": { "go": ">=1.22" } },
{ "name": "web", "path": "apps/web", "engines": { "node": ">=20" } },
{ "name": "ml", "path": "services/ml", "engines": { "python": ">=3.12" } }
],
"tasks": {
"build": { "dependsOn": ["^build"], "outputs": ["dist/**"] },
"test": { "dependsOn": ["build"] }
}
}$ lattice run build
api build built
web build restored from cache
ml build built
3 projects, 1 restored from cache
Install and run
Run this in your repo, then ./.lattice/bin/lattice init and a task.