How we use Notion to manage the curriculum of our signature course: Notion Mastery

Notion Mastery is unique in that we teach folks how to use Notion, while employing Notion as our course delivery platform, and managing all our curriculum and course operations in—you guessed it—Notion.

I’ve written before about using Notion to host your course and how we manage our Course Ops using Notion. This post will share a behind the scenes look at how we manage our curriculum.


Notion Mastery’s beta program was launched in the fall of 2019 and quickly grew from there. Our curriculum has evolved and expanded a lot in the last three years. This growth happened organically, as we continuously created new content to address the wide variety of use cases our growing student body were interested in, as well as cover the new and changing Notion features being released.

What didn’t quite keep up with that growth were the systems we were using to manage our course content.

Notion Mastery is made up of over 100 Notion pages and in early 2022 it became very apparent that improving the Notion infrastructure we were using to manage our content was going to be essential. This was made ever more obvious when Notion announced they would be launching the “Better Databases” feature. We needed an efficient way to know which lessons taught about using databases and what assets were used to demonstrate this, so we would know exactly what needed to be updated once the new feature was launched.

Managing the curriculum

Here are the three databases we rely on to manage our course curriculum:

Lessons Database

This database contains one entry for every page in our course (currently over 100 pages!). There are a few main views that we use:

👀 Curriculum View

In Notion Mastery there are 4 Levels with 4 Tracks to explore, followed by a series of side quests & rabbit-holes that guide you through more specific and niche use cases for Notion. This table view groups the lessons by Level and is sorted so that the order of lessons matches the order of the lessons in the course. We refer to this view to get a big picture overview of the status of each lesson, who is assigned to write a lesson or review it, and quickly link to the live lesson using an @-mention of the live lesson page.

Curriculum view grouped by “Level”

👀 My Stuff

Grouped by status, this table view is filtered to show only lessons where the person viewing is assigned as creator or editor. It shows any lessons that Need Attention, Needs Review or where the status is Future Lesson. Any of our team members can check out this view to get direction about what their next curriculum related steps are.

“My Stuff” view filter to show my work and grouped by status

👀 Triaging

