Hey everyone! ![]()
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 
-
Piece builds are much faster. Turbo handles the build pipeline more efficiently. The engine build alone went from ~11s to ~0.4s. -
Each piece now builds locally. Output goes to your-piece/dist/instead of a shareddist/out-tscfolder. Cleaner and easier to debug. -
No more project.json. Pieces now use standardpackage.jsonscripts for building and linting. Less config, less confusion. -
Workspace dependencies are explicit. Instead of Nx figuring out your dependencies behind the scenes, you now use workspace:*in yourpackage.json. What you see is what you get.
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:
- Updates your
package.jsonwith the right build scripts and entry points - Fixes
tsconfig.lib.jsonto output to the localdist/folder - Removes the old Nx
project.jsonfile
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! ![]()