Web Development

Turbopack: Rust-based Bundler

Tutorial lengkap Turbopack β€” arsitektur Rust-based, incremental computation, migrasi dari Webpack, benchmark performa, dan integrasi dengan Next.js

1. Pengenalan Turbopack

Turbopack adalah bundler generasi baru yang dibangun dengan Rust oleh tim yang sama yang mengembangkan Webpack β€” Tobias Koppers, bekerja sama dengan Vercel. Turbopack dirancang untuk menggantikan Webpack dengan performa yang jauh lebih cepat berkat arsitektur incremental computation yang revolusioner.

Turbopack pertama kali diumumkan pada Oktober 2022 bersamaan dengan Next.js 13, dan saat ini sudah tersedia sebagai bundler default untuk development di Next.js 15+.

Mengapa Turbopack Dibutuhkan?

MasalahWebpackTurbopack
BahasaJavaScript (single-threaded)Rust (multi-threaded, zero-cost abstractions)
Incremental BuildTerbatas (caching)Fine-grained incremental computation
Cold StartLambat (parsing JS)Sangat cepat (native binary)
HMR~1-5 detik (proyek besar)<100ms bahkan di proyek sangat besar
Bundle SizeWebpack runtime cukup besarMinimal runtime overhead
EkosistemSangat matang (2000+ plugins)Berkembang, Webpack-compatible
Diagram: Evolusi JavaScript Bundlers
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚          EVOLUSI JAVASCRIPT BUNDLERS                     β”‚
β”‚                                                         β”‚
β”‚  2012     2015      2017      2020      2023            β”‚
β”‚   β”‚        β”‚         β”‚         β”‚         β”‚              β”‚
β”‚   β–Ό        β–Ό         β–Ό         β–Ό         β–Ό              β”‚
β”‚  Browserify Webpack  Rollup   esbuild  Turbopack       β”‚
β”‚  (Node.js)  v1      (ES mod) (Go)     (Rust)           β”‚
β”‚                                                         β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”         β”‚
β”‚  β”‚      β”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚ β”‚β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ”‚         β”‚
β”‚  β”‚  JS  β”‚ β”‚  JS  β”‚ β”‚  JS  β”‚ β”‚  Go  β”‚ β”‚ Rust β”‚         β”‚
β”‚  β”‚      β”‚ β”‚      β”‚ β”‚      β”‚ β”‚      β”‚ β”‚      β”‚         β”‚
β”‚  β”‚ Slow β”‚ β”‚ Med  β”‚ β”‚ Fast β”‚ β”‚ V.Fastβ”‚ β”‚Fastestβ”‚        β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”˜         β”‚
β”‚                                                         β”‚
β”‚  Speed:    1x      2-5x     10-20x   100x+  700x+     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

2. Arsitektur Turbopack

Turbopack menggunakan arsitektur Turbo Engine β€” sebuah system incremental computation yang melacak setiap fungsi dan nilai secara granular. Saat file berubah, Turbo Engine hanya menghitung ulang bagian yang terpengaruh, bukan seluruh dependency graph.

Incremental Computation

Penjelasan
// CONTOH: Bagaimana incremental computation bekerja

// Misal proyek Anda punya 10.000 file
// Anda mengubah 1 file: src/components/Button.tsx

// Webpack (lama):
// 1. Parse ulang 10.000 file
// 2. Rebuild dependency graph
// 3. Re-compile semua module
// 4. Generate new bundle
// β†’ Waktu: 5-30 detik

// Turbopack (incremental):
// 1. Deteksi Button.tsx berubah
// 2. Hitung ulang HANYA Button.tsx
// 3. Hitung ulang HANYA file yang import Button
// 4. Generate patch untuk browser
// β†’ Waktu: <100ms

// Turbo Engine melacak dependency pada level FUNCTION
// bukan level FILE seperti Webpack

Task Graph

