🪶

OSSのメモアプリ「Memos」を3ヶ月使ってわかったこと——Notion依存から抜け出す選択肢

に公開

Notionに感じていた小さな違和感

Memosという軽量なOSSメモアプリを使い始めて、3ヶ月になる。

きっかけは、Notionに溜めていたメモが数百件を超えたあたりで感じた、ちょっとした居心地の悪さだった。Notion自体に不満があったわけではない。高機能だし、UIも洗練されている。ただ、仕事のアイデアも、個人的な考え事も、技術メモも、全部が1つのSaaSの中にある。エクスポート機能はあるけれど、日常的にバックアップを取っているかと聞かれたら、取っていなかった。

サービス終了、料金改定、API仕様の変更——どれも可能性としては低いが、ゼロではない。Craftも一時期使っていたが、根本的には同じ構造だ。データは常に相手のサーバーにあって、自分の手元にはない。

「自分のデータは自分の場所に置いておきたい」。エンジニアなら一度は頭をよぎる話だと思う。そこから、セルフホストできるメモアプリを探し始めた。


「雑に書ける」メモアプリを探して

セルフホスト可能なメモアプリは色々ある。TriliumJoplinLogseq……いずれも優れたツールだが、自分の求めるものとは少し違った。

欲しかったのは、「開いて、書いて、閉じる」だけのメモ帳だった。フォルダもノートブックもなく、タイムライン形式でメモが流れていく。Twitterの下書きに近い感覚で使えるもの。

Memos がまさにそれだった。

Memos demo

GitHubで58,000スター以上。Go製のシングルバイナリで、Dockerイメージは約20MB。データベースはSQLiteなので、別途DBサーバーを立てる必要もない。Markdownに対応していて、REST APIとgRPC APIも備えている。MITライセンス。

「軽くて、シンプルで、データが自分のものになる」——選定理由はこれだけで十分だった。


「サーバー立てるところからでしょ」問題

気に入ったのはいいが、問題はデプロイだった。

Memosの公式ドキュメントにはDockerでのデプロイ手順が載っている。docker run 一発で動く。ただしそれは「Dockerが動くサーバーがある」前提の話で、そこに辿り着くまでがそれなりに長い。

VPSを借りる → SSHで接続 → Dockerをインストール → ポートを開ける → リバースプロキシ → SSL証明書 → ドメイン設定……

ZennにもOracle CloudのAlways Free枠にMemosを立てた記事があったが、「半日かかった」と書いてあった。実際そうだろうと思う。

自分も最初はVPSにMemosを立てて使っていた。動くし、データも完全に手元にある。ただ、友人に勧めるたびに「でもサーバー借りるところからでしょ……」と言われて終わってしまう。自分自身も、もう1台VPSを管理するのは正直しんどかった。

「まず触ってもらう」ためのハードルを下げたい。そう考えて、PaaSでのデプロイを試すことにした。


ワンクリックでクラウドに立てる

Railway は、DockerコンテナをそのままデプロイできるPaaSだ。HerokuやRenderと同じジャンルで、従量課金制。

いくつかのPaaSを比較した中で、Dockerイメージをそのままデプロイでき、セットアップが最もシンプルだったのがRailwayだった。自分のMemos環境をRailwayに移行してしばらく運用し、問題なく動くことを確認した上で、同じ構成をテンプレートとして公開した。

Memos をワンクリックでクラウドにデプロイ(GitHub)

VPSもSSHもnginxもLet's Encryptも要らない。リンクからデプロイページに飛んで、ボタンを押すだけでいい。


3ヶ月使ってわかったこと

ここからは、実際に3ヶ月間使ってみての率直なレビューを書く。主な用途は、仕事中に浮かんだアイデアの断片、技術的な調査メモ、読んだ記事の感想など。Notionにも書いていたような内容だが、「あとで整理しよう」のプレッシャーがない分、書く頻度は明らかに増えた。

よかった点

起動が速い。 ブラウザでURLを開くと、すぐに入力画面が出る。Notionのように読み込みを待つ時間がほとんどない。Go製で軽量というのは本当だった。

入力のハードルが低い。 フォルダを選ぶ必要がない、カテゴリを決める必要がない。開いてそのまま書くだけ。後からタグで整理できるが、整理しなくても困らない。この「雑に書ける」感覚が思った以上に良い。

Markdownがそのまま使える。 コードブロック、リスト、リンク、全部普通に書ける。エンジニアのメモ用途には十分。

APIがある。 REST APIが公開されているので、CLIからメモを投げたり、他のツールと連携したりもできる。自分はまだ使っていないが、将来的にはn8nと繋げてみたい。

微妙な点

公式のネイティブアプリはない。 Memos自体はWebアプリなので、スマホからはブラウザでアクセスする形になる。PWAとしても動くが、ネイティブアプリほどスムーズではない——と思っていたのだが、サードパーティ製の Moe Memos というクライアントを見つけて印象が変わった。MemosのAPIを利用したモバイルアプリで、iOS/Android両対応。通知やオフライン対応もあり、思った以上に快適に使えている。公式ではないので今後のAPI互換性は気になるところだが、現時点では十分実用的だと感じた。

共同編集ではないが、複数人で使える。 リアルタイムに同じメモを編集する用途には向いていない。ただ、マルチユーザー対応はしっかりしていて、メモごとに 個人・ワークスペース・公開 の3段階で公開範囲を設定できる。友人やパートナー、チームメンバーを招待して、それぞれが自分のメモを書きつつ、共有したいものだけワークスペースに流す——という使い方がなかなか良い。日常的なメモや買い物リストの共有くらいなら、これで十分だった。

Notionの代替ではない。 データベース機能、カレンダービュー、プロジェクト管理……そういったものは一切ない。Notionの全機能が必要な人がMemosに乗り換えるのは無理がある。あくまで「メモを書く」という一点に絞ったツール。


ランニングコスト:3ヶ月で0円だった

Railwayの料金体系について正直に書いておく。Hobbyプランは月5ドルだが、5ドル分の無料クレジットが含まれている。つまり月の使用量が5ドル以内であれば、追加の支払いは発生しない。さらに、月1ドル未満の使用量はそもそも課金対象にならない。

自分の場合、「月5ドルくらいかかるかな」と思って始めた。ところが1ヶ月後に請求を確認したら、使用量が1ドル未満で無料枠に収まっていた。MemosはGo製シングルバイナリ+SQLiteという構成で、動作時のメモリ消費が約10MB。個人のメモ用途だとリソースをほとんど食わない。

結果として、3ヶ月使って1円も払っていない。「無料」を売りにしたいわけではないが、「試しに立ててみたら思ったよりお金がかからなかった」というのが正直なところだ。使い方次第で変わるので、あくまで参考値として受け取ってほしい。


おわりに——データの置き場所について

ここまで書いておいてなんだが、「データを自分の手元に置きたい」と言いつつRailwayに載せているのは矛盾しているかもしれない。Railway上のデータだって、結局は他人のインフラの上にある。

ただ、NotionやCraftとの決定的な違いは、データの形式がオープンで、いつでも持ち出せるという点だ。MemosのデータはSQLiteファイル1つ。Railway CLIでエクスポートできるし、気が向いたらVPSに引っ越せばいい。最初から完璧な環境を用意する必要はなくて、まず使ってみて、気に入ったら自分のサーバーに移す——そのくらいの温度感でいいと思っている。

自分にとっては「雑にメモを書ける場所」として定着しつつある。Notionも併用しているが、役割が分かれた。プロジェクト管理や構造化されたドキュメントはNotion、頭の中の断片を吐き出す場所はMemos。

Discussion