概要
Shopify傘下のRemixチームは、フレームワークの次期メジャーバージョン「Remix 3」のベータプレビューを公開した。最大の特徴は、これまで基盤としてきたReactへの依存を廃止したことだ。代わりにFetch APIのRequest/ResponseやURL送信といったWeb標準プリミティブを土台に据え、ルーティングと描画に特化していた従来の役割から、ルート定義、リクエストハンドラー、ミドルウェア、セッション管理、認証、フォーム処理、ファイルアップロード、アセット管理、データベース連携、UIコンポーネント、テストまでを一体で提供する「完全なフルスタックフレームワーク」へと性格を変えた。
技術的な詳細
フロントエンド実装ではJSX記法自体は維持しつつ、React本体のランタイムを取り除き、代わりにフォーク版のPreactと命令型のプログラミングモデルを採用した。状態は単純な変数として扱われ、変更を反映する際はthis.update()を明示的に呼び出す仕組みになっている。イベント処理はユニバーサルなonプロップに統一され、非同期処理のキャンセルにはAbortControllerを用いる。
もう一つの特徴が「フレーム」と呼ぶサーバー描画のUIフラグメントで、src属性経由で独立して読み込み・再読み込みが可能な設計になっており、HTMXに近いサーバー駆動型のアプローチと評されている。また、バンドラーではなくランタイム自体を「真実の源」とする方針を掲げ、import文に特別な意味を持たせない「アンバンドリング」の思想を採用している点も、Next.jsやSolidStart、SvelteKitといった既存フレームワークとの違いとして注目されている。
Remix 2からの移行と反応
Remix 3はReact依存を完全に廃止するため、既存のRemix 2アプリケーションとの後方互換性は確保されていない。Remixチームは既存アプリについてはReact Router v7への移行を推奨しており、Remix 3への移行は事実上「新規スタート」を意味するフルリライトが必要になる。公開されているマイグレーション用プルリクエストでも、全面的な書き換えの様子が確認できるという。
コミュニティの反応は賛否に分かれている。開発者のAlex Kotliarskyi氏は今回の刷新を「グラグブレイン版のNext.jsが進むべき姿」と評し、関数型から命令型への揺り戻しとして肯定的に捉えた。国内のZennレビューでも、単一パッケージでWeb標準に近く、慣例よりも明示性を重視するデザインがAI支援コーディングと相性が良いとの指摘がある。一方でr/reactjsのスレッドでは「もはや完全に別物になった」との批判も上がり、Hacker Newsでは同フレームワークの「破壊的変更の多さ」への警戒感も根強い。
今後の展開
Remixはもともと、現在のReact Routerを生み出したチームによって開発されたオープンソースプロジェクトで、Shopify傘下で開発が続けられている。Remix 3はv3.0.0-beta.5から毎週リリースを重ねる計画で、フレームワークによる抽象化よりもWeb標準そのものを優先する、既存のフルスタックフレームワークの中でも最も大胆な賭けだと評されている。今後のベータ版でAPIがどこまで安定するか、そしてReactエコシステムから離れた開発者体験がどう受け止められるかが焦点になりそうだ。