Skip to main content

JavaScript Bundling for Rails

Shakapacker

Official docs for installing, configuring, deploying, and upgrading Shakapacker in Rails applications, with first-class Rspack support.

Quick Start

Install Files

bin/rails shakapacker:install

Open guide

Rspack logo

Shakapacker + Rspack

2-4x Faster Builds, Same Rails Workflow

Shakapacker ships with first-class Rspack support — a Rust-powered bundler that’s wire-compatible with Webpack 5 but dramatically faster. Switch bundlers with a one-line config change; no migration rewrite needed.

Drop-in Webpack replacement

Rspack is wire-compatible with Webpack 5. Existing loaders, plugins, and config files work without rewriting your build pipeline.

2-4x faster builds

Written in Rust, Rspack delivers dramatically faster cold starts, warm-cache rebuilds, and incremental production builds compared to Webpack.

Rails-native integration

Unlike Vite, Rspack works with Shakapacker out of the box — no ejecting from the Rails asset pipeline, no custom server configuration.

Academia.eduCase Study

2-4x build speed increase. Warm-cache startup went from ~1m to ~20s, and incremental prod builds now take ~10s.

2-4xfaster builds
~20swarm-cache startup
~10sincremental deploys

Jon Rajavuori — ShakaCode helped Academia.edu migrate from Webpack to Rspack

How Shakapacker Compares

Sprockets and Propshaft are Rails’ asset-digesting layer — they fingerprint assets but don’t bundle JavaScript. importmap-rails, jsbundling-rails, Vite Ruby, and Shakapacker are how modern JS actually reaches the browser.

OptionBuild stepnpm + loadersJSX / TSHMRCode splittingRails manifest + helpersBest for
Sprocketsnone (concatenate)✓ (legacy)Legacy apps, CSS / images
Propshaftnone (digest only)Modern digesting; pair with a bundler
importmap-railsnone✓ (Propshaft)No-build Hotwire
jsbundling-railsesbuild / rollup / bunminimallimited✓ (Propshaft)Simple modern JS
Vite RubyViteVite ecosystemown pipelineTeams wanting Vite DX
Shakapacker + Rspackwebpack or Rspackfull ecosystem✓ SWC / Babel / esbuild✓ nativeComplex / React / TS at scale

Full comparison guide & benchmarks →

Why Teams Use It

Installation, configuration, and deployment guidance is sourced directly from the shakapacker/docs tree.

Docs from sourceAlways aligned with current releases

Keep webpack-style configuration and Rails conventions while switching the build engine to Rspack for major speed gains.

Rails-first migrationNo rewrite required

Docs Architecture

Canonical markdown stays in shakapacker/docs. This site syncs that content at build time, so docs stay co-located with the code while deployment remains independent.

Expert Help

Get direct guidance from the team behind Shakapacker

Planning a Webpack-to-Rspack migration or troubleshooting production builds? Book a complimentary 30-minute assessment with ShakaCode.