Remix 3.1.0 Enhances Performance With Faster SSR and Streamed Uploads
The latest Remix release introduces significant server-side rendering speed improvements, reduced memory usage, and new experimental streaming capabilities for multipart file uploads.
Remix 3.1.0 shipped on October 23. You get faster server rendering and streaming for large file uploads without changing app code.
Server rendering with remix/component runs about twice as fast. Benchmarks on Node.js 24.18 using an Apple M5 Pro showed rendering a 48-product listing page with renderToString() dropped from 513 µs to 244 µs. Sustained HTTP load on a 24-product store page dropped resident memory from 793 MiB to 527 MiB because responses use a single join. Client entry caching in getScriptEntry() from remix/assets drops warm lookups from 210 µs to 3 µs.
remix/file-storage/s3 streams files via multipart uploads inside storage.set(), supported by a new partSize option. Three experimental entrypoints—remix/multipart-parser/future, remix/form-data-parser/future, and remix/middleware/form-data/future—stream multipart parts and uploads. For a 100 MiB file, parsing took 37 ms instead of 68 ms, the upload handler called after 0.2 ms instead of 45 ms, and peak memory grew by 29 MiB instead of 396 MiB. Small forms perform the same.
Streamed uploads have limits. You can read each upload only once, and the handler must read it. upload.size is unavailable until read, and upload.slice() is unsupported. Unread uploads read into a regular File.
Client additions include frame.reload({ src, method, encType, body }). Prefetching uses data-rmx-prefetch="intent", data-rmx-prefetch="viewport", or prefetch(), respecting Save-Data, slow-2g, and 2g. Navigation allows resetFocus: 'manual' in navigate() and link(), or data-rmx-reset-focus="manual". Scroll and focus controls accept "after-transition" and "manual".
Mixins support createMixin(setup, { ssr: false }). remix/* entrypoints preserve default exports. Packages component, file-storage-s3, form-data-middleware, form-data-parser, and multipart-parser bumped to 1.1.0.
