Notesnookの暗号化クライアントとモノレポ構成を確認する
完全にオープンソースで、Evernote に代わるエンドツーエンド暗号化されたメモを取ることができます。
ひと目でわかる
- これは何?
- End-to-end暗号化ノートアプリのREADMEをもとに、暗号方式、Web・デスクトップ・モバイルの構成、開発環境、GPL-3.0を整理します。
- 誰に向いている?
- 向いているのは、複数プラットフォームのノートアプリをオープンソースで確認し、端末側の暗号化という設計方針を検討したい利用者や開発者です。READMEだけでは製品の全機能、同期運用、実環境の保証までは確定できません。
- 商用利用できる?
- 条件付きでできます。GPL-3.0 はコピーレフトのライセンスで、これを含むソフトウェアを配布する場合、そのソフトウェアのソースコードを同じライセンスで公開する必要があります。配布せず社内で使うだけなら、この義務は生じません。
- 今もメンテナンスされている?
- されています。直近 1 日以内に新しいコミットがあります。
- 何の言語で書かれている?
- 主に TypeScript です(GitHub の言語統計による)。
回答はプロジェクトの GitHub データ(最終同期:2026年9月15日)と当サイトの分析に基づくもので、法的助言ではありません。
オープンソース詳細解説
ノートを端末で暗号化する設計
NotesnookはEvernoteの代替を掲げる、オープンソースでend-to-end暗号化されたノートアプリです。READMEのOverviewは、プライバシーと使いやすさを重視し、ゼロ知識の考え方に沿って端末上で全データを`XChaCha20-Poly1305`と`Argon2`で暗号化すると説明しています。
これはプロジェクトの設計説明であり、この記事が暗号実装や製品の安全性を再検証した結果ではありません。READMEは機能一覧やスクリーンショットを公式サイトへ案内しています。暗号化を採用条件にする場合は、公式のVericrypt検証ページと実際のクライアントの挙動を別々に確認し、同期先で読めるデータ、ログ、復旧手段を自分の要件に照らします。
Web、Desktop、Mobileを一つのリポジトリで持つ
このリポジトリにはWeb、デスクトップ、モバイルクライアントをビルドして使うためのコードが含まれます。`apps/web`、`apps/desktop`、`apps/mobile`が各クライアントで、AndroidとiOSはReact Native、デスクトップはElectronを使います。Web clipperは`extensions/web-clipper`にあります。
共有部分は`packages/core`、暗号のlibsodiumラッパーは`packages/crypto`と`packages/sodium`、クリッピング、エディタ、ログ、ファイルシステム、テーマも個別パッケージに分かれています。モノレポの境界が明示されているため、バグを追うときはクライアントだけでなく共有coreとcryptoの版も合わせて見ます。各プロジェクト自身にアーキテクチャ詳細があるというREADMEの注意も重要です。
TypeScript移行中のReact系コードベース
技術要素はJavaScriptとTypeScriptの混在、React、React Native、Electron、NPMです。READMEは新しいコードをTypeScriptで書き、古いコードを段階的に移行しているハイブリッド状態だと説明しています。YarnやPNPMではなく、プロジェクト全体でNPMを使う方針も明記されています。
この構成は、全パッケージが同じ成熟度や同じビルド入口を持つという意味ではありません。導入や開発を始めるときは、対象をWeb、Desktop、Mobileのどれか一つに限定し、その配下のREADMEや設定を読みます。共有暗号パッケージを変更する場合は、Webとモバイルとデスクトップで同じテストデータを復号できるかを確認します。
機能確認は公式サイトとImporterから始める
ルートREADMEは全機能の一覧を載せず、スクリーンショットや詳細を公式サイトへ誘導しています。追加資料には、他アプリからの移行とデータ取り込みを扱うImporter、プライバシーポリシー、利用規約、暗号化主張を自分で検証するVericryptがあります。
既存ノートから移行する利用者は、まずコピーではなくテストデータでImporterを動かし、Markdown、画像、添付、タグ、改行がどう変換されるかを確認します。移行後に元データが消えないこと、暗号化された状態で端末を閉じて再度開けること、別端末での表示に差がないことを記録します。READMEはこれらの結果を保証していないため、実環境の判断は自分で行います。
導入コマンドがないこと自体を記録する
ルートREADMEには、ユーザーがそのままコピーできるインストールコマンドや、単一のローカル起動コマンドは示されていません。アプリのDownloadsと公式ドキュメントが導入の入口です。開発者はモノレポ内の各プロジェクトの構成と依存関係を先に確認します。
したがって、READMEから存在しないセットアップ手順を補ってはいけません。採用前は対象プラットフォーム、必要なNodeやネイティブツール、データ保存先、同期アカウント、バックアップ方法を公式資料で確定します。確認できない項目は未記載として残し、テスト用ノートの作成と削除、エクスポートファイルの中身、アプリ終了後の復旧を個別に検証します。
GPL-3.0とプライバシー主張の切り分け
メタデータ上のライセンスはGPL-3.0です。再配布や改変を検討する場合、GPLの条件と、組み合わせる依存パッケージのライセンスを確認する必要があります。READMEは完全オープンソースであることを強調していますが、オープンソースであることだけで暗号化の正しさや同期サービスの運用を保証するものではありません。
サポート窓口にはメール、Discord、Twitter、GitHub issueがあり、貢献ガイドとロードマップも案内されています。アップグレードでは、リリース版、対象アプリ、共有coreとcryptoの変更を記録し、古いテストノートを復号できること、Importerの結果が変わらないこと、端末間の同期が期待どおりであることを版ごとに確認します。
三つの端末で暗号化と移行を照合する
検証用アカウントを作り、`apps/web`、`apps/desktop`、`apps/mobile`の対象クライアントで同じ短いノートを作成します。タイトル、添付、タグを保存した後、各クライアントを終了して再起動し、暗号化されたノートが開けることと、表示順や内容が一致することを確認します。
次にImporterで小さなMarkdownまたは既存アプリのテストデータを取り込み、変換された改行、画像、タグ、添付を比較します。Vericryptの手順とREADMEの`XChaCha20-Poly1305`、`Argon2`の説明を照合し、アプリの画面、同期ログ、エクスポートファイルに平文が出ていないかを確認します。これはNotesnookの各クライアントと共有cryptoの境界を具体的に試す手順です。
編集部の結論
向いているのは、複数プラットフォームのノートアプリをオープンソースで確認し、端末側の暗号化という設計方針を検討したい利用者や開発者です。READMEだけでは製品の全機能、同期運用、実環境の保証までは確定できません。最初に公式Downloadsと暗号化検証ページを確認し、テスト用ノートの作成、同期、エクスポート、削除を端末別に記録してください。
コミュニティノート