ブラウザのための、小さなローカルファーストツールを作っています。
ほとんどの製品は同じ不満から始まります。本来ひと手間で済むはずのことが、四十手間かかる。いま公開しているのは Saver —— コンテンツをすべてご自身のディスクに残すメディアアーカイバです。プラットフォームごとに 1 つの拡張機能、ローカルコアは共通です。
- 役割
- 開発者
- 拠点
- リモート
- 技術スタック
- Chrome MV3、vanilla JS、Node
- 注力分野
- ローカルファーストのツール
概要
ブラウザ拡張機能と、その周辺の小さなツールを作っています。何度も立ち返る原則はひとつ。機能にサーバーが必要なら、それなりの理由が要る。ほとんどの場合、理由はありません。
だからこそ、ここにある製品はすべてあなたの端末だけで動きます。アカウントもテレメトリーも登録も不要です。コードが想像より小さいのも、同じ理由です。
制作物
Chrome 拡張機能のひとつのファミリーと、それを支えるツール群。
Saver — Instagram Media Archive
保存する許可のある投稿、Reels、Stories、Highlights を、そのままディスクへ。
Chrome 拡張機能 7 件中 1 件公開中Saver ファミリー · 7 プラットフォーム
Instagram, X, TikTok, Douyin, Rednote, Kuaishou and YouTube —— それぞれ個別に実装し、ローカルコアは共通です。
Chrome 拡張機能 購入可能Saver Family Bundle
1 つのキーで全プラットフォーム版を解除。$19.9 の買い切りです。
$19.9ツール
これらのプロジェクトのために書いた小さなユーティリティ。役に立ったので残しています。
sync-core
共有ライブラリを各アプリへコピーし、コピーが原本からずれたらビルドを失敗させます。
Node CLIsite-build
このサイトを生成します。1 組のテンプレートと言語ごとの 1 つの JSON から 10 言語を出力します。
Node CLIlicense-keygen
Ed25519 のライセンスキーをオフラインで発行するので、有効化にサーバー呼び出しは不要です。
Node CLIノート
何が壊れ、何がうまくいき、次はどう変えるか。その記録です。
- 近日公開拡張機能にバックエンドを持たせるべきでない理由 アカウント、クラウドストレージ、サーバー側のスロットリングは利便性と引き換えに、データリスクと運用負担を伴います。ローカルファーストが実際に手放すもの、そして取り戻すもの。
- 近日公開レート制限はエラー処理ではなく、製品上の判断である 無料枠、バッチサイズ、バックオフ。レート制限を、発生時に対処する例外ではなく、設計すべきプロダクトの一部として扱う。
- 近日公開1 つのファイルを 10 言語で届ける 1 つのコピー、10 言語、100 ページ以上。依存ゼロのビルドで、ずれを防ぐ仕組み。
このプロジェクトを支援する
Saver は小さなチームで開発・保守しています。お役に立てていたら、以下のいずれかの方法で支援していただけると大変うれしいです。ありがとうございます。