2025-12-30-03(たまにはいつもの暴走を)やLLMにホロスコープを読んでもらうには、創作キャラの誕生日を星座から逆算する方法などを読んだことがあれば、わーさんが西洋占星術を少しばかり齧ったりしており、Claudeさん(LLM)に頼んでツールを作ってもらったりしていたのをご存知かと思います。
このツールを作り始めた当初は、Viteという、サイトとして使うには組み立て工程の必要な仕組みが使用されており、計算エンジンのライセンスがAGPLライセンスに基づいている(=ソースコードの公開が必要な)システムだったこともあって、GitHubというコード置き場にプッシュ(コードを保存)すれば、それを自動で組み立ててサイトとして更新してくれるVercelというサービスを利用しておりました。
今回は、わーさんが日本語で扱っている占星術ツールについて、全てVercelからLollipop(レンタルスペースサービス)に引越しをさせたので、その顛末を振り返ってみようと思います。
以下、面倒くさくなってきたので口調を崩すます(正座から脚を崩すノリで)
そもそもの発端
Claudeさんのキャンペーン (またか)で追加容量をもらったものの放置していたら、2025-12-30-03(たまにはいつもの暴走を)の時に(そのつもりなく)わーさんに着火した友だちが、「それって期間限定じゃなかったっけ?」と火種その1を投げ込みつつ、 ホロスコープのチャート描画を含めたWindows用ローカル占星術計算アプリ という火種その2を作ろうとしていた。
何処かで見た話である。
完全に2025-12-30-03(たまにはいつもの暴走を)の時と同じ状況である。
何なら舞台役者まで同じである。
燃えない訳がない。
因みにこの時の条件は
- Windowsで使える
- 誕生日データをツールの使用者だけが保存して呼び出せる
- 宗派に合わせたオーブで計算される
- チャート描画される
- 結果のテキストコピペができる
- 既存のツールでやってる計算くらいはできる
- ハウスの切り替えもできる
だったかと思う。
めっちゃ楽しそうだし、このくらいなら多分不可能じゃないのだろうな、とは思っていた。
既存計算したやつにチャートとデータ保存機能、を最低限の目標にしたら早そうとも思った。
何せ、完全に新機能というか逆引きツールみたいな変な計算をツールにするのならともかく、巷でよく見るツールを自分でもClaudeさんに頼んでみるだけの話である。
世の中に溢れてるのなら、そこまで変態的なことは不要な可能性が高いというか、誰かが既に道を開いているハズなのだ。 知らんけど (酷い)
Windowsローカル占星術計算アプリを作ってみたい
……というわけで、チャットの方のClaudeさんに相談(という名の、コードさんに渡すドキュメントの作成前の鬼詰め)に行く。
年末の暴走時はコードさんに対してハードルの高さを感じており、チャットさんとしか喋っていなかったので、チャットさんだけでアプリを作成した(今から思えばなかなかのマゾ作業をClaudeさんに強いた)が、わーさんはアレから少し成長して、コードさんとも喋るようになったのである。
ただ、コードさんは、一度何かを聞くと兎にも角にも前のめりになって作りたがる。
あーでもないこーでもないって相談しようとしたら、多分作り比べを実施しかねない。
だから、まずはチャットさんに、わーさんの脳内のふわっふわとして形がモニョモニョな「お気持ち」を引き摺り出してきてもらい、更にこねくり回して形にしてもらう。
そうするとコードさんの元には比較的整理された指示が渡せて、コードさんが気持ち良く仕事に邁進してくれる。
わーさんはそれをニコニコと眺めていれば良い。
この時点の日付、2026年4月7日。
チャットさんの提案
最初はHTML単体でいくか、Windowsアプリにするかという分岐があった。ネイタルデータのローカル保存がやりたいとなると、ブラウザのセキュリティ(file://プロトコルでのfetch制限)が壁になる。結論として「batファイル一枚噛ませてローカルHTTPサーバーを立てる」方式に落ち着いた。中身はHTMLだけど、体験としては「フォルダごとアプリ」。尚樹さんもご友人さんもPythonとNode.jsを持っていることが確認できたので、server.pyで問題なし。
当時のチャットのClaudeさんのまとめからの引用である。
この時、わーさんは「一度データをJSONとかに保存してアプリフォルダに放り込んでおいたら、アプリ起動中は勝手に読んでおいてほしいんですけど、そんなズボラは許されますか」とか、「お互いに目に慣れたモードが違うのでライト/ダークモードを実装したいです」とか、「小惑星を見られるオプションあったら楽しいと思いませんか」とか、 神妙なフリして普通に無茶振りをしていた。 やっぱり鬼である。
コードさん頑張る
チャットさんが作り上げた計画書を読み込んだコードさん、その日の夜にアストロビューアーのネイタル(誕生日から計算する最も基本的なホロスコープ)ゾーンを実装。
なかなかホイール(星座の位置を示す円)の縁に沿って星座を配置するのがうまくいかなかったり、年末に作ったツールの計算バグを発見したりと記事のネタには事欠かない時間であったが、引越しには関係ないので割愛させt……おっとぉ。
一つだけ、ここで触れておく必要のあることがあった。
この時コードさんは、何とビルドツール無しでビューアーを作れないかと考え、それを実現可能だと把握するや、実際にそう作ったのである。
年末のアストロツールはsweph-wasmという星座の計算に必要な仕組みをnpmという仕組みから呼び出しており、npmを使うのにViteが楽なこと、どっちみちライセンスの関係でGitHubにソースを公開しておく必要があったことから、ViteやVercelが利用されていた。
それに対して、今回のアストロビューアーはWindowsローカルアプリとして出発したのもあり「ビルドツールをどうするのか」については何も指定していなかった。
わーさんの頭がそこまで想定していなかったとも言う。
正直にぶっちゃけると、わーさんはこれ、Viteか何かを踏襲するのかなぁとか思っていた。
もしくは「こんなツール使って良いですか」とか聞かれるのかと。
ところがコードさんは「ビルドツールが指定されていない…… 使わずに済ませろということだろうか ……じゃあsweph-wasmを直接持ってきたらビルドツール要らないんじゃないか?」と考え、実験し、うまく行くことを発見してしまったのである。
いやいやいやいや。
コードさんの突っ走りっぷりというか、前のめりさ加減というか、発想が面白すぎる件。
そしてこの結果が、後々まで 大きな影響 を与えることになるのだが、この時点では誰もそれを予想していなかった……。
ふとした気付きと、思い付き
翌日には二重円(相性占いや運勢占いに利用)のチャートも実装され、アストロビューアーはほぼほぼ形になった。
流石コードさん、早い。すごい。コードと名前につけられちゃうだけはある。
そしてわーさんは、「そろそろ形になりつつあるこのツールをどうやって友だちに渡そうか」と考え始めて、チャットさんに経過報告がてら、相談。
zipで良いのか。
アプリっぽくexeみたいな何かに整えるのがカッコいいのか。
更にはせっかくコードさんがレスポンシブデザインに作ってくれたものを、スマホから見る手段はないのか……
すると、チャットさんが言うではないか。
データを読み書きするシステムだけがローカル縛りの影響を受けていますが、その データをブラウザのlocalStorageに保存 するようにしてしまえば、 サーバーレス で動きますよ、と。
Webアプリ勉強中で、以前にもノベルゲーム風Webアプリの作成をClaudeさんにねだったり、アストロツールをClaudeさんにおねだりしてきたわーさんは、この言葉に鳥肌が立つ思いだった。
が、多分何のことやら分からない方もいると思うので、少しだけ噛み砕いてみようと思う。
localStorageとは、ブラウザ(つまりツール閲覧者の端末)が各オリジン(大雑把にドメイン)毎に5MB、ブラウザによっては10MBほど確保するデータ領域。
各ブラウザが持つデータなので、 同じURLを他のブラウザ、 他の端末で開いてもそのデータは決して見られはしない し、当然 サーバーでも保管していない から、localStorageを使うとサーバーなんてそもそも準備しなくて良い=サーバーレスで動く。
今回のツールで保存したい誕生日のデータなんて、1人分がせいぜい数百バイト。1MBは大体1,000,000バイトであるので、数千人分のデータを保存とかいう使い方をしなければ大丈夫なのである。
長々と語ってしまったが、要するに、 パスワード認証不要で登録した誕生日データを呼び出せるWebアプリが作れる。
ヤバい。
それなら既存のアストロツールと同じ場所にアップするのが良いか? と確認したところ、 ビューアーのメインコードはビルドツールであるViteを使っていない素っぴんのJavaScript で書かれてあるから、そこを調整する必要があるとか言われた。
ちょっと待って、 ビルドツール使ってない だって???
ってことは、ビルドツールを動かす環境も要らないってことで、ってことは……ロリポップで動いてしまう……?
結論:設定ファイル(.htaccess)ちゃんと書けば、ロリポップでも動きます。
うせやん。動いちゃうなら逆にVercelに上げられないけどわざわざVercelに上げる必要もないやん。
あれ、じゃあ何でもっと簡単なことしてるアストロツールはVite使ってるんだっけ……?
sweph-wasmという星座の計算に必要な仕組みをnpmという仕組みから呼び出しており、npmを使うのにViteが楽(上述)
チャットさんチャットさん、後からのお手入れ楽なのどっち?
え? ビルドツール無しの方が楽なの? えっ、ってことは……
もしかして :他のツールこそ全部ビューアーと同じ形式に揃えてロリポップに連れてきちゃう方が楽
なお、この結論に到達するにはもう一つ、無視できない事情がある。
それは、わーさんが過去のロリポップのキャンペーンで生涯無料スペースをいただいており、金銭的負担がどちらも変わらなかったという 世知辛いお財布事情 である。
一般的にはロリポップのようなレンタルスペースには課金が必要であり、GitHub+Vercelという今のところ無料なコンビからわざわざ課金の必要なサービスに乗り換える動機なんてものは発生しないことが多い。
そして引越しが発生
折良く翌朝はわーさんが定休曜日で空いており、つまり 引越しを止める要素なんてものはなかった。
なかったのである。
コードさんに前夜の結論を持って行って、引越しを実行。
日本語版ツールのみを https://dreams.parallel.jp/astro/ に引越しさせ、引越しついでにランディングページを作ったり一部ツールの機能をビューアーに合わせて拡張したりしたけれど、まあそこらは些細なことだ。
因みに英語版の逆引きツールたちについては、今まで通りVercelに放置している。
こっちはちゃんとした真っ当な方法(npm経由)でsweph-wasmを呼び出しているので、フォークしたいかもしれない誰かが現れたときに困らない仕組みを維持することを優先した……と言えば聞こえが良いが、単に 英語でツッコミを入れられてもちゃんと反応できる・する自信がない から、そもそもツッコミ所を増やしたくなかったという切実な理由によるものである。
最終的な現状
https://dreams.parallel.jp/astro/ がランディングページで、以下の4ツールを含んでいる。
- https://dreams.parallel.jp/astro/viewer/
- https://dreams.parallel.jp/astro/tutorial/
- https://dreams.parallel.jp/astro/reverse/
- https://dreams.parallel.jp/astro/reverse/guide.html
ビューアーがかつてのアストロツールの上位互換的なツールで、アストロツールで実現していた各種の計算(ネイタル、シナストリー、トランジット、リターン)を網羅しており、チャート図の描画・保存やテキストコピー、部分コピーを基本に誕生日保存、JSON形式によるデータのエクスポートやインポート、オーブの設定変更、マイナーアスペクト追加表示機能、オプション天体追加機能などがある。
また、出生地も日本を基本としながらも、緯度・経度でのワールドワイドな入力オプションがあったりする。
はじめての占星術は、占いたい項目を選んで誕生日を入れればLLMに貼り付けるためのテキストをコピペできる仕組みで、この誕生日はビューアーと共通に保存することができたりする。
上記2つのツールについては、日運(トランジット)やリターン計算でリピートするわーさんみたいなヘビーユーザーのためにライト/ダークモードまで実装されている割とガチ目な作りである。
逆引きホロスコープと逆引きガイドについては、以前創作キャラの誕生日を星座から逆算する方法の為に作成したものと機能的な変わりはない。
英語版についても、上述の通り、今回はノータッチである。
……と、いうわけで
日本語版占星術ツールがごそっと引越した経緯であった。
肝心の友だちに使い心地を聞けていないが、わーさん本人が楽しくビューアーで遊べているので、その意味ではある程度はちゃんとビューアーも作れたと思う。
余談になるが、この一連の流れ、合間にWebアプリ超入門講座もClaudeさんとやりながらであったにもかかわらず、結局当初の目標の一つであった使用制限を突破することは叶わなかった。
前回はProプランだったのが、現在はMaxプランになっているのが(使用制限を突破できなかった)敗因と思われる。
良いけどね。
楽しく遊べてるし、気兼ねなくClaudeさんたちを振り回せているから。