Cybozu Frontend Monthly #67
イベント概要
サイボウズフロントエンドマンスリー は、サイボウズ社内で行っているフロントエンド情報共有会「フロントエンドウィークリー」の公開版です。
その月に気になったフロントエンドの情報を、サイボウズのフロントエンドエンジニアのメンバーが共有していきます。
このイベントのハッシュタグは #サイボウズフロントエンドマンスリー です。
※フロントエンドウィークリーとは
毎週火曜の 17:00 〜 18:00
で社内向けに行っているフロントエンドの気になる記事を紹介する会です。
2016年3月15日から行われています。
ZennのPublicationにてウィークリーのまとめを投稿していますので、ぜひこちらもご覧ください。 https://zenn.dev/p/cybozu_frontend
開催日
2026年03月31日
イベントページ
https://cybozu.connpass.com/event/383540/
メンバー
コンテンツ
👀 Notable Articles
How we rebuilt Next.js with AI in one week
- 共有者: @mugi_uno
Cloudflare が AI を活用して、おおよそ一週間の期間で Next.js をベースに、 Cloudflare Workers にデプロイ可能かつ Vite ベースで構築された vinext を開発・公開しました。 Next.js および Turbopack が提供する Routing, SSR, API, Cache などの機構をすべて Vite 上のプラグインとして実現しているとのことです。
実現できた大きな理由のひとつとして、Next.js のリポジトリ内には広範囲をカバーする数千を超える E2E テストが用意されており、 これをそのまま移植したことで、再現した実装を機械的に検証可能であったことが挙げられていました。
一方で、OSS においては AI Slop が話題に出ることも多くありました。
たとえば、OSS のドローイングツールである tldraw では「テストコードを非公開にする」という Issue が立てられました。
https://github.com/tldraw/tldraw/issues/8082
これは後々ジョークであったことが明かされましたが、内容的には生々しいものであり、かなり真実味があるものでした。
また、Hono 作者の yusukebe さんは、AI Slop に関しての記事を Zenn に公開しており、 OSS メンテナ視点から AI Slop の問題点や辛みについて詳細に言及しています。
https://zenn.dev/yusukebe/articles/3fd5bc6ea341c9
LLM の進化によって、OSS 自体の今後について少し考えさせられる期間でした。
Vite+の発表と Vite8 のリリース
- 共有者: @nus3
3 月は Vite 関連のリリースがいくつかありました。
Vite 8.0 のリリース
https://vite.dev/blog/announcing-vite8
- 従来の esbuild、Rollup から Rolldown へ
- Vite、Rolldown、Oxc によるツールチェインの統一
- 構文解析や transform、minify まで一貫した動作の保証
- デバッグ、分析用の Vite Devtools を有効にするオプションが追加
- tsconfig paths のビルトインサポート
- @vitejs/plugin-react v6 も同時にリリース
今後は、開発中のモジュールをバンドルする Full Bundle Mode や、JS プラグインが Rust によって生成された AST にアクセス可能にする予定などがあるようです。
また、移行に関しては Vite 8 では Rolldown および Oxc で、従来の esbuild や Rollup と同等の動作を保つための変換層を作ったので、設定を変更せずにスムーズにアップデートできるとのことです。
Vitest 4.1.0で、Vite8 への対応も行われています。
Vite+の発表
https://voidzero.dev/posts/announcing-vite-plus-alpha
- Vite、Vitest、Oxlint、Oxfmt、Rolldown、tsdown が内包されるツールチェーン
- プロジェクトの構築は Vite Task と呼ばれる新しいタスクランナーによって実現
- エンタープライズ向けの有料ライセンスを検討していたが、MIT ライセンスで提供
- Voidと呼ばれる Vite で構築されたアプリケーション向けのデプロイメントプラットフォームも発表
Request for developer feedback: focusgroup
- 共有者: @sakupi01
フォーカス箇所を多く含むコンポーネントのキーボード操作は実装が複雑になりがちです。
例えば、Toolbar 内のフォーカス移動を Tab でしか行えないと、そのコンポーネントを抜け出すのに Tab を連打する必要があり、これはキーボードユーザにとってユーザビリティを低下させる要因となり得ます。
そのため、APG(ARIA Authoring Practices Guide) などを筆頭に、こうたフォーカス機能を多く含む UI パターンでは「コンポーネント内を矢印キーで移動・コンポーネント間を Tab で移動」が推奨されてきました。JS で tabindex を付け替えることでフォーカス管理する実装になるため、これはしばしば「Roving Tabindex」と呼ばれます。
こうした、一般的でありながらも JS で独自実装が必要だった UX パターンに対する標準側での解決策として誕生したのが、focusgroup です。
focusgroup により、Roving Tabindex の実装を宣言的かつロールセーフに行うことができます。
<div focusgroup="<behavior> [inline|block] [wrap] [no-memory]">
<button>One</button>
<button>Two</button>
<button>Three</button>
</div>
Behavior にトークンを指定することで、 ARIA ロールに紐づいた Toolbar, Tablist, Menu & Menubar, Listbox, Radio Group, Accordion などのフォーカスパターンを自動的に実装できるようになります。
- Resources:
Chrome では先行実装が進んでおり、フィードバックが募られています。Dev 146+, Origin Trial で利用可能です。 こうした汎用パーツと Customizable Select Element や Menu Element などのコンポーネントパーツが、相互に影響して進化が加速する Web UI の標準化に、今後も期待が高まります。
🗓 Monthly Articles
📖 Framework, Library
- react-doctor
- React コードをセキュリティ・パフォーマンス・アーキテクチャなど 60 以上のルールで診断し、スコアと実践的な改善案を出力するツール。NPX・GitHub Actions・Node.js API から利用可能
- npm v11.10.0
npm config set min-release-ageで一定期間経過したリリースのみをインストール対象にできるmin-release-age設定が追加
- Announcing Oxfmt Beta
- Prettier 比 30 倍以上、Biome 比 3 倍高速な JavaScript/TypeScript フォーマッター Oxfmt がベータ版に到達。Prettier との 100% 互換性を達成し、Tailwind CSS クラスの自動整列やインポート整理も対応
- How we rebuilt Next.js with AI in one week
- Cloudflare が AI を活用して 1 週間で Next.js の Turbopack 依存を Vite に書き換えた代替フレームワーク「vinext」を開発。プロダクションビルドで最大 4 倍高速化、バンドルサイズ 57% 削減
- styled-components v6.3.0
- React Server Components (RSC) サポートが追加。設定不要で RSC 環境を自動検出し、
'use client'ディレクティブなしで利用可能に
- React Server Components (RSC) サポートが追加。設定不要で RSC 環境を自動検出し、
- What’s New in ViteLand: February 2026 Recap
- VoidZero プロジェクト群の 2 月の振り返り。Oxfmt Beta リリースや Vite Devtools の進展、各プロジェクトのパフォーマンス最適化の状況を紹介
- useExtracted: The Tailwind of i18n?
- next-intl の新機能
useExtractedを紹介。開発者がメッセージキーを手動命名する必要のないキーレス API で、JSON/PO ファイルの多言語カタログを自動生成・更新
- next-intl の新機能
- The Next Evolution of Prisma ORM
- Prisma ORM を TypeScript でフルリライトした「Prisma Next」を発表。拡張可能なアーキテクチャ・SQL クエリビルダー・グラフベースのマイグレーションなどを備え、最終的に Prisma 8 としてリリース予定
- Introducing TanStack Intent: Ship Agent Skills with your npm Packages
- ライブラリ開発者が AI エージェント向けのスキルを npm パッケージに同梱して配布できる CLI ツール「@tanstack/intent」のアルファ版がリリース
- Astro 6.0
- Vite の Environment API を活用した再設計された開発サーバー、組み込みフォント API、ライブコンテンツコレクション、CSP サポートの安定化、実験的 Rust コンパイラなどを含む Astro 6.0 がリリース
- React Compiler の Rust 移植
- React Compiler の Rust による移植が進められることが発表。高速化が期待される
- Oxlint JS Plugins Alpha
- Oxlint の JavaScript プラグインがアルファに。既存の ESLint プラグインをほぼそのまま動かせ、React Hooks ルールのテスト通過率 100% を達成。ESLint 比 4.8 倍高速
- Vite 8.0 is out!
- 開発用 esbuild・本番用 Rollup の 2 バンドラ構成から Rust 製の Rolldown に統一。Devtools 組み込み、tsconfig paths のネイティブサポート、
@vitejs/plugin-reactv6 では Oxc 採用で Babel 依存を排除
- 開発用 esbuild・本番用 Rollup の 2 バンドラ構成から Rust 製の Rolldown に統一。Devtools 組み込み、tsconfig paths のネイティブサポート、
- pnpm + Git Worktrees for Multi-Agent Development
- pnpm v11 の Global Virtual Store を有効化(
enableGlobalVirtualStore: true)すると、Git worktree ごとのnode_modules/.pnpmをシンボリックリンクに変換し、pnpm installを大幅に高速化できる
- pnpm v11 の Global Virtual Store を有効化(
- voidzero-dev/vite-plus
- Vite・Vitest・Oxlint・Oxfmt・Rolldown などを統合した Web 向け統合ツールチェーン「Vite+」が公開。ランタイム管理からビルド・テスト・タスクキャッシュまでを
vpコマンド一つで管理
- Vite・Vitest・Oxlint・Oxfmt・Rolldown などを統合した Web 向け統合ツールチェーン「Vite+」が公開。ランタイム管理からビルド・テスト・タスクキャッシュまでを
- Vite+ の異常なタスクランナー: vite-task は如何にしてキャッシュの手動依存管理をなくしたか
- Vite+ のタスクランナー「vite-task」が LD_PRELOAD で libc の syscall をインターセプトしファイルアクセスを自動検出することで、タスクキャッシュの手動依存管理を不要にする仕組みを解説
- queryOptions の型推論を支える DataTag、その裏側の unique symbol — TanStack Query
- TanStack Query v5 の
queryOptionsがランタイムコストゼロで高度な型安全性を実現する仕組みを解説。TypeScript のunique symbolと交差型を組み合わせた Branded Types パターンによる DataTag の仕組みを深掘り
- TanStack Query v5 の
⚡️ Services
- GitHub Actions now supports uploading and downloading non-zipped artifacts
actions/upload-artifactv7 以降でarchive: falseを指定すると ZIP 圧縮なしでアーティファクトをアップロード可能に。HTML や画像をブラウザから直接閲覧できるようになる
- Announcing the Slack MCP server and Real-time Search API
- Slack の公式 MCP サーバーと Real-time Search API が発表。LLM 向けに最適化された自然言語レスポンスで Slack のコンテンツへアクセス可能に
- Announcing npmx: a fast, modern browser for the npm registry
- Nuxt コアチームメンバーによる npm パッケージブラウザ「npmx」がアルファリリース。アクセシビリティと国際化(19 言語対応)を重視し、インストールサイズや依存関係の警告なども表示
- Bringing Code Review to Claude Code
- Claude Code に複数の AI エージェントが並列で PR レビューを行う新機能が追加(リサーチプレビュー)。1 PR あたり約 $15〜$25 で、内部データでは PR の 54% に実質的なフィードバックが付くように改善
- Void
- VoidZero による Vite アプリ向けデプロイメントプラットフォーム。DB・KV・AI 推論・認証など多数の機能を内蔵し、Cloudflare のグローバルネットワーク上で動作
🖥 Browsers
- Firefox 148.0 Release Notes
- Trusted Types API・Sanitizer API・Iterator.zip()・WebGPU・CSS Anchor Positioning などのサポートが追加。AI 機能の管理セクションも設定に追加
- Release Notes for Safari Technology Preview 238
- カスタマイズ可能な
<select>要素(appearance: base-select)と Scroll Anchoring が有効化。CSS:open疑似クラスのサポートなども追加
- カスタマイズ可能な
- Get features faster with Chrome’s two-week release cycle
- Chrome 153 以降の Beta と Stable チャネルで、リリースサイクルが現在の 4 週間から 2 週間に短縮される。拡張安定版(Extended Stable)は 8 週間サイクルを維持
- デベロッパー フィードバックのリクエスト: フォーカス グループ
- ラジオボタンの矢印キーナビゲーション挙動を任意の要素に JS なしで適用できる HTML 属性
focusgroupが Chromium 系ブラウザでフラグ付きで利用可能になりフィードバックを募集
- ラジオボタンの矢印キーナビゲーション挙動を任意の要素に JS なしで適用できる HTML 属性
💬 Languages
- ログの PII 漏洩を防止する: TypeScript の型推論とランタイムの境界
- TypeScript の構造的部分型ではログの PII 漏洩を防ぎきれない問題を指摘し、クロージャで値を隠蔽する Sensitive 型と Zod・Pino redact を組み合わせた多層防御を解説
🤖 Runtimes
- Deno 2.7: Temporal API, Windows ARM, and npm overrides
- Temporal API がフラグなしで stable になった Deno 2.7 がリリース。V8 14.5 へのアップグレードを経て、Chrome と同等の Temporal サポートが利用可能に
- Evolving the Node.js Release Schedule
- v27 から Node.js のリリーススケジュールが年 2 回(偶数が LTS)から年 1 回の LTS リリースのみに変更。メンテナンス負荷の軽減が目的で、2027 年に v27、2028 年に v28 とバージョン番号が西暦下 2 桁に揃う
- Why Node.js Needs a Virtual File System
- Node.js に Virtual FS を組み込もうとしている提案の解説。memfs のような仮想ファイルシステムをコア機能として提供することでテストや sandbox 実行が容易になる
- Edge.js
- winterjs のアーカイブを受けてその後継となる edge.js が公開。Node.js 互換を目指し、JSC や QuickJS などの JS エンジンを切り替え可能。WASM sandbox による安全なコード実行もサポート
- Bun.WebView
- Bun に WebView サポート(Bun.WebView)が追加予定であることが Jarred Sumner によって発表
📝 Specifications
- CSS Snapshot 2026
- W3C が CSS の現状をまとめた CSS Snapshot 2026 を公開。段階的に内容を追加していく方針に変更され、安定度別に CSS モジュールが分類されている
- Temporal reaches Stage 4
- TC39 で Temporal API が Stage 4 に到達。JavaScript に待望のモダンな日時 API が正式に標準化される
- Temporal: The 9-Year Journey to Fix Time in JavaScript
- Bloomberg の JS チームによる Temporal の 9 年間の標準化の歩みを振り返る記事。JavaScript の Date の問題点と、複数企業の協力によって Stage 4 に至るまでの経緯を解説
- Source Maps: Shipping Features Through Standards
- Bloomberg が主導してソースマップを ECMA-426 として公式標準化した経緯を解説。10 年間非公式な共有理解に頼っていた仕様が、TC39-TG4 タスクグループの設立を経て正式化された
- Making keyboard navigation effortless with Focusgroup
- Microsoft Edge チームによる Focusgroup 属性の解説。ツールバー・タブリスト・メニューなどでの矢印キーナビゲーションを JS なしで実現できる宣言型 HTML 属性の仕様と実装を詳解
🦆 Others
- Claude Code Flaws Allow Remote Code Execution and API Key Exfiltration
- Claude Code に悪意あるリポジトリを開くだけで API キーが漏洩する脆弱性など複数の脆弱性が発見・修正済み。Check Point が報告した 3 件の脆弱性(うち 2 件は CVSS 8.7)の詳細を解説
- The React Foundation: A New Home for React Hosted by the Linux Foundation
- React・React Native・JSX などが Meta から React Foundation へ移管。Linux Foundation がホストし、Amazon・Expo・Microsoft・Vercel など 8 社がプラチナ創設メンバーとして参加
- antfu/ghfs
- GitHub の issue と PR をローカルファイルシステムとして取得・閲覧でき、
execute.ymlを書いてghfs executeすると一括でラベル付けやタイトル変更などの操作を行える CLI ツール
- GitHub の issue と PR をローカルファイルシステムとして取得・閲覧でき、
- Design Systems Report 2026
- zeroheight による年次デザインシステムレポート。61% のチームが人員不足と回答し、アドプション促進が 5 年連続で最大の課題に。AI はドキュメント生成・プロセス自動化に期待が高い
- BaseWatch — Track CSS & Browser Feature Support, Get Baseline Alerts
- CSS やブラウザ機能のサポート状況を追跡し、Baseline のサポート率が 90% に達した際にメール通知を受け取れるサービス