Documentation

Notion Fundamentals (with a builder’s mental model) 🧱✨

TL;DR: Think of Notion as LEGO for information. Everything is a block. Blocks make pages. Some pages become databases. Databases hold records (which are also pages), each with properties. You connect databases with relations, summarize across those links with rollups, and compute values with formulas. Views (table/board/calendar) are just different lenses on the same data.


1) The Architecture: how Notion fits together 🧭

Workspace
└─ Page (can nest sub-pages)
   ├─ Blocks (text • headings • lists • callouts • embeds …)
   └─ Database (a special page that stores many pages/records)
      ├─ Record = Page (each row opens into its own page)
      ├─ Properties (Title, Select, Multi-select, Date, Person, Files, Number, Formula…)
      ├─ Relation (links records to another database)
      ├─ Rollup (aggregates through a Relation)
      └─ Formula (calculations using properties)

Key idea: In Notion, a database row is a full page. That’s why you can open a row and write rich notes, add images, or embed files right inside it.


2) Pages & Blocks: your canvas and building pieces 📝

  • Pages are containers. They can hold freeform content and databases.

  • Blocks are the atoms: text, headings, checklists, toggles, tables, callouts, code, images, embeds, and more.

  • Pro tips:

    • Use / to insert anything fast.
    • Use @ to mention people, pages, or dates (handy for quick reminders).
    • Nest pages for structure; don’t over-nest—2–3 levels deep is usually enough.

3) Databases: structured pages with multiple lenses 📚

A database is a collection of records (rows). Each record has properties.

  • Views: Table, Board (Kanban), Calendar, Timeline, Gallery, List. Same data, different lens. You can filter/sort/group per view.
  • Linked Database: /Create linked view of database gives you a remote view of a database elsewhere. It’s the same data—filtered and formatted for the local context. Think “report, not a copy.”

Common properties you’ll use a lot:

  • Text, Number, Select, Multi-select, Date, Person, Checkbox, URL, Files & Media
  • Formula (computed), Relation (link to another DB), Rollup (aggregate across a Relation)

4) Relations 🔗: connecting your data like tables

A Relation links one database to another (or to itself for advanced patterns).

  • One-to-many (e.g., one Project → many Tasks)
  • Many-to-many (e.g., TasksTags or TasksSprints)

When you add a Relation, Notion optionally creates a backlink in the other database—useful for navigation.

Practical example

  • In Tasks, add property Project (Relation → Projects).
  • Open a task → set Project = Website Redesign. Now that task shows up in the Project page too.

5) Rollups 📊: summarize through a relation

A Rollup reaches through a Relation and aggregates: Count, Percent checked, Earliest/Latest date, Min/Max/Avg number, or Show unique values.

Examples

  • In Projects, add Progress % (Rollup)Relation: TasksProperty: Done?Calculate: Percent checked.
  • Add Next due date (Rollup)Relation: TasksProperty: DueCalculate: Earliest date.

6) Formulas 🧮: compute and label intelligently

Formulas make your system smart. A few patterns:

Status cues

if(prop("Status") = "Blocked", "🛑 Blocked",
  if(prop("Status") = "Review", "🧪 Review",
    if(prop("Status") = "Done", "✅ Done", "🚧 In progress")
  )
)

Overdue / Due soon

if(prop("Status") != "Done" and now() > prop("Due"), "🔥 Overdue",
  if(prop("Status") != "Done" and dateBetween(prop("Due"), now(), "days") <= 1, "⚠️ Due soon", "")
)

Pretty progress bar using a percent rollup

concat(
  slice("▓▓▓▓▓▓▓▓▓▓", 0, floor(prop("Progress %") * 10)),
  slice("░░░░░░░░░░", 0, 10 - floor(prop("Progress %") * 10)),
  " ", format(round(prop("Progress %") * 100)), "%"
)

7) A tiny PM schema to learn-by-doing 🛠️

Databases (create these 3):

  1. Projects
  • Properties: Client (Select), PM (Person), Status (Select: Planning/In Progress/Blocked/Review/Done), Start (Date), End (Date), Health (Select: 🟢/🟡/🔴), Tasks (Relation → Tasks), Progress % (Rollup from Tasks→Done? → Percent checked), Repo URL (URL), Notes (Text)

  • Views: Portfolio (Table) with Health, Progress %, Next due task. Roadmap (Timeline) grouped by Client.

  1. Tasks
  • Properties: Project (Relation → Projects), Assignee (Person), Status (Select: Inbox/Next/Doing/Blocked/Review/Done), Priority (Select: P1/P2/P3/P4), Due (Date), Estimate h (Number), Time Spent h (Number), Done? (Checkbox), Done at (Date, manual or via button)

  • Views: Board by Status, My Focus (filter Assignee = Me & Status ≠ Done), Calendar by Due.

  1. Meetings/Notes
  • Properties: Date (Date), Project (Relation → Projects), Attendees (People), Decisions (Text), Actions (Relation → Tasks)

  • Template (for new meeting pages): Agenda, Notes, Decisions, Action Items (use inline DB or buttons that create Tasks linked back).

Add the progress bar in Projects

  • Use the Progress bar formula shown earlier. Instant visual portfolio health.

8) Views, filters, groups: your control center 🗂️

  • Table: best for editing properties in bulk.
  • Board: perfect for status pipelines and sprints.
  • Calendar: deadlines and ceremonies.
  • Timeline: roadmaps and Gantt-like planning.
  • Group and Filter to create focused working surfaces (e.g., “This Week”, “My P1s”).

Good practice: Create a Home page with linked views:

  • “This Week” → Tasks (Assignee=Me, Due ≤ next 7 days).
  • “Active Projects” → Projects (Status=In Progress; show Health + Progress).
  • “Meetings Today” → Meetings (Date = today).

9) Database templates: consistency at scale 🧩

Each database can have one or more Templates that pre-fill properties and content blocks.

  • Project template: default Status=Planning, a callout with “Definition of Done”, a checklist for kickoff steps, and linked views (Tasks filtered to this project).
  • Task template: default Status=Inbox, include a short “Checklist” block for Definition of Ready.

10) Permissions & sharing: safe collaboration 🔐

  • Share at the page (and sub-page) level.
  • For client work: keep an internal “Ops” area, and a client-facing Project page with filtered linked views of Tasks/Meetings. Guests see only what you share.
  • Avoid giving guests access to your full Tasks DB; share a filtered linked view instead.

11) Common gotchas (and quick fixes) 🧯

  • “Why can’t I edit here?” You’re on a Linked Database with filters or a locked view. Open the original database or unlock the view.
  • Duplicate databases Use linked views instead of creating multiple lookalike databases. One source of truth, many views.
  • Messy properties Standardize naming (e.g., Due, Done?, Priority, Assignee) across DBs to simplify formulas and rollups.
  • Over-nesting pages Prefer databases + filters over deep page trees. It scales better.

12) Keyboard quickies & habits ⚡

  • cmd/ctrl + P: Quick Find
  • cmd/ctrl + shift + L: Dark mode
  • / then type: insert anything
  • Daily rhythm: AM Triage (process Inbox) → Deep Work (live in Focus views) → PM Review (tick Done?, log Time Spent).

13) Glossary in one breath 📘

  • Block: an individual content element.
  • Page: a container of blocks; can also be a DB or DB record.
  • Database: a collection of records (which are pages) with properties.
  • Relation: property that links records across databases.
  • Rollup: property that summarizes data through a Relation.
  • Formula: computed property.
  • Linked Database: a view of a database that lives elsewhere.
  • Template: a prefilled layout for new records.

Wrap-up

Start with three databases (Projects, Tasks, Meetings), link Tasks → Projects, add a Progress % rollup + Progress bar formula, and build a Home dashboard with linked views. That’s 80% of Notion’s power for project management—already in your hands. 🚀

If you want, I can turn this into a ready-to-import “starter kit” (property lists + sample templates) or tailor examples to SeriousDesign/ProtonSystems workflows.

Contents