ブログ

技術やプロダクト開発に関する知見を発信しています

Engineering

RenovateでCloudflare Workers SDKのパッケージをグルーピングする

Cloudflare Workers SDKはモノレポで管理されていますが、Renovateのデフォルト設定ではパッケージごとに個別のPRが作られます。wrangler、@cloudflare/vite-plugin、miniflare、@cloudflare/workers-typesを1つのPRにまとめるpackageRulesの設定と、その背景を紹介します。

Engineering

Astroで動的OGP画像を生成する — SatoriとResvg WASMによるビルド時レンダリング

Astroプロジェクトで動的OGP画像を自動生成する方法を解説します。Cloudflare Workers環境の制約から@vercel/ogではなくSatoriと@resvg/resvg-wasmの組み合わせを選び、ビルド時に1200x630pxのPNG画像を静的生成する設計を紹介します。

Engineering

AstroでMermaidを使う — ビルド時変換をやめてクライアントサイドにした理由

AstroプロジェクトでMermaidダイアグラムを表示する方法を解説します。rehype-mermaidによるビルド時変換ではなくクライアントサイドレンダリングを選んだ理由、動的インポートでライブラリをページ単位で読み込む設計を紹介します。

Engineering

100件超の用語を正規表現でマッチングしていたら遅くなったのでAho-Corasickに変えた

Astroのremarkプラグインで実装した用語自動リンク機能を、正規表現ベースからAho-Corasickアルゴリズムに変更した経緯を解説します。なぜ形態素解析を使わなかったのか、日本語と英語の混在テキストでの単語境界の扱いについても紹介します。

Engineering

ビルドのたびにOGPを取りに行くリンクカード、CIからDoSになりかけた話

Astroのremarkプラグインでリンクカードを自作しました。ビルド時にOGPメタデータを毎回fetchする設計にしたところ、GitHub ActionsからのビルドがDoS的な負荷になりかけたため、キャッシュをリポジトリにコミットする方式に切り替えた経緯を紹介します。

Engineering

labee.jpとlabee.devをNext.jsからAstroへ移行した — 48時間の段階移行と一括移行

ラビー合同会社のコーポレートサイト(labee.jp)と開発者ツールサイト(labee.dev)をNext.jsからAstroへ移行しました。labee.devは48時間で3段階の段階移行、labee.jpはその経験を踏まえた一括移行です。Tailwind CSSの廃止とCSSカスタムプロパティへの移行についても紹介します。

Engineering

Chimrのメニューバー — カレンダーを開かずに予定を把握する

Chimrのメニューバー表示機能を詳しく解説。3つの表示モード、動的表示の4パターン、更新間隔、右クリックメニューなど、限られたスペースで情報を表示する仕組みを紹介します。

Engineering

Chimrのフルスクリーン通知を極める - 絶対に会議を見逃さない設定術

Chimrのフルスクリーン通知機能を詳しく解説。通知タイミング、スヌーズ、出席状態フィルタリング、ビデオ会議モードなど、自分好みにカスタマイズする設定方法を紹介します。

Engineering

会議に遅れない — macOSアプリ Chimr のフルスクリーン通知とMCP

macOS向け会議通知アプリ「Chimr」の紹介。全画面通知、ワンクリックでのビデオ会議参加、MCP対応など、Chimrの主要機能と既存アプリとの違いを解説します。

お知らせ

Labee Dev Toolbox 公開しました

ラビー合同会社が公開したWebツール集「Labee Dev Toolbox」の紹介。Color Picker、Cron Expression Tester、DNS Records Checker、Sitemap Viewerなど主要機能と今後の展望について。