top of page

How to Build a Gamified System in Notion (Step-by-Step)

  • Writer: Lux Seminare
    Lux Seminare
  • May 20
  • 4 min read

How to Build a Gamified XP System in Notion (Step-by-Step)

Ever wanted your Notion workspace to feel more like an RPG? Where completing tasks gives you XP and you level up as you make progress?


I spent days building this part of my devhub system, so you don't have to. Here's how to create it from scratch.


What We're Building


By the end of this tutorial, you'll have:


  • ✅ Tasks that award XP when completed

  • ✅ A character sheet showing your level

  • ✅ A progress bar

  • ✅ A Completion Badge


TIME TO BUILD: 30-45 minutes


The Concept


The basic flow:


  1. Complete a task → Earn XP

  2. XP accumulates → Level increases

  3. Progress bar shows how close you are to completing the task

  4. Completion Badge - your reward for finishing the task.


Simple, but effective for motivation.


Step 1: Create your Task Database


  1. Create a new page in Notion. Give it a title.

    A new, blank page in Notion with dark mode enabled. The title "Gamified System" is being typed at the top left, and a contextual action bar at the bottom displays option buttons such as "Ask AI", "AI Notes", "Database", "Form", and "Templates".
  2. Create a new database then name it "Task". Table view works best.

    The user is typing the command "/table v" into a Notion page, prompting a pop-up menu that highlights "Table view - Database" under filtered results. A preview card on the right displays a sample table data layout with names and status tags.
    A newly created full-width database table titled "Task" in Notion's dark mode. The table shows a default column header named "Name" alongside an option button labeled "+ Add property" to customize the database fields.

  3. Properties you need:

    1. Title (Default)

    2. Status (Select)

    A close-up view of the Notion database header where the title "Task" is being finalized. The cursor is active at the end of the word, and the "+ Add property" configuration button sits directly to the right of the primary "Name" column header.
    The property type selection dropdown menu in Notion. The "Select" field option is highlighted under the main list of data types, which also includes Text, Number, Status, Multi-select, Date, and Person.
    A focused look at a text input box in Notion where a database column property is being renamed to "Status". The field is outlined with a blue selection border.

    3. Priority (Select)

    A close-up view of the column header section in a Notion table database, focusing on the small "+" button used to quickly append a new property column to the right of existing data.
    A property creation menu in Notion with the name "Priority" typed into the top label field. The property type dropdown is open below it, showing "Select" as the chosen format.

    4. Assigned to (Person - Optional)

    The property creation interface in Notion with the name "Assigned To" entered at the top. The option menu is displayed below, showing the recommended quick-select types.

    5. Progress (Formula)

    The data property dropdown selection menu in Notion with the column title customized as "Progress". The "Formula" property type is highlighted near the bottom of the list, indicating a calculated value field is being added.

    6. Badge (Formula)

    A property configuration dropdown menu in Notion with the property name "Badge" typed into the top field. The "Formula" property type is highlighted in the selection list below, indicating that a custom formula field is being set up.

    7. Task Value (Formula)

    A database property dropdown menu in Notion with the property name "Task Value" typed at the top. The "Formula" selection type is highlighted in the menu options below it, showing a custom formula calculation field is being configured.

    8. XP Earned (Formula)

    A property creation menu dropdown in Notion with the field name "XP Earned" entered at the top. The "Formula" data type is highlighted in the selection list, indicating a formula field is being created to handle calculation values.

    9. User (Relation)

    A property creation menu dropdown in Notion with the field name "User" entered at the top. The "Relation" database property type is highlighted near the bottom of the selection list, indicating that a cross-database link is being established.

    10. Is Done? (Formula)

    A property creation menu dropdown in Notion with the field name "Is Done?" typed into the top label. The "Formula" property type is highlighted in the selection list below, indicating that a custom calculation field is being created.
  4. Status Options (You can customize):

    - To Do

    - In Progress

    - Done

    - Blocked

  5. Priority Options (You can customize):

    - Low

    - Medium

    - High

  6. Progress Bar Formula (You can customize the progress bar):

    if(


    Status == "Done", "100% ██████████",

    if(


    Status == "In Progress", "50% █████",

    if(


    Status == "To Do", "0% ░░░░░░░░░░",

    if(


    Status == "Blocked", "Blocked",

    "0% ░░░░░░░░░░"

    ))))

  7. Badge Formula (You can customize the text and style):

