Remix

Remix Newsletter #46

TODO: Replace this lead image with the final Remix Newsletter #46 header.

A glowing blue race car speeding down a dark track beneath a starry sky

Remix 3 is now a release candidate, the Remix Jam schedule is up, and React Router received a bunch of quality-of-life updates.

Let's hit it 🏎️

Remix 3 Release Candidate

Remix 3 has reached the release candidate stage, and RC.2 is already available. After more than 350 commits since the beta preview, we're done adding features for the initial stable release. Now we're focused on fixing bugs, completing security audits, gathering feedback, and improving the docs before Remix 3 launches at Remix Jam on October 2.

Remix 3 is much more than a React metaframework. It's a full-stack JavaScript framework in one remix package, with database workflows, schema validation, type-safe routing, an unbundled asset server, SPA support, full-stack HMR, and a new UI runtime with components, styles, animations, and composable event handling.

That single-package story does not mean you're locked into every choice. Remix is designed so you can swap in tools such as Zod or Drizzle, or even use a different rendering layer, while keeping the rest of the stack.

The current release is remix@3.0.0-rc.2. It includes more polish for asset fingerprinting, import maps, method handling, frame navigation, and scroll restoration. If you're upgrading from an earlier prerelease, review the changelog β†— because every update has some breaking changes (we gotta get them all in before remix@3.0.0).

To get started with Remix, run npx remix@next new my-remix-app.

Read the Remix 3 Release Candidate announcement β†—

Remix Jam 2026 Lineup

Remix Jam 2026 logo floating over white clouds in a blue sky

Remix Jam returns to the Shopify Toronto office on October 2. Join the Remix team and expert builders from across the industry for a day of talks on Remix 3, from unbundling and agent-assisted development to frames, SPAs, testing, and lessons from building real-world applications.

  • Remix 3: Michael Jackson
  • Remix Unbundled: Mark Dalgleish
  • How Do Agents Experience Remix?: Brooks Lybrand
  • Beyond the Server: Frames, SPAs, and Testing in Remix: Matt Brophy
  • The Remix Way: Sergio XalambrΓ­
  • What Should the Browser Actually Own?: Josh Sanger

Remix Jam will also be livestreamed on the Remix YouTube channel.

Explore the full Remix Jam schedule & get your ticket β†—

React Router v8.3.1-v8.4.0

React Router v8.3.1-v8.4.0 comes with a ton of quality-of-life improvements and two big performance wins. Together, these releases make navigations and streaming more resilient, route components more efficient, and large route trees faster to match.

Performance Improvements

Fewer route component re-renders: React Router split its internal data router contexts into smaller pieces, so components only re-render when the router state they actually use changes. For example, a component that only calls useLocation will no longer re-render just because navigation.state changes to loading.

If you rely on exported UNSAFE_ router contexts, review the release notes carefully. The context changes include breaking updates to those internal APIs.

Unstable Features

Faster route matching in Data Mode: Data Mode gets a new unstable route matcher powered by the @remix-run/route-pattern package β†—. In synthetic Chromium benchmarks, it reduced navigation and fetcher completion times by roughly 19-38% with 100 routes and 71-88% with 1,000 routes, excluding network latency and React rendering.

You can try it with the future.unstable_routePatternMatching flag. The new unstable_validateParams route field also lets you reject invalid parameter values and continue matching later routes.

Code example enabling unstable route pattern matching and validating drink and food route parameters with regular expressions

Bug Fixes & Improvements

  • Action request origins and client navigation URLs receive stricter validation
  • Fetcher revalidation and lazy route discovery recover correctly after aborts, manifest version mismatches, and splat route discovery
  • Route matching is faster for long paths
  • <ScrollRestoration> behaves correctly after a back-forward cache restore, while initial hydration and router.revalidate() avoid unintended document.startViewTransition calls
  • useSubmit and fetcher.submit respect the relative option when resolving action paths
  • Client disconnects during streaming no longer crash the Node process, and long-running streams no longer retain memory unnecessarily
  • Lazy route and turbo-stream failures preserve their underlying errors
  • Split route modules report the correct stack trace locations when source maps are enabled
  • Streamed RSC redirect locations are correctly escaped in meta tag attributes
  • react-router dev and vite preview respect X-Forwarded-Proto for action submissions behind an HTTPS reverse proxy
  • @react-router/serve can serve /.well-known/* files such as ACME challenges and app association files while keeping other dotfiles hidden
  • react-router reveal --no-typescript no longer requires Prettier at runtime, and the flag is deprecated ahead of React Router v9

Check out the React Router v8.3.1-v8.4.0 changelog β†—

Lazy Loading HTML in Remix

Lazy Frames demo showing Frames loading as they approach the viewport

Remix Frames are really cool.

We're firing up the ol' Remix YouTube and kicking it off with a short demonstration of some neat things you can do with Remix's <Frame>.

In this video, we walk through how to extend <Frame> to lazy load parts of a document, helping you ship less HTML up front and load sections as the user scrolls. We also show how the simplicity and flexibility of the approach let you pause off-screen CSS animations, tune Cache-Control headers with stale-while-revalidate, and opt out of lazy loading when you want Frames to participate in a single SSR pass.

Watch Lazy Loading HTML in Remix β†—

Connect at a Remix Meetup

Remix Meetups are run voluntarily by members of the community all around the globe with in-person and online options. These meetups feature local speakers, hackathons, workshops, and more!

Find a meetup near you β†—

World map marked with Remix meetup locations across North America, South America, Europe, Africa, and Japan

No meetups near you? Reply to this email if you are interested in starting your own meetup. We've even created some guides to help you get started.

Starting a New Remix Meetup β†—

If you enjoy getting this email, please let us know! We'd love to hear what you like about Remix and these updates, along with any suggestions you have to improve them.

- The Remix Team

Get updates on the latest Remix news

Be the first to learn about new Remix features, community events, and tutorials.