Diagram: Turbo Engine Task Graph
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚            TURBO ENGINE TASK GRAPH                β”‚
β”‚                                                  β”‚
β”‚  File: Button.tsx berubah                        β”‚
β”‚                    β”‚                             β”‚
β”‚           β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”                   β”‚
β”‚           β”‚  Parse Button    β”‚ ← Task 1          β”‚
β”‚           β”‚  .tsx            β”‚                   β”‚
β”‚           β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                   β”‚
β”‚                    β”‚                             β”‚
β”‚         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                  β”‚
β”‚         β–Ό          β–Ό          β–Ό                  β”‚
β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”          β”‚
β”‚   β”‚Transform β”‚ β”‚Resolve β”‚ β”‚Generate  β”‚          β”‚
β”‚   β”‚ JSX      β”‚ β”‚ importsβ”‚ β”‚ CSS      β”‚          β”‚
β”‚   β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”¬β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜          β”‚
β”‚        β”‚            β”‚          β”‚                 β”‚
β”‚        β–Ό            β–Ό          β–Ό                 β”‚
β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”            β”‚
β”‚   β”‚     Merge & Emit HMR Patch      β”‚            β”‚
β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜            β”‚
β”‚                                                  β”‚
β”‚  Yang TIDAK dihitung ulang:                      β”‚
β”‚  βœ— File lain yang tidak meng-import Button       β”‚
β”‚  βœ— File yang Button tidak import                 β”‚
β”‚  βœ— CSS yang tidak berubah                        β”‚
β”‚  βœ— Asset yang tidak berubah                      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Multi-Threading dengan Rust

Penjelasan Arsitektur
// Turbopack memanfaatkan Rust untuk:
// 1. Multi-threading paralel β€” memproses banyak file sekaligus
// 2. Zero-cost abstractions β€” tidak ada GC overhead
// 3. Memory safety tanpa garbage collector
// 4. Native compilation β€” binary yang sangat cepat

// Arsitektur Thread Pool:
//
// β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
// β”‚          Main Thread (Orchestrator)       β”‚
// β”‚  β€’ Koordinasi task                        β”‚
// β”‚  β€’ File watching                          β”‚
// β”‚  β€’ HMR communication                     β”‚
// β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
//            β”‚           β”‚
//    β”Œβ”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β” β”Œβ”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
//    β”‚ Worker 1  β”‚ β”‚ Worker 2  β”‚ β”‚ Worker N β”‚
//    β”‚ β€’ Parse   β”‚ β”‚ β€’ Parse   β”‚ β”‚ β€’ Parse  β”‚
//    β”‚ β€’ Transformβ”‚ β”‚ β€’ Transformβ”‚ β”‚ β€’ Trans. β”‚
//    β”‚ β€’ Resolve β”‚ β”‚ β€’ Resolve β”‚ β”‚ β€’ Resolveβ”‚
//    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
//
// Setiap worker memproses file secara independen
// Hasil digabungkan oleh main thread

3. Performa dan Benchmark

Turbopack menunjukkan peningkatan performa yang dramatis dibanding Webpack, terutama pada proyek besar.

Benchmark: Cold Start (Dev Server)

Ukuran ProyekWebpack 5ViteTurbopack
Small (100 modules)1.5s0.4s0.3s
Medium (1.000 modules)8s1.2s0.5s
Large (10.000 modules)35s4.5s1.1s
XL (30.000 modules)120s12s2.8s

Benchmark: HMR (Hot Module Replacement)

PerubahanWebpack 5ViteTurbopack
Komponen kecil1-3s50-150ms10-30ms
File dengan banyak imports5-15s200-500ms20-80ms
CSS change2-5s30-100ms10-40ms
Global util change10-30s500ms-2s50-200ms
πŸ’‘ Tips

Performa Turbopack semakin terasa pada proyek besar. Untuk proyek kecil (<100 files), perbedaan dengan Vite mungkin tidak terlalu signifikan. Turbopack benar-benar unggul di proyek enterprise dengan ribuan file.

4. Integrasi dengan Next.js

Turbopack saat ini terintegrasi langsung ke Next.js dan bisa diaktifkan sebagai bundler development.

Mengaktifkan Turbopack di Next.js

Bash
# Next.js 15+ β€” Turbopack sudah tersedia
# Aktifkan dengan flag --turbopack (atau -T)