if(Status == "Done", "🌟 Task Mastered!".style("c", "b", "green", "green_background"), "")

  1. Task Value Formula (You can customize the XP value):

    if(Priority == "High", 10, if(Priority == "Medium", 5, 1))

  2. XP Earned Formula

if(prop("Status") == "Done", prop("Task Value"), 0)

  1. After you create your User Database, relate the User property to it.

    - Related to: User

    - Limit: No limit

    - Two-way Relation: On

  2. Is Done Formula

if(Priority == "High", 10, if(Priority == "Medium", 5, 1))


Step 2: Create your User Database

  1. Create another database then name it User. Set it up on table view first.

  2. Properties you need:

    - Title (Default)

    - Tasks (Relation) (If you already created the User property on the Task Database, then skip this).

    - Tasks Completed (Rollup)

    - Tasks XP (Rollup)

    - Tasks Completion (Formula)

  3. Click "New Page" on the database then put your name or anything under the title property (e.g. Lux Seminare).

  4. Tasks Completed Rollup Setup

    - Relation: Task

    - Property: Is Done?

    - Calculate: Count → Checked

  5. Tasks XP Rollup Setup

    - Relation: Task

    - Property: XP Earned

    - Calculate: More options → Sum

  6. Tasks Completion Formula (Note: The levels are based from DevHub Pixel Forge Theme, feel free to customize it together with the XP goals.)

if(Task Completed >= 100, "Impact Driver ⚒️".style("", "red_background"), if(Task Completed >= 50, "Productivity Powerhouse 🦾".style("", "purple_background"), if(Task Completed >= 25, "Task Conqueror ⛳".style("", "blue_background"), if(Task Completed >= 10, "Task Initiator 🎲".style("", "brown_background"), if(Task Completed >= 5, "First Step 👣".style("", "gray_background"), "")))))


Step 3: Task Template

  1. Go back to Task Database.

  2. On the upper right side, click the blue drop-down button beside "New".

  3. Click "New Template".

  4. Click "New Page" then name it to something like "New Task".

  5. Click "User" then select your name.

  6. Go back to Task Database again.

  7. On the upper right side, click the blue drop-down button beside "New" again.

  8. Click the three dots (...) beside "New Task" or whatever you've named the task template.

  9. Select "Set as Default".



Step 4: Make it Yours

Now that the "engine" of your XP system is running, it's time to skin the game. This is where you transform a boring database into a dedicated RPG interface. You've got the logic; now give it some soul.


  1. Upload your customized icons and covers.

  2. The Character Sheet View

    - In your User Database, create a Gallery View.

    - Set the Card Preview to "Page Cover" and the Card Size to "Large".

    - Go to Properties and toggle on "Tasks Completion" and "Tasks XP"

    - This creates a visual player card that feels like an actual RPG character menu.

    - Create different views so you could have your own dashboard.


The goal here is to make the workspace so visually rewarding that you want to open it every morning. Experiment with Notion's grouped views, sub-tasks, and tabbed databases until the flow feels natural to your specific dev workflow.


What's Next?


To expand this, you could add:


  • Project Tracking (quests with multiple tasks)

  • Bug Tracking System

  • All Docs Database

  • Learning Path Tracker

  • Habit Tracker

  • Daily Log Database

  • Achievements Page


I spent weeks building all of that into a complete system.


If you want the full thing, get it here. It comes with free version, with core databases but minus the gamification.


If you want to build it yourself: Use this tutorial as a starting point and customize it however you want!


Happy to answer questions in the comments. 👇




Comments


© 2025 Lux Seminare. All Rights Reserved.
  • Instagram
  • Facebook
  • Twitter
bottom of page