Simple Photo Gallery が生まれるまで
メインコンテンツに移動

Simple Photo Gallery が生まれるまで

著者:Vladimir Haltakov

Simple Photo Gallery を作り始めたのは、今から6年ほど前です。解決したいことはごく単純でした。旅行で撮った写真や、生まれたばかりの子どもの写真を、友人や家族にきれいに見せられる方法が欲しかったのです。写真をまとめてアルバムに放り込み、リンクを送るだけでは物足りませんでした。_物語を伝えたかった_のです。説明を添え、写真を意味のあるまとまりに分け、一枚ずつ何が写っているかを伝えたかったのです。

最初の本格的な「写真で語る物語」は、2017年のオーストラリア旅行でした。旅の途中でいろいろな発見があったので、写真を並べるだけでなく、その体験も伝わるギャラリーにしたいと思いました。そこで街や場所ごとに写真を整理し、セクションごとに文章を書き、多くの写真にキャプションを付けました。困ったことに、それに向いた道具が見つかりませんでした。

物語を伝えられて、祖母にも気軽に共有できるものが必要でした。祖母が主に使っていたのはタブレットとメッセージアプリです。リンクを送ったら、タップするだけで全部見られるようにしたかったのです。サインインも、別のサービスも、面倒な操作もなし。もちろん、スマホでもパソコンでもタブレットでも快適に使えることが条件でした。

それで結局、自分で作ることにしました。

最初のバージョン

最初の Simple Photo Gallery は Python で書きました。PhotoSwipe という JavaScript ライブラリを見つけたのがきっかけです。写真を拡大表示するビューアーがきれいで、操作もなめらかでした。そのライブラリを小さなコマンドラインツールに組み込みました。写真のフォルダーを読み込み、サムネイルを生成し、静的なギャラリーにまとめます。中身は HTML、CSS、JavaScript のファイルだけなので、どこにでもホスティングできました。

ツールをオープンソースで公開し、旅や息子との日々のギャラリーを作りながら、機能を追加していきました。こちらが2017年のオーストラリアのギャラリーの初期版です。

ただ、ツールの使い方は簡単ではありませんでした。

pip で Python パッケージをインストールし、ターミナルでコマンドを実行します。セクションのような高度な機能を使うには、JSON ファイルを手作業で編集する必要もありました。実際、ある程度技術に詳しい人しか使えません。それでも、年月とともに使ってくれる人は増えていきました。

おもしろかったのは、生成したギャラリーの下に「Simple Photo Gallery で作成」と小さく表示していたことです。おかげで Google で検索し、どんなギャラリーが作られているかを簡単に見つけられました。もちろんオープンソースなので、表示を消すこともできます。実際にはもっと多くのギャラリーがあったかもしれません。それでも GitHub で200を超えるスターを獲得したのは、週末に作った小さなプロジェクトとしては夢のようでした。

使ってくれる人を見るたびに、こう思うようになりました。 「_こんなに_使いづらくても、これだけの人に役立っているなら、もっと簡単にしたほうがいいのかもしれない」

何年も考えてきた新バージョン

ほとんど最初から、v2 の構想はありました。モダンな JavaScript で全体を書き直し、Python 版の根本的な制約を解消し、要望の多い機能を追加したかったのです。特に、大量の写真が入った何階層ものフォルダーから、自動でギャラリーを作れるようにしたいと考えていました。膨大な写真アーカイブを持ち、まさにそういう機能が必要だと連絡をくれた人が何人もいました。ただ、古い設計のままでは、うまく組み込むのはかなり難しかったのです。

何年も v2 のことを考え続け、今年に入ってようやく、_やろう_と決めました。

友人で優秀な開発者の Tomasz を誘い、対等なパートナーとして一緒に取り組むことになりました。Astro を使ったモダンで高速な TypeScript の構成で、ツールを一から書き直しました。2025年9月に、新しいオープンソース版の Simple Photo Gallery v2 を GitHub と npm で公開しました。

v2 で作ったオーストラリアのギャラリーは、今ではこんな見た目です。

新しい方向:オープンソースとホスティング付きアプリ

オープンソースのコマンドラインツールに加えて、新しいウェブアプリの開発も始めました。オープンソースのエンジンを土台にした、フルマネージドのサービスです。ホスティング、保存、最適化はサービス側が担当します。JSON を編集する代わりに、画面上のエディターでギャラリーを作れます。写真のフォルダーをアップロードして説明を追加し、「保存」をクリックするだけです。技術に詳しくない人でも、気軽に使えるようになりました。

これが今取り組んでいることです。アプリはすでにひととおり使えて、今後追加したい機能もたくさんあります。試してみたい方は Simple Photo Gallery をどうぞ。作り方のヒントになるギャラリーの例もご覧ください。

これから

ギャラリーの写真選びや整理をもっと簡単にする、おもしろい AI 機能を計画しています。新機能の開発が進んだら、このブログと @haltakov でお知らせします。