# Migrate from Nx to Turbo

Sydekyks user and operator guide. Check feature availability and release-specific installation requirements.

The Sydekyks monorepo has fully migrated to Turbo. This guide is kept for historical reference and for users with older forks that still use the Nx-based build system.

If you have an existing fork with custom pieces built using the old Nx-based build system, you need to migrate them to the new Turbo-based build system. This guide explains what changed and provides a migration script.

## ​What Changed

The Sydekyks monorepo replaced Nx (https://nx.dev) with Turbo (https://turbo.build) as its build orchestrator. For pieces, this means:

 |  | Old (Nx) | New (Turbo)

 | Build config | project.json per piece | package.json scripts

 | Build command | nx build pieces-{name} | turbo run build --filter=@activepieces/piece-{name}

 | Output directory | dist/out-tsc (shared) | ./dist (local per piece)

 | Task runner | Nx executor (@nx/js:tsc) | Direct tsc -p tsconfig.lib.json && cp package.json dist/

 | Dependencies | Inferred by Nx graph | Workspace protocol (workspace:*) in package.json

### ​Files affected per piece

- project.json: Deleted (no longer needed)

- package.json: Added build and lint scripts, added main and types fields, added workspace dependencies

- tsconfig.lib.json: Updated outDir, added rootDir, baseUrl, paths

## ​Automatic Migration

Run the migration script to update all custom pieces at once:

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

```

This scans packages/pieces/custom/ and applies all necessary changes.

### ​Migrate a specific piece

You can also pass a path to migrate a single piece:

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

```

### ​What the script does

For each piece, the script:

- Updates package.json: adds build and lint scripts, sets main and types entry points, ensures @activepieces/pieces-framework, @activepieces/shared, and tslib are listed as dependencies

- Updates tsconfig.lib.json: sets outDir to ./dist, adds rootDir, baseUrl, paths, and declaration settings

- Creates tsconfig.json if missing, extending the root tsconfig.base.json

- Deletes project.json, removing the Nx configuration

## ​Verify the Migration

After migrating, build your piece to verify everything works:

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

```

Or use the CLI:

```
npm run build-piece your-piece

```

The build output should appear in packages/pieces/custom/your-piece/dist/.