# Development dengan Turbopack
npx next dev --turbopack

# Atau shorthand
npx next dev -T

# Cek apakah Turbopack aktif
# Output akan menunjukkan "Turbopack" di terminal:
#   β–² Next.js 15.x
#   - Local:        http://localhost:3000
#   - Environments: .env.local
#   - Turbopack:    enabled βœ“

Konfigurasi Turbopack di next.config.js

next.config.js
// next.config.js
/** @type {import('next').NextConfig} */
const nextConfig = {
  // Konfigurasi Turbopack
  turbopack: {
    // Resolve aliases β€” mirip webpack.resolve.alias
    resolveAlias: {
      '@components': './src/components',
      '@utils': './src/utils',
      '@hooks': './src/hooks',
      '@styles': './src/styles'
    },

    // Resolve extensions
    resolveExtensions: [
      '.tsx', '.ts', '.jsx', '.js',
      '.json', '.mjs', '.css'
    ]
  },

  // Konfigurasi umum Next.js
  experimental: {
    // Turbopack-specific features
    turbo: {
      // Loader configuration (untuk file non-standard)
      loaders: {
        '.md': ['@mdx-js/loader'],
        '.svg': ['@svgr/webpack'],
        '.glsl': ['raw-loader']
      }
    }
  }
};

module.exports = nextConfig;

5. Konfigurasi Turbopack

Environment Variables

Penjelasan
// Turbopack mendukung .env files secara otomatis
// Urutan prioritas:
// 1. .env.development.local  (saat next dev)
// 2. .env.local              (tidak di-commit ke git)
// 3. .env.development        (saat next dev)
// 4. .env                    (default)

// Mengakses env di Turbopack:
// process.env.VARIABLE_NAME  β†’ server-side
// process.env.NEXT_PUBLIC_*  β†’ client-side (exposed)

// .env.local
// NEXT_PUBLIC_API_URL=https://api.example.com
// DATABASE_URL=postgresql://...
// SECRET_KEY=rahasia123

CSS Configuration

next.config.js β€” CSS
// next.config.js β€” CSS di Turbopack
const nextConfig = {
  turbopack: {
    rules: {
      // PostCSS sudah terintegrasi otomatis
      // Cukup buat postcss.config.js

      // SCSS/SASS support
      '*.scss': {
        loaders: ['sass-loader'],
        as: '*.css'
      }
    }
  },

  // CSS Modules β€” otomatis aktif untuk .module.css
  // Tidak perlu konfigurasi tambahan

  // PostCSS config β€” diterapkan otomatis
  // Buat postcss.config.js di root proyek
};

Image Optimization

Penggunaan Image di Turbopack
// Import gambar langsung di Turbopack
import heroImage from './hero.jpg';
import logoSvg from './logo.svg';

// Menggunakan Next.js Image component
import Image from 'next/image';

export default function Hero() {
  return (
    <div>
      <Image
        src={heroImage}
        alt="Hero banner"
        width={1200}
        height={600}
        priority
      />

      <Image
        src={logoSvg}
        alt="Logo"
        width={200}
        height={50}
      />
    </div>
  );
}

// Supported formats:
// .jpg, .jpeg, .png, .gif, .svg, .webp, .avif, .ico
// .mp4, .webm (video)
// .woff, .woff2, .ttf, .otf (fonts)

6. Migrasi dari Webpack

Migrasi dari Webpack ke Turbopack di Next.js cukup mudah karena Turbopack mendukung sebagian besar konfigurasi Webpack secara kompatibel.

Langkah Migrasi

Langkah-langkah Migrasi
LANGKAH 1: Update Next.js ke versi terbaru
  $ npm install next@latest react@latest react-dom@latest

LANGKAH 2: Cek kompatibilitas webpack config Anda
  - Buka next.config.js
  - Identifikasi custom webpack config (jika ada)
  - Cek apakah Turbopack sudah support fitur yang sama

LANGKAH 3: Jalankan dengan Turbopack
  $ npx next dev --turbopack

LANGKAH 4: Periksa error dan warning
  - Terminal akan menunjukkan fitur yang belum didukung
  - Perbaiki satu per satu

