ShakaStack is four open-source projects from ShakaCode that take your Rails + React app from idea to proven-fast in production — build, deploy, and prove — without the frontend chaos.
You picked Rails because it’s productive and joyful. Then the frontend got complicated — and somewhere along the way your app got slow, your config got fragile, and your bills went up.
Webpacker’s deprecated, SSR is fiddly, and React 19 / RSC feel out of reach. You’re duct-taping a frontend instead of shipping features.
Slow LCP and hydration drag down SEO and conversions — and you’ve no rigorous way to measure it or prove a fix actually worked.
Heroku bills climb, build configs rot, and every upgrade is a gamble. The stack fights you instead of working for you.
You shouldn’t have to choose between the joy of Rails and a fast, modern React frontend.
ShakaCode has been a performance-obsessed consultancy since 2011 — and we felt every one of these pains first-hand. So we built, open-sourced, and still maintain the tools that fix them, from our home base in Paia, Hawai‘i. We make slow web apps fast.
Three phases, four open-source projects — because bundling is part of building. Tap a layer to see how it moves your app forward.
Render React inside Rails — SSR, hydration, and RSC.
Open source, production-tested, and maintained by the ShakaCode team. Use one, use all four.
Render React inside Rails — SSR, hydration, and RSC.
Mount React components straight from Rails views and controllers. Server-side rendering, hydration, streaming, and React Server Components — without splitting your product into a separate frontend app.
Render components from views & controllers. Keep Rails routes, conventions, and your team.
Server rendering, hydration, and streaming paths built for mature Rails deployments.
Start free. Add Pro for RSC, higher SSR throughput, and guided support when you need it.
Webpack, the Rails way. The maintained successor to Webpacker.
Use webpack to bundle JavaScript and CSS with Rails conventions intact. Shakapacker picks up where rails/webpacker left off — actively maintained, modern defaults, and a smooth upgrade path.
Asset compilation that follows Rails conventions — manifests, fingerprinting, and the asset pipeline.
Up-to-date webpack with sensible defaults so you configure less and ship more.
A clear, supported path off the deprecated rails/webpacker.
A Heroku-style workflow on Control Plane infrastructure.
cpflow brings a Heroku-like developer experience — review apps, one-off tasks, releases, and scaling — to Control Plane. Migrate off Heroku without throwing away the workflow your team already knows.
Familiar deploy, run, and scale commands plus review apps for every pull request.
Run on flexible, cost-efficient infrastructure with room to scale well past Heroku.
Keep your release flow. Move the runtime underneath it with minimal disruption.
ShakaCode’s own framework for proving performance — rigorously.
Containerize your app, run control-vs-experiment A/B tests, and let ShakaPerf prove which changes actually make pages faster — across desktop and mobile, with regressions caught automatically.
Real control-vs-experiment perf testing across screen types — not flaky one-off Lighthouse runs.
Catches performance regressions and visual changes on your main branch before users do.
Works with any web stack, with accessibility and SEO checks built in.
ShakaStack blends the developer experiences teams love — Rails' conventions and productivity with modern React 19, RSC, and TanStack. It's also the most agent-capable way to build, so whether a human or an AI agent writes the code, it lands on a foundation that keeps it fast and maintainable.
Drop React on Rails Pro and TanStack Router, Query & Table into the app you already have. Keep your routes, conventions, and team — no rewrite, no separate frontend deploy.
Begin a new Rails app and mix exactly what you want, per page: classic Rails views, React on Rails components, React 19 + RSC, and TanStack. Use as much or as little as you need.
AI agents thrive on convention. Rails' structure, explicit typed JSON contracts, and the starter's AGENTS.md guardrails give an agent a map it can't sprawl outside of — so AI-written changes stay reviewable and maintainable instead of turning into slop.
It doesn't stop at writing code: ShakaCode's AI optimization loop runs proposed changes through ShakaPerf's A/B testing and keeps only the ones that are provably faster — with experts picking the best proposals.
Teams are leaving Next.js. Lovable made TanStack Start its default for new projects this year; Inngest migrated off Next.js and cut local dev load times by roughly 83%. The reasons they give — complexity, slow local dev, fighting the network — are exactly the critique ShakaCode has made for years.
A new vendor, but the same all-JavaScript backend. TanStack Start's server functions put your data access, auth, and business logic into TypeScript on a Node server.
Rails owns data, business logic, and auth. React renders the view. TanStack Query owns the client. You leave Next.js without giving up your backend — and nobody else is evangelizing this path.
Keep them separate — embrace the client libraries, skip the framework.
Backend-agnostic client libraries. TanStack Query is the single best companion to a Rails JSON API: caching, mutations, and URL-synced state on the client.
The full-stack framework. Its server functions pull business logic into TypeScript — the one thing you don't want if you have, or want, Rails.
React on Rails Pro fully supports React 19.2 and brings the performance features Next.js is known for — streaming SSR, React Server Components, and selective hydration — to a real Rails backend, with your Rails models as the server source. Inertia and other Rails + React adapters render on the client; they can't.
| React on Rails Pro | Inertia | Next.js | |
|---|---|---|---|
| Streaming SSR | – | ||
| React Server Components | RC | – | |
| Selective hydration | – | ||
| Real Rails backend | – |
React Server Components in React on Rails Pro are demoable & maturing (RC), not yet GA — React 19.2 itself is fully supported.
Greenfield, no Rails, one language, optimizing raw velocity? TanStack Start is a fine choice — and we'll say so. ShakaStack is for teams with Rails, or who want it, and real business logic.
A deployable Rails 8 + React on Rails Pro app with TanStack Router, Query & Table, shadcn/ui, and an RSC showcase. Rails owns data, logic, and auth and exposes explicit JSON; React on Rails Pro server-renders the TanStack shell and hydrates router state; TanStack Query owns the client data lifecycle — CSRF-aware fetch, URL-synced query keys, mutations and invalidation.
Its AGENTS.md encodes the thesis as an engineering guardrail: “do not add TanStack Start, Vite, or file-based routing.”
Every example links to a running deployment and its repository. Evaluate the stack, compare approaches, or fork a starter.
More React on Rails demos at reactonrails.com/examples →
React on Rails lets us run React at scale inside Rails without the complexity of a separate frontend deployment — 97% Good LCP scores and 80% faster hydration across our platform.Justis Blasco · Popmenu
TanStack Query, Router, and Table are excellent — we use them every day. TanStack Start, the full-stack framework, is a different decision: it puts your business logic in TypeScript on a Node server. If you have Rails, that's the part you don't want to give up.
React Server Components in React on Rails Pro are demoable and maturing — running today in the starter and demos on a release-candidate build, not yet GA. You get the “server code next to your component” experience now, with Rails models as the server source; we're upfront that the spec is still stabilizing.
Greenfield, no Rails, a one-language team optimizing raw velocity, and little server-side business logic? A JavaScript meta-framework is a fine choice — and we'll tell you so. ShakaStack is for teams with Rails, or who want it, and real business logic.
No. Add TanStack Query against your Rails JSON API and stop there if you like. Router and Table are there when you want type-safe routing and URL-owned table state. You never need TanStack Start.
ShakaCode builds and maintains every project in the stack — and helps teams ship with SSR, RSC, bundling, deploys, and performance. Book a free 30-minute call.