⚡ Piece Building Just Got Way Faster — and Simpler

Hey everyone! :waving_hand:

We replaced Nx with Turbo as the build system for pieces. The old setup was slow and had a lot of moving parts. The new one is faster, simpler, and easier to work with.


What Changed :rocket:

  • :high_voltage: Piece builds are much faster. Turbo handles the build pipeline more efficiently. The engine build alone went from ~11s to ~0.4s.

  • :package: Each piece now builds locally. Output goes to your-piece/dist/ instead of a shared dist/out-tsc folder. Cleaner and easier to debug.

  • :broom: No more project.json. Pieces now use standard package.json scripts for building and linting. Less config, less confusion.

  • :link: Workspace dependencies are explicit. Instead of Nx figuring out your dependencies behind the scenes, you now use workspace:* in your package.json. What you see is what you get.


:warning: Custom Piece Developers: Migration Required

If you have custom pieces, you need to migrate them to work with Turbo. Don’t worry, we made it easy.

Migrate all your custom pieces at once:

npx ts-node tools/scripts/migrate-custom-piece-to-turbo.ts

Or migrate a specific piece:

npx ts-node tools/scripts/migrate-custom-piece-to-turbo.ts packages/pieces/custom/my-piece

Then verify it builds:

npx turbo run build --filter=@activepieces/piece-your-piece --force

What the migration does

The script takes care of everything for you:

  1. Updates your package.json with the right build scripts and entry points
  2. Fixes tsconfig.lib.json to output to the local dist/ folder
  3. Removes the old Nx project.json file

Full step-by-step guide: Migrate from Nx to Turbo


This is part of our ongoing work to make piece development faster and more enjoyable. If you run into any issues with the migration, let us know, we’re here to help! :raising_hands: