back to projects
in-progress· ongoing

Lattice

Local-first task graph for build systems

TypeScriptNode.jsSQLiteS3

Why I built this

Monorepo build tools are either too rigid (Bazel) or too leaky (Turborepo). I want fine-grained caching with TypeScript-native configuration.

The problem

Caching is the unsolved problem of monorepos.

target users: Monorepo maintainers.

Core features

  • Function-level memoization
  • Remote cache via S3
  • Dependency graph visualization

Technical challenges

  • Hashing inputs without reading every file

Engineering decisions

Why SQLite for local cache

Process-local, transactional, embeddable. No daemon to manage.

Lessons learned

  • Content-addressed caching is a religion. Once you commit, you commit fully.