Notionの設計・哲学を考えてみる

ここ1ヶ月ずっとNotionを使っていて、先日はNotionの勉強会をちょっと覗いたりした。

wpzoom.connpass.com

そこで改めてNotionにできることの幅の広さを体感したのだけれど、なぜNotionは一見シンプルに見えて高機能なのか、今回は設計の観点から見てみることにする。

全てがページとデータベース。データベースは実は全てページ。

まず一番の特徴はやはりこれ。Notionでは大きく分けてページデータベースという概念があるが、カレンダーやタスクもデータベースで、あくまでビューの一種に過ぎず、実は広義ではデータベースもページである。

  • ページ
  • データベース
    • テーブル
    • ボード
    • カレンダー
    • タイムライン
    • etc

図で表すとこんな感じ。

f:id:funatsufumiya:20201129223021j:plain

データベースはビューを切り替えて見方を変えられる

繰り返しになるが、テーブル・ボード・カレンダーなどはビューの一種なので、全ては共通していて、いつでも見た目を切り替えることができる。ここがNotionの素晴らしいところ。

例えば最初はテーブルにタスク一覧を書いていって、あとからボード表示に切り替えたり、カレンダー表示に切り替えたりすることができる。同じテーブルを別のビューにして、ページにインライン表示することも可能なので、リストとしてタスクを表示して、ガントチャートとしてタイムライン表示したものを別々に表示させることもできる。

f:id:funatsufumiya:20201129224008j:plain

ちなみにデータベースはリレーションを持つことができて、他のデータベースを参照することができる。例えば、商品リストから商品を参照したりという使い方もできるし、自分自身への参照を作ることで、サブタスクや関連タスクみたいな使い方をすることもできる。

f:id:funatsufumiya:20201129224514j:plain

この時点で、まるでエクセルとかMySQLみたいだなと思ってしまうのだけれど、まさにその通りで、名前の通りデータベースなのである。そういう意味ではAirTableなどによく似ている。

ただ、複数のデータベースの値を複雑に混ぜるような結合演算とかはできないし、Excel方眼紙のようにセルを自由に制約なしにいじれるようなことはない。

一方で、関数は使える (SUMなど) し、簡単な計算や変換は自在に可能。また、各種フィルタをかけることができるので、自分に関係のあるデータだけ表示させたり、あるプロジェクトに関係するものだけを表示させたりもできる。

すべてはページ、ページにはコメントができる

2021/09/02追記: 執筆時点では「すべてがページ」だったはずなのだけれど、仕様が変更されたのか、データベースとページは別物になったよう。仕様としてどうなのかは確認したい。 )

さて、データベースの形がなんとなく分かったら、あとはページだけなのだが、ページはWikiのように構造的に文章を書いていくことができ、他のテーブルをインラインで表示することができる。言ってしまえばこれだけ。

f:id:funatsufumiya:20201129225635j:plain

Wikiなので他のページへのリンクを貼ることができ、YouTubeなどを埋め込み表示させたり、Webサイトをカード式に表示させることもできる。

f:id:funatsufumiya:20201129230334j:plain

テーブルをインライン表示できるというのがとても強力で、手帳のようにカレンダーを表示させつつタスク一覧を表示させるということができる。

f:id:funatsufumiya:20201129225854j:plain

また、ページにはコメントができるので、気になったことはそこで議論していくこともできる。

f:id:funatsufumiya:20201129230552j:plain

ページ × データベースの最強タッグ

さて、先程 データベースもページ と書いたが、実はデータベースの一つ一つの行や、そのデータベース自体もページである。

f:id:funatsufumiya:20201129230825j:plain

ということは、データベースのアイテムにはコメントを書くこともできれば、ページとしてWikiを書くこともでき、インラインデータベース表示を使うこともできる

これがNotionのすごいポイントで、例えばタスク一覧としてテーブルを作ったならば、そのタスクについてのコメントを書いていくこともできる。例えばプロジェクト一覧のテーブルには、書くプロジェクトのタスクやカレンダーをそれぞれ記載することもできる。

Wiki・コメント・データベースが全て階層的にどんどん使っていけるので、イマジネーション次第でどんな使い方にでも応用できるし、あるページ・データベースのからテンプレートを作れるので、別のページにどんどんそのテンプレートを適用していくことができる。

これが、Notionがどんなことにでも応用できる理由で、「全てがページとデータベース、データベースはページという」シンプルな特徴の凄まじい応用性を垣間見ることができる。

装飾をつけていくのではなく構造を作っていく

Notionのもう一つ大きな特徴は、基本的に装飾はあまりいじることがなく(一応変更もできる)、構造を変更していくということ。

ここがWordやExcelとは大きく異なるポイントであり、ページとデータベースに共通している特徴である。

f:id:funatsufumiya:20201129232045j:plain

例えば、MarkdownやHTMLといった言語は、基本的に構造だけを記述して、スタイルはCSSで書いていく。それと全く同じ考え方で、ページやデータベースには構造だけを記述して、見え方はNotionが素敵にデザインして表示してくれる。

Notionはダークモードとライトモードに表示を切り替えることができるのだけれど、表示切り替え時にこうした特徴が生きてくる。装飾ができないといっても、太字や斜線などの意味的要素は使用できるし、色分けなどは可能。

ちなみに、データベースがいろんなビューに切り替えて表示できるという部分にもこの哲学をみることができる。

構造とビューの分離という点が、Notionのデザインの一貫性を保っている部分であり、複数人で使っても美しく保てるポイントなのかもしれない。

フォルダは存在しない

なお細かい部分だが、Notionにはフォルダはなく、全てがページ。この点もWikiに似ている。

階層を作っていくときは、ページの下に新しいページを作るのだが、箇条書きで適当に書いていった文章の一部を、あとからページに変更することもできる。(Turn Into Page機能)

f:id:funatsufumiya:20201129233632j:plain

このTurn Into Page機能は非常に便利で、例えば箇条書きで何かを書いていると階層が深くなって困ることがあるが、そういうときにページに変更するととても便利。また、データベースを利用することもできるので、あまりに箇条書きの要素が多く、分類していきたくなった場合などに便利だ。

まとめ: シンプルな設計の掛け算の柔軟性

さて、Notionの設計を早足でみてきたが、基本的な構造はこれ以上でもこれ以下でもない。とてもシンプルだ。(今回はチーム機能については解説していないのでまた次回。)

あえて補足するならば、ビューについては紹介しなかった写真ビューなどいろんな種類があり、Wikiの文書構造もチェックボックスや開閉箇条書き (Toggle) など、覚えきれないほどの種類がある。

Notionはベースの設計は非常にシンプルだが、その上に乗っかる要素は様々な種類があり、それらは相互に変換可能 (Turn Into機能) で、データベースであれば後からフィルタリングができるというのが素晴らしい。

応用可能な範囲が非常に多いため、使う人やチームによって全く違う設計が可能という点が面白い。ただその表現力の分だけ、新しくNotionに参加する人にとっては、学ぶべき要素は多いかもしれない。

似たような機能も複数あったりすることから、チームで使う場合はルールを決める必要もでてくるかもしれないが、まず自分の慣れたやり方から作っていくことができるというのも、Notionの柔軟性かなと思う。