Build your own application "Lego set" with object orientation and Notion

If everything in life came packaged as a Lego set, we would all be a little bit happier. Imagine opening up the Lego set for your favourite social media platform; what would be inside? I would give you a minute to think about it—but if we jump ahead, we probably end up with a list of objects. We might have our posts, stories, and a profile. These objects are less about doing something and more about describing something.

This way of thinking relates heavily to a newly conceptualised process known as ORCA, which was created by Sophia V Prater and is part of the wider OOUX (object-oriented user experience) framework.

Object orientation

So what are objects? Well, they are the things that we should care about the most. They are the most simple concepts around us. We act on them or have a viable interest to succeed with them. To put it simply, we need to focus on the nouns first before mapping the actions on them.



By breaking down something into a list of objects, I would bet that we’ve just made the whole thing a lot more easy to digest. In this piece, we can go on a short journey and try taking the principle of object orientation and and build something from the ground up.

Notion and objects

So where does Notion come into play? Notion will be our enabler. As a productivity application, it gives us the ability to take our objects and place them into working databases. The beauty of databases is that they allow us to create relationships—meaning that we will end up with a connected system that can help solve our problems.

Like a lot of things that you create, the better the planning, the better the outcome. Notion can store, grade, track, combine, ideate, and aid collaboration for pretty much any aspect of your life. This leaves a lot of possibilities. This, combined with Notions’ many features, can lead to messy applications that don't help your day-to-day problems. We can help this by breaking down our problems into bite-sized "objects".

Step 1: Figuring out what to solve

First, you need to find your problem to solve. Where do things have the potential to improve? It could be your time management, your tasks, or even tracking your fitness goals.

You could help yourself by thinking about when, what, and why your problems are occurring. Is this problem a simple one? Could it be solved by flicking a switch (i.e., sending a reminder) or by a longer-term journey?

Notion is more adept at solving complicated problems rather than simple ones. If your problem is long-term and lacks a ‘yes’ or ‘no’ outcome, then you’re in the right place. An example that fits this description could include:

“I can’t manage the quantity of tasks very well on a day-to-day basis. I can’t prioritise without a holistic view of what’s on my plate.”

“I’m struggling to keep up with which gym routines are working for me. I can’t see how well I’m performing.”

Step 2: Breaking down problems into objects

From this point on, let's use this problem as our working example:

"I lack a space to journal about my goals. I want to do this weekly, but I have multiple goals I want to track progress against."

We can start by identifying something quite basic. If you were to open the Lego set for your problem, what would be inside? What are the things that make up the problem? Strip back any specifics, like actions or outcomes—we just need the raw components.

From our problem, we can find two such things: a JOURNAL ENTRY and a GOAL. We will refer to these two as our 'objects' from this point onwards.



Next, let's connect our objects together. Although our problem focuses on just two objects, we could connect as many objects as we needed to. This is a vital part of building a solution. Visualising the relationship between our objects is essential for understanding what our solution will do. It will determine what role our building blocks will play.

So, how is a JOURNAL ENTRY related to a GOAL? The crux of our problem is the requirement to track our progress against one or multiple personal goals. This means that a journal entry should have a one-to-many relationship with a goal.



One journal entry can be associated with one or more of your personal goals. Conversely, a goal can be associated with multiple journal entries.

Step 3: Planting objects into Notion

Both of our objects will have various instances of themselves, and each instance will share common attributes. For example, a JOURNAL entry will be created regularly and will always have a date. Considering this, a database per object will be the best way to house and manage them. The two databases we set up for each object will serve as the building blocks for our Notion solution.

Micro step 1

The first step is to create a page within Notion. This page will serve as the space where our databases will be located and where we can create actions and useful views of our housed data.

Micro step 2

Let's create a new page for our JOURNAL ENTRY database, then insert a database as a full page. To start, we can create an example entry. From any entry, we can populate attributes that apply to each entry in the database. Now, we need to ask which attributes will be important for defining our JOURNAL ENTRY object.

As an example, a journal could have:

  • a date to mark when an entry was made
  • a completion status (Started, Complete)

A GOAL database can be set up in the same way, using a separate full-page database.
A GOAL will have:

  • a start date
  • a due date to track against
  • a progress status (Off track, On track, Complete)



Micro step 3

Now it's time to establish the relationship between the two objects as we mapped earlier. Whenever we want to create a JOURNAL ENTRY entry, we can choose which GOAL(s) we want to write about. By doing this, we will be able to view entries per goal and track our progress effectively.

To do this, we need to set up a relationship property. Whenever we select a value from this property, we should be able to see all of our goals and add as many as we want to the JOURNAL ENTRY entry.



Micro step 4

Consider the core components that define our objects. Will a JOURNAL ENTRY entry always include a summary section? Will a goal always have a list of requirements? These components will serve as the templates for creating new instances of journals or goals.



Finishing touches

Our problem was concerned about weekly journalling against our goals. As a week won’t contain an instance of a JOURNAL ENTRY and a GOAL, we can treat a working week as a categorisation of journal entries (i.e. ‘week 42’ contains X journal entries). We can also add formulas to show how many journal entries each goal has. This way, we can see what we’re keeping up with and what’s falling by the wayside.

Introducing the ORCA process

So what have we done here? We’ve actually brushed on the steps that make up ORCA (Objects, Relationships, Call to actions, Attributes). The ORCA process fits nicely into the double diamond design process. This can effectively become a ‘third diamond’ between research and design. In our micro ORCA process, we’ve made sense of our problem by breaking it down into building blocks and used the objects we identified to construct meaningful databases.


The complete ORCA object map for our Notion application.


Notion is a great place to start with ORCA. As we’ve seen, objects, relationships, and attributes translate neatly into databases. Determining the practical structure of a database from our everyday understanding of the objects around us can inform valuable applications in Notion.

As a bonus, here is the Goals and Journal Notion application for your own use. Just create a duplicate!


Previously from Stephen:
Can user experience strategy and sustainable web design go hand-in-hand?

Learn more about ORCA and OOUX: