nisshiee.org

撮影した写真・動画を、nisshiee.orgでも閲覧できるようにした

2025-11-05

前回の記事で、写真や動画をAWS S3+CloudFrontで配信してNostrに投稿する処理を自動化した話を書いた。

しかし、ここまででは以下の問題がある。

  • Nostr村の人口が少ないのでほとんど見られない
  • Nostr以外にも手動で良いので貼りたいときが結構ある
    • 例えば会社のカメラコミュニティのSlackチャンネルとかに
  • しかし「写真・動画をURLを貼って共有する」という意味で満足できるクライアントが見つからなかった
    • og:imageが設定されて、Slack上ではサムネイル展開してほしい
    • 閲覧以外の機能は不要(この場合においては、Nostr住民を増やしたいわけではない)
  • 過去の写真も一覧して見たい
    • 一応nostterのプロフィール>メディアページが近いっちゃ近いが
    • でも上と同じで、SNSへの誘導というよりはポートフォリオに近い見せ方をしたい

というわけで、本サイト(nisshiee.org)を、Nostrクライアント化し、投稿した写真・動画を閲覧できるようにした。

それがこちら

Nostrクライアントと言っているが、実態はNext.jsのサーバーコンポーネントとして実装されているため、閲覧者のブラウザで何本もWebSocketコネクションが貼られたりすることはない。また、ページコンポーネントをキャッシュするようにしているため、仮にnisshiee.orgがめっちゃ閲覧されたとしても、リレーへの負荷は最小化される(その代わり、新しい投稿をしても一覧への反映は少し遅れる)。ちなみにキャッシュは、Next.js16のCache Componentを用いている。

一応見れるようになったので今のところ満足しているが、やる気が出たら、リアクションの表示や、その場でリアクションぐらいはできるように頑張ってみるのも良いかもしれない。それをやると、投稿内容の部分は変更されることがないのでcacheLife("max")とし、リアクション表示部分は短いcacheLifeを設定するということが考えられるので、よりCache Componentを活かせる気がするね。