OpenReplay ブログ
WebアプリにキーボードショートカットをÂ追加する方法
Webアプリにキーボードショートカットを追加する方法。documentのkeydown、入力中の除外、MacとWindowsの修飾キー、2キーの連続入力、Reactでのクリーンアップを解説します。
Web アセット圧縮における Gzip vs Brotli vs Zstd
WebアセットのBrotli、gzip、zstdの使い分けを整理。圧縮レベルがサイズに与える影響と、静的ファイルの事前圧縮も解説。
Cloudflare Durable Objects 初心者ガイド
Cloudflare Durable Objectsの仕組みを解説。ルーティング、単一インスタンスの状態、SQLiteストレージ、Workers向けTypeScriptのレート制限例まで紹介。
AIの時代のテスト:AIを使ってテストを書く
AI生成テストはカバレッジを上げてもバグを見逃すことがあります。要件ベースのプロンプト、ミューテーション検査、モック確認で防ぎます。
開発者のためのオープンウェイトモデル入門
Open-weightモデルの要点: 重みとライセンスの内容、最先端モデルの配信が難しい理由、API・提供元・ローカル実行の選び方。
新しいテキストエディタ Wordgard を概観する
WordgardはMarijn Haverbekeによる新しいリッチテキストエディタライブラリで、単一変更のトランザクション、corrections、facets、独自選択を備えます。
Project Wallace によるスタイルシートの監査
Project WallaceのCSS監査は、色、フォントサイズ、詳細度、重複、ファイルサイズを具体的な修正に変えます。
うまくいかないときの npm コマンド
npm ls、npm explain、overrides、npm ciで予期しない依存関係を追跡し、誤ったバージョンを修正してlockfileのずれを防ぎます。
PostgreSQLでベクトル検索を実装する方法
pgvectorでPostgresにベクトル検索を実装。埋め込みを保存し、コサイン距離で検索し、HNSWやIVFFlatで索引化し、全文検索と組み合わせます。
Omarchy Linux に財団と数百万ドル規模の拠出表明
Omarchy Linuxの資金調達を解説。Omacom Foundation、1850万ドルの支援、Hyprlandのスポンサー契約、Quickshell採用、寄付者の変更まで。
犯人は誰だ? git blame で真犯人を突き止める
git blameの使い方を解説。出力の読み方、-L・-w・-M・-Cでの絞り込み、大量変更の回避、行の本当の変更元の追跡を紹介。
JavaScript で Object.groupBy を使って配列をグループ化する
JavaScriptのObject.groupByで配列をキー別に分類し、reduceやMap.groupByと比較しながら、文字列化とnullプロトタイプ結果を解説します。
Meteor.js は2026年でもまだ通用するのか?
2026年のMeteor.js:今も重要な理由、3.0〜3.5の変更点、リアルタイムアプリや2.x移行で使うべき場面を解説。
Grok Bot を知る: エージェント問題に対する xAI の回答
xAIのベータ版AIエージェントGrok Botは、1アカウントで1台のクラウドマシンを共有します。プラン、権限、認証とリスクを解説。
shadcn/ui が Radix から Base UI に切り替えた
shadcn/uiは新規プロジェクトをRadixからBase UIへ変更。何が変わったか、移行不要な場合、移行コストの実態を解説します。
WordPressのホワイトスクリーン・オブ・デス(真っ白な画面)を修復する
WordPressの白画面をdebug.logで特定し、メモリ確認、プラグインとテーマのフォルダ名変更、DBでの無効化まで解説します。
サーバーサイドでの画像アップロード処理
Nodeの画像アップロード安全対策: メモリ上でファイル署名を検証し、サイズ制限を設定し、sharpで再エンコードして安全に配信します。
アニメーションGIFをMP4動画に置き換える方法
アニメGIFをMP4またはWebM動画に置き換える方法を解説。autoplay muted loop playsinlineの書き方、ffmpeg変換、LCP対策も紹介。
OpenCode vs Claude Code: どちらを使うべきか
OpenCode vs Claude Code: 価格、モデル対応、拡張性、そして自分のコーディング作業に合うツールを比較できます。
Node サーバーをグレースフルにシャットダウンする
SIGTERM対応のNodeグレースフルシャットダウン: readinessを切り替え、server.closeでリクエストを終了し、順番にリソースを閉じて502を防ぐ。
git history で古いコミットを修正する
Git 2.55のgit historyは、fixup、reword、splitで古いコミットを書き換え、積み重なったブランチを更新し、dry-runで安全に確認できます。
OpenTUI は Ink の本当の代替になるか?
OpenTUIとInkを比較し、ターミナルUIの性能、実行環境の制約、内蔵コンポーネント、移行コストを解説します。
Web Locks API でトークンリフレッシュの競合を解消する
Web Locks APIとnavigator.locks.request、トークン再確認で、タブ間のトークン更新競合を防ぎます。
OPFS を使ってブラウザで SQLite を動かす
OPFSでブラウザ内SQLiteを使う手順: Worker設定、opfsかopfs-sahpoolの選択、静かなメモリ退避を防ぐ方法を解説。