Skip to content

🧩 Object-Oriented Design

What makes Notion special? Yes, it’s known for its dashboards. But most people set up folder hierarchies and don’t take advantage of it’s best feature: relational databases.

Michael Dean
Michael Dean
7 min read

It seems like more and more people I come across are looking into Notion. They're considering going "all in" on it. How can you go all in on an app? Notion is unique because it is an open-ended tool that can replace all of your other apps. Instead of silos of information (tasks in one app, events in another), Notion let's you create an ecosystem for everything. I came across Notion in November of 2019. I ditched Evernote, ToDoist, Trello, and Google Calendar in the pursuit to design a "personal operating system" for myself.

Most productivity apps give their users a straight-forward interface. They mimic Apple's design ethos, and aim to make something work for the average user. Notion is the opposite. "Here, design your own operating system from scratch!" It is a power-users dream. Notion gives you the ability to design both the databases and the interfaces for the information in your life. And the kicker is that it's a "no-code" tool, meaning you don't need any programming knowledge to do this.

There is a challenge though. Since Notion is limitless. It requires us to reflect on the "ontology" of the information in our life.

An image of what you find when you google "ontology" (boxes and arrows)

Instead of just capturing or recording data (like in Evernote), we have to reflect. We have to build awareness of the patterns and relationships of our data, make design assumptions, and then test them over time. Just because we can build a system, it doesn't mean the systems we build will be well-formed. This is a barrier for those looking for a "quick-start." Notion does have templates to help you get going, but it's true power as an operating system can't be reached without understanding how this new paradigm works.

I have a background in architecture and building design, which informs the way I approach "information architecture." It also gives me the patience and focus to adjust the design of my OS over the course of many months. Over the last decade, "BIM" (Building Information Modeling) has emerged as a new paradigm for how architects build 3D models of buildings. There are many parallels between BIM and Notion.

In BIM, objects have intelligence. You would never model 300 individual doors through a project in Revit (a software for BIM). That would make it very frustrating if you wanted to change something as simple as the door knob. In BIM, there is a kind of hierarchy of meaning. At the top level is a category (a door), and at the lowest level is an instance (each individual expression of a door).

Notion works in a similar way of categories & instances. Consider these three endeavors: 1. Launching a book club, 2. Interviewing family members to build out a family tree, and 3. Making a presentation for work. It might be tempting to make a custom dashboard for each initiative. But each of these can be an entry within a "Project" database. Each one has a purpose, an end-date, people involved with it, and a series of associated to tasks, notes, or events. Since all of these projects exist in a database, we can create views that allows to quickly comprehend the whole system, not just a local part.

At it's core, Notion is bringing "object-oriented" programming to the masses. Object-oriented programming was a concept that emerged in artificial intelligence research groups in the 1960s. It defines a system as a series of distinct objects, each one with it's own set of attributes and methods, with the ability to interact with other objects. It formalized into C++ in the 1980s. It took on a three-dimensional form for architects in the 2000s. And now Notion creates a simple way for anyone to use object-oriented "no-code" to help them make sense of the abundance of digital information.

Even though Notion has open-ended flexibility, my thinking is that there is a series of primitive "categories" that most people use. All of these categories may have relations to other categories in a somewhat universal way (in the sense that a door is ALWAYS on a wall). The best habit to pick up is to treat your information (whether it is a note, an event, a person, or a journal) as an instance within a category. Here's a diagram of my latest Notion architecture.

What I'm aiming to build is a framework around how we can best make use of Notion to manage information and improve our life. Something like this called "PARA" emerged in 2017 from Tiago Forte. It stands for "Projects, Areas, Resources, and Archive." Even though it was built in Evernote, it acts as a general framework that is software-agnostic. But my take is that PARA is best-suited for apps in a folder-based paradigm. Notion has an "object-oriented" paradigm that warrants a new way of thinking.