This view is another that let’s us know what the quickest wins are in terms of making curriculum updates or writing new content. It’s grouped by Status, with only the most urgent statuses showing:

  • Needs Attention (lessons that need an update)
  • Next Up (the first priority for writing a new lesson
  • Future Lesson (ideas we have for new content or requests that have come from students)
What needs attention? What’s coming up?

📝 Lesson Entries

When you open up each lesson entry you’ll find a ton of properties as well as a linked database in the body. The properties we refer to most:

  • Lesson link (a mention of the live lesson page link)
  • Lesson status
  • Notes (this is where we can jot down any updates or changes we want to make)
  • Reviewer (when a lesson is added or updated, a reviewer is tagged here – once the lesson is published we remove the reviewer until the next time)
  • Level (select and relation)
  • Track (select and relation)
  • Type (lesson, activity, milestone, resource)
  • Time est. mins (an estimate of the time it will take to complete the lesson – this shows up at the top of our live lesson pages)
  • Relations to two databases (more about these below!)
    • Assets
    • Skills (we differentiate between skills taught in a lesson vs skills applied in a lesson)
  • A checkbox to track if the lesson assets have been catalogued in the Assets database
Example of an entry in the lessons database.

In the body of each lesson entry we have a linked Assets database so we can easily see all the photos, gifs, and videos that a lesson includes, from within the lesson entry itself. This makes for a smoother workflow when publishing a new lesson, which I’ll get into in a bit.

Assets Database

There are currently over 900 assets live in the course 🤯 and this database has greatly improved our workflows when it comes to updating content!

We added this database to our curriculum management infrastructure in advance of Notion’s Better Database roll out. We realized our course had tons and tons of assets and at that time we had no way of knowing what each asset depicted and where it ‘lived’ in the course! It took some initial work to get set up, but those hours have 100% been worth it for the way it’s enabled us to easily identify outdated assets and efficiently make updates.

If you’ve used Notion for a while, you’ll know that it’s everchanging. New features are constantly being released and often this comes with a change to how Notion looks. Every time the Notion interface changes significantly, it necessitates a mass update of the assets we’re using to demonstrate how to use Notion.

If you used Notion before Better Databases were released, you may remember the old database interface. It was vastly different from what we have now! You can imagine the effort it took to update all of our course assets to depict the new interface (days!). Doing that would have been nearly impossible if it hadn’t have been for our Assets database.

Every asset in the course is cataloged in this database. For each asset we fill in the following properties:

  • Uploaded / Live (check off if the asset is live in a lesson)
  • Remove it (checked off if it’s an asset we are no longer using)
  • Active lesson (relates to the appropriate entry in the lesson database)
  • Link to block (this links to the exact block where the asset is located)
  • Workspace (we have a variety of workspaces that we take screen caps from so this let’s us know which one we used)
  • Source DB shown (which database is shown in the asset)
  • Version (this property can be removed soon – this is how we were tracking whether an asset showed the ‘old databases’ or the ‘new’ better databases!)
  • Type (screenshot, gif, video etc.)
  • Core skill taught (this relates to the skills database – a skill is added if the asset is demonstrating a specific Notion skill)
Example of an entry in the assets database.

The properties above support us to maintain our collection of assets. Most helpfully, we can group by skill which makes it much easier to update assets when the Notion UI changes. When the database relation UI changed recently, we could easily see all the assets that taught how to set up a relation and update them.

Assets database grouped by skill.

When we identify images that need updating, we know exactly what workspace and database(s) we should use to create an updated version. And, when we’re ready to swap in an updated version we can click the link to the exact block where the current asset is and change it.

Any assets that we are no longer using in the course get checked as “Remove It” and periodically I visit the “Send to Archive” view of the Assets database so I can remove those items from our collection.

Send to archive view of assets database.

Skills Database

This database only includes a handful of properties:

  • Two relations to the Lessons database (we differentiate between teaching and applying a skill)
  • Relation to the Assets database
  • A rollup that tells us what Level(s) a particular skill is taught at
Example of an entry in the Skills database.

By differentiating between the lessons in which we teach a skill versus the lessons in which we apply a skill, we can make sure that:

  • All skills are accounted for and taught somewhere in the course
  • Lessons build on one another in a way that makes sense
    • we don’t have to repeatedly teach the same skills, but
    • we are also never applying a skill until it has been taught sufficiently
Skills database in table view.

We can see at a glance what skills are being taught at each level. We utilize this when we are adding new lessons to the curriculum and trying to decide what level to assign to the new lesson and in what order to place it. By comparing the skills taught and applied in the new lesson to those of other lessons in the course we can make an assessment about where is best for the new content to be.

This database also helps us when a Notion feature is added or updated. We can look up the relevant skills that are effected by the addition or change and discern what lesson content and assets will need updating as a result.

Publishing a New (or updated) Lesson

How does this all work together as we publish a new lesson or update existing ones? The process is pretty similar in each use case, so let’s use a new lesson as an example:

When we have an idea for a new lesson (or our students request a specific topic), it’s added to the Lessons database with the status “Future Lesson”. Marie writes almost all of our curriculum (aside from our Formula Fundamentals side quest which was written by Ben!) so, she is usually tagged as the Assignee.

When Marie’s ready to write a new lesson, she’ll update the status to “In Progress” and create a new page on a dashboard we have called “Curriculum Work In Progress” (a Notion page, with the pages of any in progress lessons nested on it).

Once the lesson is ready for review, the status is updated to “Needs Review” and I’ll be tagged in.

I have a linked view of the Lessons database on my work dashboard, filtered to show lessons that need review, so they will always pop up there and then I can take action.

Example of an entry in the lessons database.

To begin, I open up the lesson’s entry in the Lesson database. As I read through the lesson, I:

  • Review for typo’s, grammar, clarity, etc.
  • Relate the lesson to any skills that are taught or applied, and,
  • Catalogue all of the assets included in the lesson in the Assets database linked in the body of the entry.

Once this QA and connecting of relations takes place, I check off Assets updated, remove my name from the Reviewer property, change the status to Complete, and the lesson is ready to go live!


Notion was not created to be a course platform so when it comes to the front-end student experience, or the back-end team experience, you have to build specific infrastructure to make it work the way you want it to. The addition of our lessons, assets and skills databases have vastly improved the processes we follow to add and maintain course content and keep our curriculum current with Notion’s ever changing UI.

Share This Post

Sign up to get updates

    Master your life and business workflows with Notion.