恥ずかしながら GitHub Spark で作った Web アプリを公開できることを知らなかった(社員なのに)。GitHub Pages にデプロイするより楽かつ自由度が高そうなので、GitHub Actions と GitHub Packages のストレージ使用量を計算・変換するツールを Spark で作ってみた。
現状、Spark で作ったアプリへのアクセスには GitHub アカウントでのログインが必要。
作った動機は、ストレージ使用量の GB-month と GB-hour の関係・変換方法がよくわからなくなってしまったから。以前からわかったような、わからないようなあやふやな感じで、Sample storage cost calculation の例を凝視してようやくわかったような気になる、というふうに苦労していた。
この例を丸ごとコピペして、「この仕様に基づいて、GB-month と GB-hour を変換するアプリを作って」と Spark に投げ、あとは提案を適当に受け入れたりしつつ(料金計算機能とか)、途中から思うように操れなくなったので Spark のプロンプトで命令するのは諦めて、リポジトリを作成→Codespaces を作成して Codespaces 内の Copilot Chat (agent mode) に細かい指示を出して完成させた。
ワンクリックデプロイで公開するところまで一気通貫でできるのは確かにものすごく早い。小難しいプロジェクトセットアップやライブラリのインストールは一切不要だし、基本的には待ってるだけで、最初のバージョンがデプロイされるまで 10 分もかからなかった。それでいて、最初からそれなりに完成度が高いものを出してくる。
ただ、細かい調整は苦手のようで、GB-month と GB-hour の入力欄の上下位置を入れ替えて、という命令は何度言ってもうまくできなかった。プロンプトが悪かったのか、ソースコード内での位置を確認して「すでに正しい順番です」とか判定していた。かつ、Spark の UI 上で直接コードを編集すると、ちゃんと反映されてるのかよくわからない感じになるし、後続のプロンプトで作業するときに巻き戻されたりして、制御が難しいと感じた。
あと、Spark 上で追加作業させたものが気に入らなくて「前のバージョンに戻して」と言うと、そのさらに前の、消したくない変更を消しに行ったりして、この辺りも扱いが難しいと感じた。おそらく vibe coding をする人は皆経験することなんだろうと思う。