We're used to thinking in folders and tags. We're used to thinking that notes can only exist in one place at a time. We're used to apps that provide us with fixed parameters, functions, and relationships. Many people approach Notion with old habits. They get excited to create their own visual dashboards, but it's tough to conceptualize an object-oriented architecture that can house all of our information. There are some new concepts that need to be learned in Notion to fully take advantage of it: databases, views, relations, roll-ups, linked databases, and formulas. While a general purpose OS-template is possible, it's still helpful to know the basics.

I've tried and tested many Notion architectures over the last year. The system has failed multiple times, but it always gets rebuilt based on the lessons learned from the last iteration. Sometimes it was frustrating, and it felt like I was tinkering away into a productivity black-hole (instead of getting work done). But over time, I've learned to value simplicity, and to orient information around "objects." I feel like I've arrived at a place where I can, 1) design and build a general purpose and adaptable operating system, and 2) teach principles on how to best make use of Notion's new tools.

Here's my attempt to summarize the framework I'm building.

An architecture of Input and Collector databases allows us to enter data rapidly and then retrieve it in the right context.

An input is a primitive form of information: a task, a note, an event, a habit. You could have more granularity in your inputs (notes could be broken into podcasts, book notes, ideas, etc), but I've always found value in keeping it as simple as possible. The biggest advantage in using Inputs is how fast you can enter data. Many people think Notion is clumsy because you have to navigate to a specific dashboard to enter information. By pinning an input database to favorites, it becomes very fast to add something (on both desktop and mobile). When you click the plus sign, it also opens a pop-up, allowing you to enter any critical pieces of meta-data. Most importantly, you want to link it to at least one Collector, so the input has a purpose.

Collectors are where inputs are aggregated. It helps to think of collectors as "context-specific." Collectors are recurring situations you find yourself in (writing, executing, searching, planning, repeating). By associating inputs with collectors, you can get access to the exact information you need when a certain situation arises. Some examples:

  • Tasks are gathered into Projects, so when you sit down to work on something, all the tasks you jotted down in the past are waiting for you.
  • Notes can be gathered into Posts, so when you sit down to write an essay, you have reference material already assembled.
  • Notes can be gathered into Tags, which will help you find information when you search for it 6 months from now.
  • Notes can be gathered into a Journal, for you to look back on your thoughts from the last week/month/year.
  • Habits are gathered into Flows, which help you bucket certain routines at a certain time of day.

I have daily and weekly habits that check for "loose" inputs. Inputs entered without an assigned collector exist in limbo. They have a habit of never surfacing again. If you don't put an input into a tag, project, journal, flow, or post, then why capture it in the first place? There is a minimal amount of maintenance that's useful for any system. Let's think in building metaphors again. You can't erect a structure without considering how it will be maintained and operated over time. A digital note-taking system wouldn't be complete if it didn't come with quick and worthwhile habits to make sure everything functions to your benefit.

My goal for the year is to post at least once a week about an object-oriented framework for Notion. At some point I'd like to start an email list and build a community around people who are interested in this. I'm not sure yet if I want to sell a template, launch a course, or consult people on building their own. That's a lot of work. I see Notion as a means to an end, not an end in itself. But I think there are a lot of people who would benefit approaching Notion this way, and I realize that I might be in a good position to teach it and spread it. I'm open to pursue Notion in a more public venture if there is an opportunity that makes sense.



Related Posts

Members Public

📩 One-click Distribution

Hello world! This is the inaugural edition of Dean's List. I've decided to transplant both my website and newsletter into Ghost (this will surprise those who know me as "the Notion guy.") Sounds drastic. It is, but let me explain.

Members Public

✉️ Newsletter Junkyard

We're in a newsletter arms-race. What happens when everyone has one and they all sound the same? Overwhelm, skimming, and email fatigue. The old tricks around niches & weekly streaks are becoming predictable. What makes a newsletter exciting to open each time?

Members Public

🗒 The Myth of Compounding Notes

A long-term horizon around "the note" leads us to worship inputs. We often feel the need to create perfect constellations of notes before we start. Instead of notes to serve us in 5-10 years, what if we accept that they expire in 3 weeks?