LANGKAH 5: Migrasi webpack.config.js ke turbopack config
  - resolveAlias β†’ turbopack.resolveAlias
  - module.rules β†’ turbopack.rules (atau loaders)
  - plugins β†’ biasanya tidak diperlukan di Turbopack

LANGKAH 6: Test semua halaman dan fitur
  - Pastikan semua route berfungsi
  - Cek CSS dan styling
  - Cek image loading
  - Cek environment variables

Kompatibilitas Webpack Features

Fitur WebpackStatus TurbopackAlternatif
resolve.aliasβœ… Didukungturbopack.resolveAlias
module.rules (loaders)βœ… Sebagianturbopack.loaders
DefinePluginβœ… Otomatisenv variables
CSS Modulesβœ… DidukungSama persis
PostCSSβœ… Didukungpostcss.config.js
SCSS/SASSβœ… DidukungInstall sass
Custom Webpack Plugins❌ Tidak langsungPerlu alternatif
webpack-bundle-analyzer❌ BelumTurbopack built-in tracing
⚠️ Peringatan Migrasi

Jika proyek Anda sangat bergantung pada custom Webpack plugins, migrasi ke Turbopack mungkin memerlukan penyesuaian signifikan. Turbopack belum mendukung semua Webpack plugin API. Cek kompatibilitas sebelum migrasi!

7. Loaders dan Aliases

Loader Configuration

next.config.js β€” Loaders
// next.config.js β€” Turbopack loaders
module.exports = {
  experimental: {
    turbo: {
      loaders: {
        // SVG sebagai React component
        '*.svg': ['@svgr/webpack'],

        // Markdown dengan MDX
        '*.md': ['@mdx-js/loader'],

        // GLSL shaders
        '*.glsl': ['raw-loader'],

        // YAML files
        '*.yaml': ['yaml-loader'],

        // Custom loader untuk file tertentu
        '*.graphql': {
          loaders: ['graphql-tag/loader'],
          as: '*.js'
        }
      }
    }
  }
};

Path Aliases

tsconfig.json + next.config.js
// tsconfig.json β€” TypeScript path aliases
{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "@/*": ["./src/*"],
      "@components/*": ["./src/components/*"],
      "@utils/*": ["./src/utils/*"],
      "@hooks/*": ["./src/hooks/*"],
      "@styles/*": ["./src/styles/*"],
      "@types/*": ["./src/types/*"]
    }
  }
}

// next.config.js β€” Turbopack aliases (opsional)
// Turbopack bisa membaca langsung dari tsconfig.json
module.exports = {
  turbopack: {
    resolveAlias: {
      // Tambahkan alias yang tidak ada di tsconfig
      '@lib': './src/lib',
      '@config': './config'
    }
  }
};

// Penggunaan di kode:
import Button from '@components/Button';
import { formatRupiah } from '@utils/format';
import useAuth from '@hooks/useAuth';

8. CSS dan Asset Handling

CSS Modules

components/Button.module.css
/* components/Button.module.css */
/* CSS Modules β€” class names di-scope secara otomatis */
.button {
  padding: 0.75rem 1.5rem;
  border-radius: 8px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
}

.primary {
  background: #3b82f6;
  color: white;
  border: none;
}

.primary:hover {
  background: #2563eb;
  transform: translateY(-1px);
}

.secondary {
  background: transparent;
  color: #3b82f6;
  border: 2px solid #3b82f6;
}

.secondary:hover {
  background: #3b82f6;
  color: white;
}

/* Output: class names menjadi unik */
/* .Button_button__x7d2k { ... } */
/* .Button_primary__a3f9m { ... } */
components/Button.tsx
// components/Button.tsx
import styles from './Button.module.css';

interface ButtonProps {
  variant?: 'primary' | 'secondary';
  children: React.ReactNode;
  onClick?: () => void;
}

export default function Button({
  variant = 'primary',
  children,
  onClick
}: ButtonProps) {
  return (
    <button
      className={`${styles.button} ${styles[variant]}`}
      onClick={onClick}
    >
      {children}
    </button>
  );
}

