turbopack

$npx mdskill add TerminalSkills/skills/turbopack

Optimize Next.js performance with Turbopack configuration.

  • Accelerates cold starts and Hot Module Replacement.
  • Integrates with Next.js 15+ and Rust bundling.
  • Analyzes build configurations for incremental improvements.
  • Delivers optimized bundler settings directly to developers.
SKILL.md
.github/skills/turbopackView on GitHub ↗
---
name: turbopack
description: >-
  You are an expert in Turbopack, the Rust-based successor to Webpack built
  by Vercel. You help developers configure and optimize Turbopack for Next.js
  applications, achieving 10x faster cold starts and near-instant Hot Module
  Replacement (HMR) — replacing Webpack's JavaScript-based bundling with a
  parallelized, incremental Rust engine that scales to massive codebases.
license: Apache-2.0
compatibility: ''
metadata:
  author: terminal-skills
  version: 1.0.0
  category: Developer Tools
  tags:
    - bundler
    - rust
    - next
    - fast
    - vite-alternative
    - vercel
    - hmr
---

# Turbopack — Rust-Powered Bundler for Next.js

You are an expert in Turbopack, the Rust-based successor to Webpack built by Vercel. You help developers configure and optimize Turbopack for Next.js applications, achieving 10x faster cold starts and near-instant Hot Module Replacement (HMR) — replacing Webpack's JavaScript-based bundling with a parallelized, incremental Rust engine that scales to massive codebases.

## Core Capabilities

### Next.js Configuration

```typescript
// next.config.ts — Enable Turbopack
import type { NextConfig } from "next";

const nextConfig: NextConfig = {
  // Turbopack is the default dev bundler in Next.js 15+
  // For production builds (experimental):
  experimental: {
    turbo: {
      // Custom webpack loaders (Turbopack compatible)
      rules: {
        "*.svg": {
          loaders: ["@svgr/webpack"],
          as: "*.js",
        },
        "*.md": {
          loaders: ["raw-loader"],
          as: "*.js",
        },
      },
      // Module resolution aliases
      resolveAlias: {
        "old-package": "new-package",
        canvas: false,                     // Exclude server-only module
      },
      // Custom resolve extensions
      resolveExtensions: [".tsx", ".ts", ".jsx", ".js", ".json", ".mdx"],
    },
  },
};

export default nextConfig;
```

### Development

```bash
# Next.js 15+ uses Turbopack by default for dev
next dev                                  # Turbopack enabled automatically

# Explicit flags
next dev --turbopack                      # Force Turbopack
next build --turbopack                    # Experimental: production build

# Performance comparison (typical 10K module app):
# Webpack: cold start 8.2s, HMR 1.2s
# Turbopack: cold start 1.1s, HMR 12ms
```

### Turbo Tasks (Incremental Engine)

```
# Turbopack's architecture:
# 1. Function-level caching — only recomputes changed functions
# 2. Incremental computation — HMR rebuilds only affected modules
# 3. Parallel execution — Rust threads process modules concurrently
# 4. Lazy compilation — only bundles requested routes

# Result: HMR time stays constant regardless of app size
# 1,000 modules: 12ms HMR
# 50,000 modules: 14ms HMR (nearly unchanged)
```

## Installation

```bash
# Turbopack is built into Next.js 15+
npx create-next-app@latest                # Turbopack included
npm install next@latest                   # Upgrade existing project
```

## Best Practices

1. **Default in Next.js 15+** — Turbopack is the default dev server; no configuration needed
2. **Loader compatibility** — Most webpack loaders work via `turbo.rules`; SVGR, raw-loader, GraphQL loaders supported
3. **No webpack config** — Turbopack doesn't use webpack.config.js; migrate custom loaders to `turbo.rules`
4. **Lazy compilation** — Turbopack only compiles routes you visit; unused pages don't slow down dev server
5. **Persistent caching** — Turbopack caches between restarts; second startup is nearly instant
6. **Module resolution** — Use `resolveAlias` to redirect imports; replaces webpack's `resolve.alias`
7. **CSS support** — CSS Modules, PostCSS, Tailwind CSS work out of the box; no additional config
8. **Gradual migration** — Use Turbopack for dev, Webpack for production builds; switch to Turbopack builds when stable
More from TerminalSkills/skills