https://lokuyow.github.io/ehagaki/
eHagaki(えはがき)は、画像・動画圧縮機能付きの投稿専用Nostrクライアントです。
デバイス上で画像や動画を自動圧縮し、効率的にNostrへ投稿できます。
- Nostr投稿専用: 投稿機能に特化し、シンプルなUIで快適な利用体験を提供
- 画像・動画圧縮: 画像・動画はアップロード前に自動で圧縮され、通信量を削減(圧縮レベル調整可能)
- 見たまま編集できるリッチエディター: プレビュー画面と入力画面が分かれておらず、画像・動画・リンク・カスタム絵文字・ハッシュタグなどを実際の投稿に近い見た目で直接編集可能。ハッシュタグをピン留め(保持)して連続投稿することも可能
- 多彩なログイン・アカウント管理: 秘密鍵(nsec)、ブラウザ拡張(NIP-07)、リモート署名(NIP-46)、親クライアント連携でのログインに対応。複数アカウントの切り替えも可能
- PWA・共有インテント対応: モバイル・デスクトップ両対応。Androidは外部アプリの共有ボタンから直接メディアアップロード可能
- ドラフト機能: 投稿内容を下書きとして保存し、後から編集・投稿が可能
- リプライ・引用・チャンネル投稿: 各種URLクエリや
nostr:URIを通じたリプライ・引用投稿(NIP-10, NIP-18)に対応。パブリックチャット(NIP-28)のチャンネルへの投稿もサポート - Content Warning (CW): センシティブなコンテンツ(NIP-36)に対する警告の設定が可能
- iframe埋め込み: 他アプリの投稿フォームとして組み込んで利用するためのAPIを提供
- 多言語対応: 日本語・英語に対応(ブラウザ設定から自動判定)
アクセス時にエディターへテキストを事前入力できます:
https://lokuyow.github.io/ehagaki/?content={url-encoded-text-here}
URLクエリパラメータでリプライや引用投稿を指定できます。nevent1... または note1... 形式(NIP-19)に対応しています。
# リプライ
https://lokuyow.github.io/ehagaki/?reply=nevent1...
# note1形式でも可
https://lokuyow.github.io/ehagaki/?reply=note1...
# 引用
https://lokuyow.github.io/ehagaki/?quote=nevent1...
# note1形式でも可
https://lokuyow.github.io/ehagaki/?quote=note1...
- リプライ: NIP-10準拠のe/pタグを自動構築(スレッドroot引き継ぎ対応)
- 引用: NIP-18準拠のqタグを自動構築し、投稿時に引用イベントとして処理されます
- URLクエリ由来の参照イベントはプレビュー表示されます
- エディタ本文に
nostr:nevent1...またはnostr:note1...を含めた場合も引用として処理されます - 本文中の複数の
nostr:URI は出現順に処理されます - 本文中の
nostr:URI からの引用ではプレビューは表示されません - ×ボタンでリプライ/引用をキャンセルし、通常投稿に戻れます
eHagaki の iframe 埋め込み方法、親クライアント連携ログイン、postMessage 仕様は公開ガイドに分離しました。
IFRAME_EMBEDDING.md を参照してください。
親ページ連携の動作確認用サンプルは https://lokuyow.github.io/ehagaki/embed-parent-client-example.html からも直接アクセスできます。
このガイドには次の内容をまとめています。
- 基本の iframe 埋め込み
- リプライ / 複数引用状態での起動
- 親クライアント連携ログイン
ehagaki.embedenvelope とpost.success/post.errorの受信方法auth.login/auth.request/auth.result/auth.error/rpc.requestの流れ
- Svelte 5 + Vite - UI フレームワーク
- bits-ui - Svelte UI コンポーネント
- Tiptap v3 - リッチテキストエディター
- svelte-tiptap - Svelte向けTiptap統合
- svelte-i18n - 多言語対応
- rx-nostr - リレー管理とイベントストリーミング
- nostr-tools - Nostrプロトコル実装
- browser-image-compression - 画像圧縮
- FFmpeg.wasm - 動画圧縮(WebAssembly版)
- mediabunny - 動画圧縮(WebCodecs API)
- blurhash - 画像プレースホルダー生成
- vite-plugin-pwa - Progressive Web App対応