// Penggunaan:
// <Button variant="primary">Simpan</Button>
// <Button variant="secondary">Batal</Button>

9. Komparasi dengan Bundler Lain

Turbopack vs Webpack vs Vite vs esbuild

AspekTurbopackWebpackViteesbuild
BahasaRustJavaScriptJS + esbuildGo
Dev Speed⚑ Tercepat🐌 LambatπŸš€ CepatπŸš€ Cepat
HMR⚑ <100ms1-10s50-200msN/A (no HMR)
Prod Build🟑 Berkembangβœ… Matureβœ… (Rollup)⚑ Tercepat
Code Splittingβœ… Automaticβœ… Manual/Optimalβœ… (Rollup)🟑 Basic
CSS Supportβœ… Fullβœ… Fullβœ… Full🟑 Basic
Ekosistem🟑 Growingβœ… Massiveβœ… Large🟑 Growing
FrameworkNext.jsSemuaSemuaSemua
Best ForNext.js appsLegacy/LargeModern SPALibraries

Kapan Harus Menggunakan Turbopack?

Decision Guide
βœ… GUNAKAN Turbopack jika:
   - Anda menggunakan Next.js 15+
   - Proyek sangat besar (10.000+ files)
   - HMR lambat dengan bundler saat ini
   - Development speed adalah prioritas utama
   - Proyek baru yang belum punya custom build config

❌ JANGAN GUNAKAN Turbopack jika:
   - Menggunakan framework selain Next.js (misal: Nuxt, SvelteKit)
   - Membutuhkan plugin Webpack yang kompleks
   - Membutuhkan production build optimization (belum matang)
   - Proyek sangat bergantung pada custom webpack config
   - Stabilitas lebih penting daripada speed (gunakan Webpack/Vite)

10. Masa Depan Turbopack

Turbopack masih dalam pengembangan aktif. Berikut roadmap yang diumumkan oleh tim Vercel:

Roadmap Turbopack

Roadmap
2024 (SELESAI):
βœ… Turbopack Dev β€” stable di Next.js 15
βœ… CSS Modules, PostCSS, Tailwind support
βœ… HMR yang sangat cepat
βœ… Server Components support

2025-2026 (DALAM PENGEMBANGAN):
πŸ”„ Turbopack Build β€” production bundling
πŸ”„ Improved caching (persistent disk cache)
πŸ”„ Module Federation support
πŸ”„ Broader framework support (beyond Next.js)

FUTURE (PLANNED):
πŸ“‹ Turbopack as standalone tool
πŸ“‹ Custom plugin API
πŸ“‹ Better bundle analysis tools
πŸ“‹ Parallel compilation improvements
πŸ“‹ Support untuk library bundling

GOAL AKHIR:
β†’ Turbopack menjadi bundler default untuk semua proyek
β†’ Menggantikan Webpack di ekosistem JavaScript
β†’ Menggabungkan kecepatan esbuild + fitur Webpack
πŸ’‘ Tips

Saat ini Turbopack paling optimal digunakan untuk development di Next.js. Untuk production build, Next.js masih menggunakan Webpack/Rollup secara default. Namun seiring Turbopack Build stabil, ini akan berubah.

11. Quiz Pemahaman

1. Bahasa apa yang digunakan untuk membangun Turbopack?

2. Apa konsep kunci yang membuat Turbopack sangat cepat?

3. Bagaimana cara mengaktifkan Turbopack di Next.js?

4. Siapa yang mengembangkan Turbopack?

5. Apa status Turbopack untuk production build saat ini?

πŸ“ Ringkasan

Dalam tutorial ini, Anda telah mempelajari:

  • Pengenalan Turbopack dan motivasi pembuatannya
  • Arsitektur incremental computation dengan Turbo Engine
  • Performa dan benchmark dibanding Webpack dan Vite
  • Integrasi dengan Next.js dan cara mengaktifkannya
  • Konfigurasi loaders, aliases, dan environment variables
  • Migrasi dari Webpack ke Turbopack
  • CSS Modules dan asset handling
  • Komparasi dengan bundler lain
  • Roadmap dan masa depan Turbopack