Fizzyをセルフホストに移行して感じたこと
Fizzyをセルフホストに移行して感じたこと
最近、Fizzy を個人サーバーに移行して使う経験をしました。
結論から言うと、「ここまで整理されたRailsオープンソースはなかなかないのでは?」と思うほど満足のいく経験でした。
Fizzyを知ったきっかけ
Fizzyは目標(goal)とタスク(task)を非常にシンプルなカード(card)単位で管理するサービスです。
複雑な機能の代わりに意図的に削ぎ落としたUXが印象的なサービスです。
-
クラウド(SaaS)版を提供
-
同時にソースコード公開(O’Saasy License適用)
→ SaaSとして原著作者と直接競合することは禁止されているため、従来のオープンソースとは異なる
-
セルフホスト版は無料(個人/社内用途)
-
クラウド版は
→ カード作成/削除含め1,000枚超過で月額$20でunlimited
最初はクラウド版で約30枚程度のカードを軽く試してみましたが、この「これで十分だ」という感覚がとても気に入りました。
それで自然とセルフホストに移行することになりました。
Railsベストプラクティスの教科書のようなリポジトリ
37signals が作ったサービスらしく、Fizzyのリポジトリ自体が一つのRails運用ガイドのように感じられました。
-
Ruby on Railsベース
-
Kamalデプロイガイド提供
-
Dockerの実行方法もドキュメント化されている
すでにKamalデプロイの経験があったので、ガイドに従うだけで大きな試行錯誤なくサーバーに立ち上げることができました。
「ああ、だから37signalsがRailsの元祖なんだな」という考えが自然と浮かびました。
Magic Linkログインとsmtp設定
Fizzyはメールベースのmagic linkログイン方式を使用しています。 そのため、デプロイ過程で最も重要な設定はSMTPでした。
個人用途なのでMailgun のテスト用sandboxアカウントを使いました。 設定自体はとても簡単でしたが、実際のログインメールドメインが異なるため、スパムフォルダに入る問題がありました。
当面は問題ありませんでしたが、長期的には独自ドメイン+正規の送信アドレスに変更する予定です。
一つ残念だった点:Import機能の不在
ここまでは本当にスムーズに進みました。 しかし、一つだけ残念な点がありました。
クラウド版からexportしたデータをセルフホスト版にimportする機能がないという点です。
GitHub Discussionで確認したところ、2025年12月から開発中というコメントがあり、そのコメントから約1ヶ月経った時点で問い合わせたところ、まだ開発中という回答を受けました。
結局自分で作ったImport Rake Task
そこで個人用途で使うために自分でrake taskを一つ作りました。
クラウドからexportしたデータをセルフホストのDB構造に合わせて変換し、問題なくimport成功しました。具体的なデータ構造の把握はClaude Codeを通じて行ったので、本当に速く実装できました。
コードはこちらで見られます: https://github.com/leegeng/fizzy/blob/main/lib/tasks/import.rake
これのおかげでクラウドで使っていたワークフローをそのまま継続でき、セルフホストに移行して良かったという確信も得られました。
オープンソースを使う楽しさ
Fizzyのオープンソースに直接貢献したいとも思いましたが、まだ適切な貢献ポイントを見つけられていません。
それでも、実際に使ってみて、足りない部分を自分で作って、必要なら修正して、このサイクルを繰り返していると、いつかは自然と貢献できる日が来るのではないかという期待感が生まれました。
Future Work:Fizzyを個人生産性の基盤として
Fizzyをセルフホストに移行してみると、このサービスを単なる「目標管理ツール」を超えて、これからやることを蓄積する基盤データベースとして使ってみたいという考えが浮かびました。
Fizzyのcardモデルは思ったより汎用的です。
-
goal / task構造がシンプル
-
状態変化が明確
-
不要なメタデータがほとんどない
これから私がやることを最小単位で保存するのにかなり良い形態だと感じました。
そこで今後はFizzyを
「私がやる全てのことの最小単位ストレージ」
として位置づけ、その上で表現方法だけを変える試みをしてみたいです。
Timestripe UIを自分なりに実装してみたい計画
個人的に哲学とUIがとても気に入っているけど、価格のせいで継続して課金して使えていないサービスがあります。
それはTimestripeです。
長期目標を時間軸で整理し、今やるべきことを自然につなげてくれるUXは本当に印象的ですが、個人用途で使うには費用がいつも気になっていました。
そこで思いついた次のステップは、
Fizzyをバックエンド(データストレージ)として置いて TimestripeスタイルのUIを自分で作って使うこと
です。
構造的には
-
Fizzyは変わらないデータの原典(source of truth)
-
UIはいつでも変更可能な表現レイヤー
として位置づけ、私の作業スタイルに合わせて時間軸ベースのUIを実験してみる計画です。
まとめ
Fizzyをセルフホストに移行した経験は、単純に「月$20を節約するため」というよりは、
-
Railsでうまく作られたサービスはどんな姿か
-
運用まで考慮したオープンソースは何が違うのか
-
シンプルさを守る製品哲学がどれほど重要か
を改めて感じさせてくれた時間でした。
まだ個人的な実験段階ですが、このように実際に使って拡張してみる経験を積み重ねていけば、いつかはもっと自然にオープンソースに貢献できるのではないかと、控えめに期待しています。