2026年7月17日(金)掲載 2,689本日 0
HN8916

モダンなWeb開発の救世主!Go言語とHTMXを組み合わせた爆速開発術

How I use HTMX with Go

gnabgib2日前

議論

10
0gnabgibスレ主892日前

最近、HTMXとGoの組み合わせにハマっています。シンプルかつパワフルで、複雑なJavaScriptフレームワークなしでインタラクティブなWebアプリを構築するのに最適です。近々、具体的な実装方法やベストプラクティスを記事にまとめる予定なのでお楽しみに!

1xp842日前

最近のプロジェクトでHTMXを使ってみたけど、かなり気に入ったよ。AngularJSやReactが登場する前のWebがどんなものだったかを知っている身としては、普通のWebページを作れて、かつ書かなきゃいけないJSの量を最小限に抑えられるという点が最高にありがたい。Vanilla JSでも問題はないけど、HTMXを使えば、何度も何度も同じイベントハンドラを書くために必要なボイラープレート(定型コード)をかなり減らせるんだ。

もし興味があって、「モダンなフロントエンド」の思想があまり好きじゃないなら、一度HTMXを試してみることをお勧めするよ。ちなみに、HTMXの公式サイトにある最初の例はすごくシンプルだけど、少し勉強すればもっと強力に使いこなせるようになるよ。

2nzoschke2日前

Go + HTMXの組み合わせは最高だね。自分はa-h/templを組み合わせて、テンプレートやコンポーネント、パーシャルでの型安全性を確保しているよ。

つい最近、自分のツールキットを公開したんだけど[1]、これを「GUSスタック」って呼んでる。Go、Unix、SQLiteの頭文字さ。exe.devの「GUTSスタック」[2]にかなりインスパイアされてるけど、TypeScriptの代わりにHTMXを使っているのが特徴だ。

他にもこんなGoのコンポーネントをキットに入れてるよ...

  • cockroachdb/errors: スタックトレース付きのエラー処理
  • templ: 型安全なHTMLテンプレート(リアクティブな部分はhtmx、CSSはtailwindcss)
  • fuego: WebハンドラからOpenAPI仕様を生成
  • sqlc: SQLから型安全なコードを自動生成
  • modernc.org/sqlite: 純粋なGo製のsqliteライブラリ
  • goose: SQLとGoのマイグレーション管理
  • dbos: SQLiteを使った耐久性のあるワークフロー
  • rod: Chrome / CDPによるテストと自動化

このスタックでコーディングして、エージェント的な開発を行い、バイナリをビルドしてデプロイするのはすごく生産的だよ。

3androiddrew2日前

Alex Edwardsは素晴らしいよね。彼の本と「Learn go with tests」が、僕がこの言語を知るきっかけだった。今でも人におすすめしてるよ。

昔のプロジェクトをHTMXで書き直したくなってきたな。

4_superposition_2日前

いい投稿だね。GOTHスタックは最高だよ。

5pbjerkeseth2日前

HTMXは素晴らしいよ。我々もConvictional[1]でHTMX + AlpineJSを使ってかなり長い間やってきたけど、製品がライブコラボレーション機能満載の複雑なものになっていくにつれて、現代のスタートアップの制約下では限界を感じたんだ。残念ながら、Reactのようなものに比べて学習データが少ない新しい技術だと、AIモデル(frontier models)を活用した開発が少しやりづらいのがネックだね。

6sethops12日前

自分たちはこの[1]小さなパッケージを使ってるよ。HTMLテンプレートファイル、生のHTML文字列、あるいはプレーンテキストをベースにしたHTMXレスポンスをチェインできるんだ。最初のもの以外は全部OOB(Out of Band)ターゲットとして扱える。実例はこんな感じ:

  return htmx.Write(w,

    &htmx.Template{
      FS:       htmx.FS(ui.HTMX, "parts"),
      Filename: "arrows.html",
      Fields:   []any{thread, up},
    },

    &htmx.Component{
      HTML: `
        <div {{$count := index . 0 -}} {{- $thread := index . 1 -}}
          hx-swap-oob=true
          id="points-{{$thread}}"
          class="points">{{$count}} points</div>`,
      Fields: []any{count, thread},
    },

  )

7smallerfish2日前

自分用にKotlin + HTMXを使ったフレームワークを書いたよ - https://github.com/reubenfirmin/zoned 。目標は、エンドツーエンドで完全に型安全なWebアプリを作れるか試すこと。Kotlinx.htmlを使ってて、これはHTMLを書くためのJSXっぽいDSLを提供してくれる。

最初の90%は手書きでやって、最後の10%とREADMEはClaudeを使って仕上げて公開してみたんだ。

8artooro2日前

Go + Datastarの方がシンプルだし、こっちの方が断然好きだな。

9overflowy2日前

GoとAlexのことは大好きだけど、HTMXを使った経験はいつも結局ガッカリすることになるんだよね。

一番しっくりくる表現は、HTMXで作業しているとコードベースの複雑さがアプリ自体の成長率の2倍で増えていく感じがするっていうこと。いつも奇妙なエッジケースにぶち当たって、結局変なハックをしないと解決できなくなるんだ。

Nodeのパッケージが嫌われる理由はわかるし、HTMXはその反動でやりすぎな気もする。でも、JSONのやり取りに悩まなくていい時間以上に、アプリの見た目や操作感を良くしようとするとその3倍の労力がかかるよ。Mantineのテンプレート[1]を使えば2分で最高レベルのUIコンポーネントを組み込めるし、それを静的アセットとして埋め込めば結局同じGoの単一バイナリにまとめられるんだから。