Upgrade to Pro — share decks privately, control downloads, hide ads and more …

HonoとAstroは仲良し〜Cloudflare Workersでの使い方紹介

HonoとAstroは仲良し〜Cloudflare Workersでの使い方紹介

バックエンド向けウェブフレームワーク「Hono」、フロントエンド向けのウェブフレームワーク「Astro」。実は仲良いですよ!
今回はCloudflare Workers上での、HonoとAstroの使い方を紹介します。単独で使う、Hono-in-Astro、Astro-in-Honoなど組み合わせ方が多いです!最後にAstro-in-Hono関連のライブラリも紹介します。

Avatar for Amine Ilidrissi

Amine Ilidrissi

September 03, 2025
Tweet

More Decks by Amine Ilidrissi

Other Decks in Programming

Transcript

  1. Honoとは • 公式ドキュメントより • 「Hono は小さく、シンプルで爆速な エッジ向けWebフレームワークです。」 • 何ができる? ◦

    軽量なバックエンド開発 ◦ SSGなどウェブサイト開発 (HonoX) ◦ タイプセーフなAPI開発 (RPC)
  2. Hono❤Astro • 組み合わせ方いろいろ • 🔰単独でHonoとAstroを使う ◦ フロントとバックを分離する ◦ RPC機能を使いバックを呼び出す •

    📚Astro内にHonoを使う (Hono-in-Astro) ◦ Worker一つでAstroとHonoを使える ◦ フロントとバックを分離しなくて済む • 🌶Hono内でAstroを使う (Astro-in-Hono) ◦ Astroはレンダリングレイヤー ◦ Honoはサーバールーティング ❤
  3. Hono❤Astro • 組み合わせ方いろいろ • 🔰単独でHonoとAstroを使う ◦ フロントとバックを分離する ◦ RPC機能を使いバックを呼び出す •

    📚Astro内にHonoを使う (Hono-in-Astro) ◦ Worker一つでAstroとHonoを使える ◦ フロントとバックを分離しなくて済む • 🌶Hono内でAstroを使う (Astro-in-Hono) ◦ Astroはレンダリングレイヤー ◦ Honoはサーバールーティング ❤
  4. Hono❤Astro • 組み合わせ方いろいろ • 🔰単独でHonoとAstroを使う ◦ フロントとバックを分離する ◦ RPC機能を使いバックを呼び出す •

    📚Astro内にHonoを使う (Hono-in-Astro) ◦ Worker一つでAstroとHonoを使える ◦ フロントとバックを分離しなくて済む • 🌶Hono内でAstroを使う (Astro-in-Hono) ◦ Astroはレンダリングレイヤー ◦ Honoはサーバールーティング ❤
  5. 📚Hono-in-Astro(エンドポイント作成) • Astroのエンドポイントとは? ◦ ページ以外のルートを定義する方法 ◦ APIルートを定義できる ◦ サーバーコードを実行できる •

    Astroのエンドポイントのデメリット ◦ ファイルベースルーティング ◦ 型安全ではない • Astroのエンドポイント上でHonoを使う ◦ ルートの定義はより楽に ◦ APIルートの型安全性を実現できる
  6. 📚Hono-in-Astro(エンドポイント作成) • Astroエンドポイントを作成 • ALLエンドポイントを定義 ◦ ALL == 全メソッド(GET, POST,

    PUT, DELETEなど) • エンドポイント内にHonoインスタ ンスを呼び出す • CloudflareのBindingsなど環境設定 (locals.runtime.env) を付与する
  7. Hono❤Astro • 組み合わせ方いろいろ • 🔰単独でHonoとAstroを使う ◦ フロントとバックを分離する ◦ RPC機能を使いバックを呼び出す •

    📚Astro内にHonoを使う (Hono-in-Astro) ◦ Worker一つでAstroとHonoを使える ◦ フロントとバックを分離しなくて済む • 🌶Hono内でAstroを使う (Astro-in-Hono) ◦ Astroはレンダリングレイヤー ◦ Honoはサーバールーティング ❤
  8. 🌶Astro-in-Hono(アプリケーションコード) • Astro Container APIを使う • Astro Container APIとは? ◦

    Astroが最近(2024年以降) 提供開始したレンダリングAPI ◦ Astroのコンポーネントをどこ でもレンダーできる ◦ 本来コンポーネントテスト用 に作られた
  9. 🌶Astro-in-Hono(問題点) • Hono内にAstroコンポーネントをレンダー できた • ただし問題が盛りだくさん ◦ Astroコンポーネントのimportがやや こしい ◦

    コンポーネントを変更するたびにビル ドが必要 (No HMR) ◦ CSSが反映されない • 現時点ではAstro-in-Honoはおすすめしづ らい
  10. [個人PR] Astro-in-Honoを楽に!Mighty開発中 • Mightyを開発しています! ◦ Astro Container APIを簡単に使えるラ イブラリ •

    特徴 ◦ ややこしいコンポーネントimportなし ◦ HMR対応 ◦ CSS対応 • 年内にリリースを目指しています • (個人で開発しているもので、株式会社ス リーシェイクが開発しているものではない)
  11. [個人PR] Astro-in-Honoを楽に!Mighty開発中 • 公式ドキュメント ◦ https://go-mighty.vercel.app ◦ WIP • Githubリポジトリ

    ◦ https://github.com/gomighty/mighty ◦ スター⭐お願いします! • X ◦ @gogetmighty