memosが良かった話

読み終わるまでの目安 約5分

反響があったので記事で詳しく書いてみる。

memos とは

memos は Go で構築されているスタンドアロンのメモアプリで、Docker を使ってサクッと構築することができる。 保存には DB を使っているのだけど、デフォルトでは sqlite を使っているらしく、~/.memosに DB ファイルが保存される。

どんな人が向いているのか

  • Twitter や Discord をメモ帳代わりに使ってる人
  • フロー型の UI に馴染みがある人
  • メモしよう!と思ってもすぐ忘れてしまう人

つまり自分みたいな人が向いている。

簡単な使い方

Docker で起動したあとhttp://localhost:5230/にアクセスするとまずユーザーを作成する画面が出てくるので、適当に作成する。

すると Twitter みたいな UI が出てくるので、上部の入力欄から入力してボタンを押すと投稿できる。Twitter みたいな Ctrl+Enter のショートカットも使える。ありがたい。

当たり前かもしれないけど Markdown に対応しているで良い感じにメモが取れる。あと Twitter でお馴染みハッシュタグにも対応しているので、技術記事に#技術記事とか#ライブラリネタとか気軽に分類できる。

右上には親の顔より見た GitHub の草的なウィジェットがある。配色も見方もほぼ同じ。Twitter と同じ感覚でポストしてるとあっという間に濃い緑色になるので見ていて気分が良い。 右側にはハッシュタグの一覧が表示されていて、クリックするとそのタグが付いた投稿が一覧で見れる。

Docker で起動すると PC を再起動したときに毎回実行する羽目になるのか…と思った人は Docker の--restartオプションを指定すると Docker デーモンが起動すると勝手に立ち上がるのでオススメ。WSL でもちゃんと動いてくれている。

API

memos には RESTful API が備わっているため、別にブラウザ経由じゃなくても投稿できる。 自分は Vim を使っているので、denops.vimで Vim から投稿できるようなプラグインを作ろうとゴチャゴチャラッパーを書いたりしている。 OpenId というトークンらしきものは設定をクリックすると使うことが出来る。

余談

memos には公開/部分的な公開/非公開の 3 つのオプションがあって、インターネット上で動かす事で複数人でナレッジシステムとして使うことが可能。 RSS もあるので簡易的なコミュニケーションツールとしても使えそう。

memos はデフォルトで sqlite を使うので、上手く設定すれば D1 にデータを保存できそうだなぁ…と思ったりしている。もし出来ればクラウド上で高速な DB を低コストで使いつつナレッジシステムを構築できるので夢が膨らむ。

以前 Deno と Fresh で似たようなものを作ってたので、memos を参考にしつつ、Deno Deploy ですべてが済ませられるナレッジシステムとか出来たら良いなぁとか思ったりしている。

まだ使い始めて数日だけれどかなり良い感触なのでこれからも毎日使っていきたい。