swyx is home 🇸🇬 Profile picture
anti-ego ideas for anti-ergodic life - @smol_ai - @aidotengineer - @latentspacepod - @coding_career

Dec 27, 2021, 11 tweets

In 1976, Stuart Feldman made Make, the build system that secretly runs ~all open source.

In 2021, @jaredpalmer spent the year working on a new tool that is up to 85% faster. @Vercel snapped it up last month.

Why @TurboRepo will blow up in 2022:

dev.to/swyx/why-turbo…

The origin story starts with this looongstanding open issue on TSDX from @n_moore. As an early helper on TSDX I shied away from it bc I thought that it should be solved by dedicated tooling like @yarnpkg.

Jared went one step further and *built it*.

Big monorepo shops like Facebook and Google have loads of tooling to make monorepos work, but this class of tooling never made it out into open source.

@TurboRepo does 3 things:
- Make monorepos zero config
- Make monorepos incrementally adoptable
- Make monorepos scale

What @TurboRepo does:

- Read your build pipeline from `turbo` config in package.json
- Generate dependency graph
- Fingerprints inputs
- Executes each task in turn
- Caches output/logs

On subsequent runs, if a task matches a fingerprint, it restores from cache and replays logs.

The API surface area of @TurboRepo is shockingly small:

1️⃣`npx create-turbo@latest myrepo` scaffolds a new monorepo
2️⃣`turbo run build` runs the `build` task
3️⃣configure pipeline in package.json `turbo` key

Thats it! Turbo parallelizes tasks based on DAG turborepo.org/docs/reference…

Remote Caching: Dropbox for your dist dir

The showstopper, still in beta, but the reason why @Vercel's acquisition makes total business sense (apart from gaining the imprimatur of having @jaredpalmer on staff).

Available for *FREE*.

How is @TurboRepo so fast?

- Efficient scheduler + rebuilder system ensures you never recompute work that has been done before
- Parallelize as much as possible
- 74% written in Go (see: "Systems core, Scripting shell" in Third Age thesis)

Why @TurboRepo will be a big deal in 2022:

- "Zero config" - lots of value out of the box
- Declarative build pipeline
- Great debugging/profiling
- Great docs/marketing
- Devs have been hearing nonstop about the benefits of monorepos but always held back by tooling

For more on TurboRepo, including notes on future roadmap, check out my blogpost:

dev.to/swyx/why-turbo…

Note that I am not affiliated with the project, am just excited about it and am sharing what I #LearnInPublic. All inaccuracies are my fault.

If you have time, watch @jaredpalmer and @leeerob go through the @turborepo demo:



As a former monorepo skeptic, IMO this is the time to really dig into them as they are set to explode in 2022.

Added a section to give some spotlight to @NxDevTools as well, as @jeffbcross has been patiently answering questions in the replies. They have a comparison page up on their docs: nx.dev/l/r/guides/tur…

Others have also created perf benchmarks:

Share this Scrolly Tale with your friends.

A Scrolly Tale is a new way to read Twitter threads with a more visually immersive experience.
Discover more beautiful Scrolly Tales like this.

Keep scrolling