<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Lux Seminare</title>
    <description>The latest articles on DEV Community by Lux Seminare (@lux_seminare).</description>
    <link>https://dev.to/lux_seminare</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3266346%2Fe6a2f7d4-ce56-40ec-b88b-814369499da9.png</url>
      <title>DEV Community: Lux Seminare</title>
      <link>https://dev.to/lux_seminare</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/lux_seminare"/>
    <language>en</language>
    <item>
      <title>How to Build a Learning Resource in Notion (Step-by-Step)</title>
      <dc:creator>Lux Seminare</dc:creator>
      <pubDate>Tue, 02 Jun 2026 08:31:57 +0000</pubDate>
      <link>https://dev.to/lux_seminare/how-to-build-a-learning-resource-in-notion-step-by-step-2mk1</link>
      <guid>https://dev.to/lux_seminare/how-to-build-a-learning-resource-in-notion-step-by-step-2mk1</guid>
      <description>&lt;p&gt;Most developers have the same problem with learning: the list keeps growing and the progress doesn't.&lt;/p&gt;

&lt;p&gt;You bookmark a course. You buy a book. You save an article to read later. Three months pass and none of it has moved. The problem isn't motivation — it's that there's no system connecting what you want to learn to where you actually are with each resource.&lt;/p&gt;

&lt;p&gt;A Notion learning resource tracker fixes this. Not by adding more friction, but by giving you a single place where everything you're learning lives — with progress calculated automatically, filtered views that surface what's active versus what's stalled, and a lesson-level relation that tracks exactly how far into each resource you've gone.&lt;/p&gt;

&lt;p&gt;This guide builds the exact system used in DevHub's Learning Resources database, based on real structure you can replicate today.&lt;/p&gt;




&lt;h2&gt;
  
  
  What You're Building
&lt;/h2&gt;

&lt;p&gt;A Learning Resources database in Notion with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Four resource types tracked in one place — courses, books, articles, tutorials&lt;/li&gt;
&lt;li&gt;Automatic progress calculation based on completed lessons versus total length&lt;/li&gt;
&lt;li&gt;A completion checkbox that updates itself when status changes&lt;/li&gt;
&lt;li&gt;Five filtered views covering every angle you need — active learning, pipeline by type, topic-specific filters, and reading backlog&lt;/li&gt;
&lt;li&gt;A relation to a Lessons database so progress reflects real unit-level completion, not gut estimates&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Who This Is For
&lt;/h2&gt;

&lt;p&gt;Developers, engineers, and self-taught learners who:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Buy courses and never finish them&lt;/li&gt;
&lt;li&gt;Have a reading list that grows faster than it shrinks&lt;/li&gt;
&lt;li&gt;Want learning tracked alongside their actual work rather than in a separate app&lt;/li&gt;
&lt;li&gt;Need to see what's active right now versus what's queued versus what's done&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Step 1: Create the Learning Resources Database
&lt;/h2&gt;

&lt;p&gt;Create a new full-page database in Notion. Name it &lt;strong&gt;Learning Resources&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This database is the core. Everything else — the lessons, the views, the formulas — connects back to it.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 2: Set Up the Core Properties
&lt;/h2&gt;

&lt;p&gt;Delete Notion's default properties and add the following exactly as listed.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Name (Title)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Keep the default Title property. Rename it to &lt;strong&gt;Name&lt;/strong&gt; if it isn't already.&lt;/p&gt;

&lt;p&gt;Write resource names specifically enough to be useful when scanning a list. "JavaScript Course" is not useful. "The Odin Project — Full Stack JavaScript" is.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Link (URL)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Add a URL property named &lt;strong&gt;Link&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Paste the direct URL to the course, article, book page, or documentation. This makes every resource one click away from the database — no hunting through bookmarks.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Type (Select)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Add a Select property named &lt;strong&gt;Type&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Options:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Article&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Book&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Course&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Tutorial&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Type determines how you filter and group your resources. The Learning Pipeline view groups by Type so you can see at a glance whether your active learning is balanced across formats or concentrated in one area.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Status (Select)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Add a Select property named &lt;strong&gt;Status&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Options:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;To Read&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;In Progress&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Completed&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Keep exactly these three options and these exact names — the formulas reference them directly. If you rename them, the Is Done? formula and the filtered views will break.&lt;/p&gt;

&lt;p&gt;Status is the primary property you update as you move through a resource. Everything else — progress, filtering, board placement — flows from this field.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Tags (Multi-select)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Add a Multi-select property named &lt;strong&gt;Tags&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Tags serve two purposes: skill level and topic. Use them to categorize resources so topic-specific filtered views work correctly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Skill level tags:&lt;/strong&gt; &lt;code&gt;Beginner&lt;/code&gt; / &lt;code&gt;Intermediate&lt;/code&gt; / &lt;code&gt;Advanced&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Topic tags — add what's relevant to your stack:&lt;/strong&gt; &lt;code&gt;JavaScript&lt;/code&gt; / &lt;code&gt;TypeScript&lt;/code&gt; / &lt;code&gt;Python&lt;/code&gt; / &lt;code&gt;React&lt;/code&gt; / &lt;code&gt;Node.js&lt;/code&gt; / &lt;code&gt;CSS&lt;/code&gt; / &lt;code&gt;SQL&lt;/code&gt; / &lt;code&gt;Docker&lt;/code&gt; / &lt;code&gt;Git&lt;/code&gt; / &lt;code&gt;System Design&lt;/code&gt; / &lt;code&gt;Clean Code&lt;/code&gt; / &lt;code&gt;Data Science&lt;/code&gt; / &lt;code&gt;Documentation&lt;/code&gt; / &lt;code&gt;Testing&lt;/code&gt; / &lt;code&gt;DevOps&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Keep your tag list under 30 total. More than that and tags start overlapping — you'll forget which one you used on a specific resource and filtering becomes unreliable.&lt;/p&gt;

&lt;p&gt;The JavaScript Courses view and Books to Read view both use Tags as filter conditions. Any tag you want to filter by later needs to be added to entries consistently.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Length (Number)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Add a Number property named &lt;strong&gt;Length&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This is the total number of lessons, chapters, modules, or sections in the resource. It's the denominator in the progress calculation.&lt;/p&gt;

&lt;p&gt;How to set it per type:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Course:&lt;/strong&gt; total number of videos or modules&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Book:&lt;/strong&gt; total number of chapters&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tutorial:&lt;/strong&gt; total number of sections or steps&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Article:&lt;/strong&gt; set to 1 — articles are single-unit resources&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you don't know the exact number yet, estimate and update it later. The progress formula handles the calculation — you just need a reasonable denominator.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Learning Hours Log (Number)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Add a Number property named &lt;strong&gt;Learning Hours Log&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Track total hours spent on this resource. Update it manually after each study session — add to the existing number, don't overwrite it.&lt;/p&gt;

&lt;p&gt;Over time this gives you a running record of where your learning hours actually go. A course with 10 hours logged that's still at 20% completion tells you something different than a course with 2 hours logged at the same progress.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 3: Create the Lessons Database
&lt;/h2&gt;

&lt;p&gt;Before setting up the Lessons relation in Learning Resources, you need to build the database it connects to.&lt;/p&gt;

&lt;p&gt;Create a second full-page database. Name it &lt;strong&gt;Lessons / Chapters / Course Modules&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Add these properties:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Property - Type - Purpose&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;Name - Title - The lesson or chapter name&lt;/p&gt;




&lt;p&gt;Completed - Checkbox - Mark when done&lt;/p&gt;




&lt;p&gt;Learning Resource - Relation - Links back to Learning Resources&lt;/p&gt;




&lt;p&gt;When you create the relation in this database pointing to Learning Resources, toggle on "Show on Learning Resources" — this creates the bidirectional connection automatically.&lt;/p&gt;

&lt;p&gt;How to use it: when you start a new course or book, add each lesson or chapter as a separate row in this database and link it to the parent resource. As you complete each one, check the Completed checkbox. The Progress formula in Learning Resources reads this count automatically.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 4: Add the Lessons Relation to Learning Resources
&lt;/h2&gt;

&lt;p&gt;Back in your Learning Resources database, add a Relation property named &lt;strong&gt;Lessons&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;When setting it up:&lt;/p&gt;

&lt;p&gt;Search for and select your &lt;strong&gt;Lessons / Chapters / Course Modules&lt;/strong&gt; database&lt;br&gt;
Toggle on "Show on Learning Resources"&lt;/p&gt;

&lt;p&gt;This creates a two-way relation. Each Learning Resource knows which lessons belong to it. Each lesson knows which resource it belongs to.&lt;/p&gt;


&lt;h2&gt;
  
  
  Step 5: Add the Daily Log Relation
&lt;/h2&gt;

&lt;p&gt;Add a second Relation property named &lt;strong&gt;Daily Log&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Link this to your Daily Log database if you have one. This connects your learning activity to the days you actually worked on it — so when you look at a daily log entry, you can see which resources you touched that day, and when you look at a resource, you can see which days had activity on it.&lt;/p&gt;

&lt;p&gt;If you don't have a Daily Log database yet, leave this property empty for now. Add it when you build one.&lt;/p&gt;


&lt;h2&gt;
  
  
  Step 6: Add the Two Formulas
&lt;/h2&gt;

&lt;p&gt;These are the two formulas that make the database intelligent rather than just a list.&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;Formula 1: Is Done? (Checkbox)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Add a Formula property named &lt;strong&gt;Is Done?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Change the output type to Checkbox.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The formula:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;prop("Status") == "Completed"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;What it does:&lt;/strong&gt; Returns a checked checkbox when Status is "Completed" and an unchecked checkbox when it's anything else.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why use a formula instead of just reading the Status field directly:&lt;/strong&gt; The Is Done? checkbox gives you a clean binary signal that works cleanly in rollups from other databases. If your Character Sheet or a Projects database needs to count completed learning resources, rolling up a checkbox is simpler and more reliable than filtering by a Select property's text value.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;One thing to watch:&lt;/strong&gt; The formula checks the exact string "Completed" — capital C. If your Status option is named differently, update the formula string to match.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Formula 2: Progress (Number)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Add a Formula property named &lt;strong&gt;Progress&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Change the output type to Number. In the number format settings, set it to display as a percentage.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The formula:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="nf"&gt;empty&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;prop&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Lessons&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="nx"&gt;or&lt;/span&gt; &lt;span class="nf"&gt;prop&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Length&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nf"&gt;prop&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Lessons&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="nx"&gt;current&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;prop&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Completed&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
  &lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;length&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="nf"&gt;prop&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Length&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;What each part does:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;if(empty(prop("Lessons")) or prop("Length") == 0, 0,&lt;/code&gt; — guard clause. If no lessons are linked yet or Length is 0, return 0 instead of a division error or a misleading percentage.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;prop("Lessons").filter(current.prop("Completed") == true).length()&lt;/code&gt; — counts only the lessons marked as Completed in the related Lessons database. This is the numerator.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;/ prop("Length")&lt;/code&gt; — divides completed lessons by the total length you entered manually. This is the denominator.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The result:&lt;/strong&gt; A percentage from 0 to 1 that Notion displays as 0% to 100% in percentage format. Updates automatically every time you check off a lesson.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why this approach works better than a manual percentage field:&lt;/strong&gt; Manual percentage fields require you to remember to update them. This formula reads from actual lesson completion — so the progress number always reflects real work, not an estimate you set and forgot to change.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;One thing to watch:&lt;/strong&gt; Progress is based on completed lessons divided by the Length you entered manually. If Length is set to 10 but the course actually has 15 lessons, the progress will show 100% before you've finished. Keep Length accurate as you go through the resource.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 7: Build the Five Views
&lt;/h2&gt;

&lt;p&gt;These five views give you different angles on the same data — each one answers a different question about your learning without you having to filter manually each time.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;View 1: All Learning Resources (Table View)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is your master view. Everything visible, nothing filtered.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Properties to show:&lt;/strong&gt; Name, Type, Status, Tags, Link, Length, Progress, Learning Hours Log, Lessons, Daily Log&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sort:&lt;/strong&gt; Name, ascending&lt;/p&gt;

&lt;p&gt;Use this view for initial setup, bulk editing, and your monthly review when you want to see everything at once.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;View 2: Active Learning (Gallery View)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;View type:&lt;/strong&gt; Gallery&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Filter:&lt;/strong&gt; Status ≠ Completed&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sort:&lt;/strong&gt; Status, ascending&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Properties shown on cards:&lt;/strong&gt; Name, Status, Progress&lt;br&gt;
This is your daily working view. It shows everything you haven't finished — both In Progress and To Read resources — sorted so In Progress appears before To Read.&lt;/p&gt;

&lt;p&gt;The gallery format makes the Progress property visible as a progress bar on each card, giving you a visual read on how far along each active resource is without clicking into anything.&lt;/p&gt;

&lt;p&gt;Keep this view clean. If it has more than five or six cards, you have too many active resources. Reduce to three In Progress items maximum — more than that and you're context switching between learning the same way you context switch between tasks.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;View 3: Learning Pipeline (Board View)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;View type:&lt;/strong&gt; Board&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Group by:&lt;/strong&gt; Type&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Filter:&lt;/strong&gt; Status ≠ Completed&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sort:&lt;/strong&gt; Progress, ascending&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hide empty groups:&lt;/strong&gt; On&lt;/p&gt;

&lt;p&gt;This view shows your incomplete resources organized by format type — Courses in one column, Books in another, Articles and Tutorials in theirs. Resources with the lowest progress appear at the top of each column.&lt;/p&gt;

&lt;p&gt;Use it on Mondays for a weekly learning check. The column structure tells you immediately whether your learning is spread across formats or piled up in one area. Four courses in progress and zero books being read is a pattern worth noticing.&lt;/p&gt;

&lt;p&gt;The ascending progress sort surfaces the resources you've barely started before the ones you're close to finishing — useful for deciding whether to push through something that's almost done or restart something you've stalled on.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;View 4: JavaScript Courses (List View)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;View type:&lt;/strong&gt; List&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Filters:&lt;/strong&gt; Type = Course AND Tags contains JavaScript&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Properties shown:&lt;/strong&gt; Name, Tags&lt;/p&gt;

&lt;p&gt;This is an example of a topic-specific filtered view. It shows only courses tagged with JavaScript, regardless of status — so you can see everything in that topic area at once, including completed ones.&lt;/p&gt;

&lt;p&gt;Build similar views for any technology you're actively developing skills in. The pattern is always the same: Type = Course (or Book, or Tutorial) AND Tags contains [your topic].&lt;/p&gt;

&lt;p&gt;Examples you might add based on your stack:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Python Books: Type = Book AND Tags contains Python&lt;/li&gt;
&lt;li&gt;React Tutorials: Type = Tutorial AND Tags contains React&lt;/li&gt;
&lt;li&gt;System Design Resources: Tags contains System Design (any type)&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;View 5: Books to Read (List View)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;View type:&lt;/strong&gt; List&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Filters:&lt;/strong&gt; Type = Book AND Status = To Read&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Properties shown:&lt;/strong&gt; Name&lt;/p&gt;

&lt;p&gt;Your reading backlog. Clean and minimal — just the titles, nothing else.&lt;/p&gt;

&lt;p&gt;This view answers one question: what books haven't I started yet? When you finish a book and mark it Completed, it disappears from this view automatically. When you add a new book with Status = To Read, it appears automatically.&lt;/p&gt;

&lt;p&gt;Build similar views for other types if the backlog gets large:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Courses to Start: Type = Course AND Status = To Read&lt;/li&gt;
&lt;li&gt;Articles to Read: Type = Article AND Status = To Read&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Step 8: Add Tags to Existing Resources and Test
&lt;/h2&gt;

&lt;p&gt;Before the views are useful, the data needs to be accurate.&lt;br&gt;
Go through your existing resources (or add a few test entries) and:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Set the correct Type for each&lt;/li&gt;
&lt;li&gt;Set Status to To Read, In Progress, or Completed accurately&lt;/li&gt;
&lt;li&gt;Add at least one skill level tag (Beginner/Intermediate/Advanced) and one topic tag&lt;/li&gt;
&lt;li&gt;Fill in Length with the number of lessons, chapters, or sections&lt;/li&gt;
&lt;li&gt;Create lesson entries in the Lessons database for any In Progress resource and link them back&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Once you have a few entries set up correctly, open each view and verify the filters are working. The Active Learning gallery should show only incomplete resources. The Learning Pipeline board should group by type with no Completed items. JavaScript Courses should show only items with both conditions met.&lt;/p&gt;




&lt;h2&gt;
  
  
  How to Use This System Day to Day
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;When you find a new resource:&lt;/strong&gt;&lt;br&gt;
Add it to Learning Resources with Status = To Read. Set Type, add Tags, fill in Length. Link added, resource captured, done.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When you start something:&lt;/strong&gt;&lt;br&gt;
Change Status to In Progress. Create the lesson entries in your Lessons database and link them to the resource. Now progress tracking is live.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;During a study session:&lt;/strong&gt;&lt;br&gt;
Check off completed lessons in the Lessons database. Watch the Progress formula update automatically. Log your hours in Learning Hours Log — add to the existing number.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When you finish:&lt;/strong&gt;&lt;br&gt;
Change Status to Completed. Is Done? auto-checks. The resource disappears from Active Learning and Learning Pipeline. It stays visible in All Learning Resources as a permanent record.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Weekly (Monday, 5 minutes):&lt;/strong&gt;&lt;br&gt;
Open the Learning Pipeline board. Check if anything In Progress has stalled — low progress, no recent lesson completions. Decide honestly: restart it, pause it, or abandon it. Pull something from To Read into In Progress if you have fewer than three active items.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why This Works Better Than a Simple List
&lt;/h2&gt;

&lt;p&gt;A plain list of resources tells you what you want to learn. This system tells you where everything actually is.&lt;/p&gt;

&lt;p&gt;The Progress formula reads from real lesson completion — not from an estimate you set and forgot to update. The Is Done? formula creates a reliable completion signal that works in rollups from other databases. The five views answer five different questions without any manual filtering on your part.&lt;/p&gt;

&lt;p&gt;The lesson-level relation is the most important structural decision in the system. It means progress is earned, not estimated. You can't move the percentage by convincing yourself you remember the material. You move it by checking off the work.&lt;/p&gt;

&lt;p&gt;If you want this database pre-built and connected to a complete developer workspace — including daily log integration, character sheet rollups, and the full DevHub system — the free version is available at no cost.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://luxfreedevhub.carrd.co" rel="noopener noreferrer"&gt;Free download, no credit card required.&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;What's been sitting on your learning list the longest without moving? Drop it in the comments.&lt;/p&gt;

</description>
      <category>notion</category>
      <category>tutorial</category>
      <category>webdev</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Notion Formula Cheat Sheet: Every Formula Type Developers Actually Need (2026)</title>
      <dc:creator>Lux Seminare</dc:creator>
      <pubDate>Mon, 01 Jun 2026 08:08:50 +0000</pubDate>
      <link>https://dev.to/lux_seminare/notion-formula-cheat-sheet-every-formula-type-developers-actually-need-2026-2f0p</link>
      <guid>https://dev.to/lux_seminare/notion-formula-cheat-sheet-every-formula-type-developers-actually-need-2026-2f0p</guid>
      <description>&lt;h2&gt;
  
  
  Notion Formula Cheat Sheet for Developers (2026)
&lt;/h2&gt;

&lt;p&gt;Notion formulas follow consistent patterns. Once you learn the pattern, most formulas become variations of something you've already seen. &lt;/p&gt;

&lt;p&gt;Most formula guides organize by use case -- "formulas for project management," "formulas for habit tracking." This one organizes by pattern type, because understanding the structure is what lets you build formulas you haven't seen before, not just copy ones you have.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What this guide covers:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Basic syntax rules that prevent 90% of errors&lt;/li&gt;
&lt;li&gt;Text, number, date, and boolean formulas&lt;/li&gt;
&lt;li&gt;Conditional logic patterns for if statements&lt;/li&gt;
&lt;li&gt;Rollup-based formulas&lt;/li&gt;
&lt;li&gt;Two complete production-ready formulas used in real developer workflows&lt;/li&gt;
&lt;li&gt;Troubleshooting reference for the most common Notion formula errors&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Why Developers Need Notion Formulas
&lt;/h2&gt;

&lt;p&gt;Standard Notion databases are static. You add data, you read data, nothing moves on its own. Formulas change that -- they turn your workspace into something that calculates, flags, labels, and responds to the data you enter.&lt;/p&gt;

&lt;p&gt;For a developer productivity system specifically, formulas are what make the difference between a task list and a system. Without them, you're manually updating fields that could update themselves. With them, your workspace surfaces what needs attention, tracks progress automatically, and rewards completion without any extra input from you.&lt;/p&gt;




&lt;h2&gt;
  
  
  Part 1: Basic Syntax Rules for Notion Formulas
&lt;/h2&gt;

&lt;p&gt;Three rules that prevent most Notion formula errors before they happen.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rule 1: String Values Use Double Quotes&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if(("Status") == "Done", "Incomplete", "Complete")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Text comparisons in Notion formulas always use double quotes. Single quotes throw an error with no helpful message.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rule 2: Nested If Statements Close With Matching Parentheses&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if (A, "x", if (B, "y", if (C, "z", "default")))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Every &lt;code&gt;if(&lt;/code&gt; needs a closing &lt;code&gt;)&lt;/code&gt;. Three nested if statements need three closing parentheses at the end. Count your opens and closes before saving -- this is where most Notion formula syntax errors hide.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rule 3: Empty and Zero Are Not the Same&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;empty("Due Date") //true when the date is field blank
("Number Field") == 0 //true when the field contains zero
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Use &lt;code&gt;empty()&lt;/code&gt; to check for blank fields. Use &lt;code&gt;== 0&lt;/code&gt; to check for the number zero. Confusing these produces formulas that return wrong results silently -- no error, just incorrect output.&lt;/p&gt;




&lt;h2&gt;
  
  
  Part 2: Notion Text Formulas
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Concatenate Two Properties&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;("First Name") + " " + ("Last Name")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Returns:&lt;/strong&gt; Text -- &lt;code&gt;"Alex Chen"&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to use:&lt;/strong&gt; Combining name fields or any two text properties into a single display value.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Concatenate Text With a Number in Notion&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"Level " + format("Level Number")

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Returns:&lt;/strong&gt; Text -- &lt;code&gt;"Level 7"&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to use:&lt;/strong&gt; Adding static text before or after a number. The &lt;code&gt;format()&lt;/code&gt; function converts the number to text -- without it, Notion throws a type mismatch error.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Convert Text to Uppercase&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;upper("Status")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Returns:&lt;/strong&gt; Text — &lt;code&gt;"DONE"&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to use:&lt;/strong&gt; Standardizing text display in headers or labels when source data has inconsistent casing.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Check if a Notion Text Field Contains a Keyword&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;contains("Tags"), "urgent"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Returns:&lt;/strong&gt; Boolean — &lt;code&gt;true&lt;/code&gt; or &lt;code&gt;false&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to use:&lt;/strong&gt; Filtering or flagging entries that include a specific word in a text field. Case-sensitive — &lt;code&gt;"urgent"&lt;/code&gt; and &lt;code&gt;"Urgent"&lt;/code&gt; return different results.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Show a Fallback When a Field Is Empty&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if(empty("Project Name"), "No project assigned", "Project Name")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Returns:&lt;/strong&gt; Text — the project name or the fallback string&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to use:&lt;/strong&gt; Preventing blank cells on dashboards where every row should display something meaningful.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Count Characters in a Notion Text Field&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;length("Notes")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Returns:&lt;/strong&gt; Number — &lt;code&gt;142&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to use:&lt;/strong&gt; Tracking note length or flagging fields that are too short to be useful.&lt;/p&gt;




&lt;h2&gt;
  
  
  Part 3: Notion Number Formulas
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Basic Arithmetic in Notion&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;("Revenue") - ("Cost")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Returns:&lt;/strong&gt; Number&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to use:&lt;/strong&gt; Any calculation involving two number properties. Supports &lt;code&gt;+&lt;/code&gt;, &lt;code&gt;-&lt;/code&gt;, &lt;code&gt;*&lt;/code&gt;, &lt;code&gt;/&lt;/code&gt;.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Round Numbers in Notion Formulas&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;round("Score")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Returns:&lt;/strong&gt; Number — &lt;code&gt;73&lt;/code&gt; from &lt;code&gt;72.8&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to use:&lt;/strong&gt; Cleaning up decimal results from division. &lt;code&gt;round()&lt;/code&gt; rounds to nearest, &lt;code&gt;floor()&lt;/code&gt; always rounds down, &lt;code&gt;ceil()&lt;/code&gt; always rounds up.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Calculate a Percentage in Notion&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;floor(("Completed" / "Total") * 100)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Returns:&lt;/strong&gt; Number — &lt;code&gt;68&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to use:&lt;/strong&gt; Progress percentages and completion rates. &lt;code&gt;floor()&lt;/code&gt; prevents decimal output.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Clamp a Number Within a Range&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;min(max("Progress", 0), 100)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Returns:&lt;/strong&gt; Number — always between 0 and 100&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to use:&lt;/strong&gt; Preventing progress percentages from going below 0 or above 100 when source data produces out-of-range values.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Get the Maximum of Two Values&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;max("Estimated Hours", "Actual Hours")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Returns:&lt;/strong&gt; Number — the larger of the two&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to use:&lt;/strong&gt; Comparing two number properties and surfacing whichever is larger. &lt;code&gt;min()&lt;/code&gt; works the same way for the smaller value.&lt;/p&gt;




&lt;h2&gt;
  
  
  Part 4: Notion Date Formulas
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Get Today's Date in Notion&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;now()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Returns:&lt;/strong&gt; Date — current date and time&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to use:&lt;/strong&gt; As the reference point in any Notion date calculation. Updates automatically every time Notion recalculates.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Calculate Days Between Two Dates in Notion&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;dateBetween("Due Date", now(), "days")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Returns:&lt;/strong&gt; Number — positive if Due Date is in the future, negative if it's in the past&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to use:&lt;/strong&gt; Calculating days until a deadline or days overdue. Result is Due Date minus now() — so future dates give positive numbers.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Add Days to a Date in Notion&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;dateAdd("Start Date", 7, "days")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Returns:&lt;/strong&gt; Date — seven days after the start date&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to use:&lt;/strong&gt; Calculating end dates, review dates, or any date a fixed interval after another. Supports &lt;code&gt;"days"&lt;/code&gt;, &lt;code&gt;"weeks"&lt;/code&gt;, &lt;code&gt;"months"&lt;/code&gt;, &lt;code&gt;"years"&lt;/code&gt;.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Format a Notion Date as Readable Text&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;formatDate("Due Date", "MMM DD, YYYY")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Returns:&lt;/strong&gt; Text — &lt;code&gt;"May 23, 2025"&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to use:&lt;/strong&gt; Displaying dates in a specific format inside concatenated strings. Format codes: &lt;code&gt;MMM&lt;/code&gt; = short month name, &lt;code&gt;MMMM&lt;/code&gt; = full month name, &lt;code&gt;DD&lt;/code&gt; = day with leading zero, &lt;code&gt;YYYY&lt;/code&gt; = four-digit year.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Extract the Month From a Date in Notion&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;month("Created Date")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Returns:&lt;/strong&gt; Number — 1 through 12&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to use:&lt;/strong&gt; Grouping entries by month or filtering for a specific month. &lt;code&gt;day()&lt;/code&gt;, &lt;code&gt;year()&lt;/code&gt;, and &lt;code&gt;hour()&lt;/code&gt; work the same way.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Check if a Notion Date Is in the Past&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;dateBetween("Due Date", now(), "days") &amp;lt; 0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Returns:&lt;/strong&gt; Boolean — &lt;code&gt;true&lt;/code&gt; if the date has passed&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to use:&lt;/strong&gt; The foundation of overdue detection in Notion. Combine with &lt;code&gt;if()&lt;/code&gt; to label or flag entries automatically.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Days Since an Entry Was Created&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;dateBetween(now(), "Created time", "days")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Returns:&lt;/strong&gt; Number — days since creation&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to use:&lt;/strong&gt; Age tracking and stale entry detection. Note the reversed argument order — &lt;code&gt;now()&lt;/code&gt; first gives a positive number for past dates.&lt;/p&gt;




&lt;h2&gt;
  
  
  Part 5: Notion Conditional Logic — If Statement Patterns
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Basic Notion If Statement&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if("Status" == "Done", "✓ Complete", "In progress")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Returns:&lt;/strong&gt; Text — one of two values based on the condition&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to use:&lt;/strong&gt; Any binary labeling in Notion — done/not done, overdue/upcoming, high/low.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Nested If Statement in Notion (Multiple Conditions)&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if("Priority" == "High", "🔴 Critical",
if("Priority" == "Medium", "🟡 Normal",
if("Priority" == "Low", "🟢 Low",
"No priority")))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Returns:&lt;/strong&gt; Text — one of four possible labels&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to use:&lt;/strong&gt; More than two possible outputs. Each additional condition adds one more nested &lt;code&gt;if()&lt;/code&gt;. Always end with a default value as the last argument.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Notion And Condition&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if(and("Status" == "Done", "Priority" == "High"), "High value win", "")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Returns:&lt;/strong&gt; Text — label only when both conditions are met&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to use:&lt;/strong&gt; Flagging entries that meet multiple criteria simultaneously. Empty string &lt;code&gt;""&lt;/code&gt; leaves the cell blank when conditions aren't met.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Notion Or Condition&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if(or("Status" == "Overdue", "Status" == "Blocked"), "⚠️ Needs attention", "")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Returns:&lt;/strong&gt; Text — label when either condition is met&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to use:&lt;/strong&gt; Surfacing entries that match any one of several problem states.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Notion If Statement With Empty Guard&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if(empty("Due Date"), "No deadline",
if(dateBetween("Due Date", now(), "days") &amp;lt; 0, "Overdue", "On track"))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Returns:&lt;/strong&gt; Text — three possible states&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to use:&lt;/strong&gt; Always guard against empty dates first when using date properties in Notion — skipping this causes errors on any row without a date filled in.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Ternary-Style If in Notion Formulas 2.0&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nf"&gt;prop&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Score&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;80&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Pass&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Fail&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Returns:&lt;/strong&gt; Text — &lt;code&gt;"Pass"&lt;/code&gt; or &lt;code&gt;"Fail"&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to use:&lt;/strong&gt; Simple binary conditions where the long-form &lt;code&gt;if()&lt;/code&gt; syntax is unnecessary. Only works in Formulas 2.0.&lt;/p&gt;




&lt;h2&gt;
  
  
  Part 6: Notion Boolean Formulas
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Check if a Checkbox Is Checked in Notion&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;("Done") == true

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Returns:&lt;/strong&gt; Boolean&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to use:&lt;/strong&gt; Using a checkbox property as a condition inside a larger Notion formula.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Convert a Boolean to Text in Notion&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if("Is Active", "Active", "Inactive")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Returns:&lt;/strong&gt; Text — readable label from a checkbox value&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to use:&lt;/strong&gt; Displaying checkbox state as text in a summary or label column.&lt;/p&gt;




&lt;h2&gt;
  
  
  Part 7: Notion Rollup-Based Formulas
&lt;/h2&gt;

&lt;p&gt;Rollups pull aggregated data from related databases. Set up the rollup first, then reference its result inside a formula.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Progress Percentage From Rollup&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if("Total Tasks" == 0, 0,
floor(("Done Tasks" / "Total Tasks") * 100))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Requires:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Rollup "Total Tasks": Count all, relation to Tasks database&lt;/li&gt;
&lt;li&gt;Rollup "Done Tasks": Count values where Status = Done&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Returns:&lt;/strong&gt; Number — 0 to 100&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Flag if Any Related Item Needs Attention&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if("Open Issue Count" &amp;gt; 0, "⚠️ Has open issues", "✓ On track")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Requires:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Rollup "Open Issue Count": Count values where Status = Open&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Returns:&lt;/strong&gt; Text — project-level health indicator that updates automatically&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Average Score Across Related Entries&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;round("Average Score")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Requires:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Rollup "Average Score": Average of Score property, relation to relevant database&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Returns:&lt;/strong&gt; Number — rounded average across all related records&lt;/p&gt;




&lt;h2&gt;
  
  
  Part 8: Two Complete Production-Ready Notion Formulas
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Formula 1: Project Progress With Visual Bar&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This Notion formula shows project completion as both a percentage and a visual progress bar. It handles empty projects, backlog items, and on-hold work automatically without errors.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Setup:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Add Rollup "Total Tasks" — Count all from Tasks relation&lt;/li&gt;
&lt;li&gt;Add Rollup "Completed Tasks" — Count values where Status = Done&lt;/li&gt;
&lt;li&gt;Add a Formula property named "Progress"
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;Total&lt;/span&gt; &lt;span class="nx"&gt;Tasks&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="nx"&gt;and&lt;/span&gt; &lt;span class="nx"&gt;Completed&lt;/span&gt; &lt;span class="nx"&gt;Tasks&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="nx"&gt;Total&lt;/span&gt; &lt;span class="nx"&gt;Tasks&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;100%&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;Status&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;backlog&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="nx"&gt;or&lt;/span&gt; &lt;span class="nx"&gt;Status&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;on hold&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;0%&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;Total&lt;/span&gt; &lt;span class="nx"&gt;Tasks&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nf"&gt;let&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="nx"&gt;completed_val&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;empty&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;Completed&lt;/span&gt; &lt;span class="nx"&gt;Tasks&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nf"&gt;toNumber&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;Completed&lt;/span&gt; &lt;span class="nx"&gt;Tasks&lt;/span&gt;&lt;span class="p"&gt;)),&lt;/span&gt;
    &lt;span class="nx"&gt;total_val&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;empty&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;Total&lt;/span&gt; &lt;span class="nx"&gt;Tasks&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nf"&gt;toNumber&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;Total&lt;/span&gt; &lt;span class="nx"&gt;Tasks&lt;/span&gt;&lt;span class="p"&gt;)),&lt;/span&gt;
    &lt;span class="nx"&gt;percentage&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nf"&gt;round&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;completed_val&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="nx"&gt;total_val&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="nx"&gt;progress_blocks_count&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nf"&gt;floor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;percentage&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="nx"&gt;filled_bar&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;substring&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;""&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;progress_blocks_count&lt;/span&gt;&lt;span class="p"&gt;)),&lt;/span&gt;
    &lt;span class="nx"&gt;empty_bar&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;substring&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;""&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;progress_blocks_count&lt;/span&gt;&lt;span class="p"&gt;)),&lt;/span&gt;
    &lt;span class="nf"&gt;format&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;percentage&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;% &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;filled_bar&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;empty_bar&lt;/span&gt;
  &lt;span class="p"&gt;),&lt;/span&gt;
&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;0%&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output example:&lt;/strong&gt; 70% ███████░░░&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key behaviors:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Projects where all tasks are done snap cleanly to 100% without rounding errors&lt;/li&gt;
&lt;li&gt;Backlog and On Hold projects always show 0% regardless of task count&lt;/li&gt;
&lt;li&gt;Empty projects return 0% without throwing a division error&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;let()&lt;/code&gt; scoping keeps each calculation readable and avoids redundant computation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;One thing to watch:&lt;/strong&gt; The Status check references your exact Status option names. If your options use different casing — "Backlog" vs "backlog" — update the formula strings to match character for character.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Formula 2: Automatic Task Value in Notion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This Notion formula assigns a point value to each task based on priority automatically — no manual entry required every time you create a task.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Setup:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Confirm a Select property called "Priority" with options: Low, Medium, High&lt;/li&gt;
&lt;li&gt;Add a Formula property named "Task Value"
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if(Priority == "High", 10, if(Priority == "Medium", 5, 1))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&gt; High = 10 points, Medium = 5 points, Low or unset = 1 point&lt;/p&gt;

&lt;p&gt;Low priority tasks return 1 rather than 0 — every completed task contributes something regardless of how it was prioritized.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Roll Task Value up to your Character Sheet:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Relation: Tasks&lt;/li&gt;
&lt;li&gt;Property: Task Value&lt;/li&gt;
&lt;li&gt;Filter: Status = Done&lt;/li&gt;
&lt;li&gt;Calculate: Sum&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This gives you a running total of points from completed tasks only — the foundation of a gamified developer productivity system.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;One thing to watch:&lt;/strong&gt; The formula matches exact string values. "HIGH" and "High Priority" won't match "High." Check your Priority option names and update the formula strings to match.&lt;/p&gt;




&lt;h2&gt;
  
  
  Part 9: Level Progression Formula for Notion (Complete 20-Level Version)
&lt;/h2&gt;

&lt;p&gt;The full exponential level progression formula used in DevHub — 20 levels based on cumulative task points.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if("Total XP" &amp;gt;= 225000, "Level 20: Legendary 🏆",
if("Total XP" &amp;gt;= 185000, "Level 19: Celestial ☄️",
if("Total XP" &amp;gt;= 150000, "Level 18: Ascendant ⚡",
if("Total XP" &amp;gt;= 120000, "Level 17: Apex ⛰️",
if("Total XP" &amp;gt;= 97500, "Level 16: Paragon 💎",
if("Total XP" &amp;gt;= 78000, "Level 15: Oracle 🔮",
if("Total XP" &amp;gt;= 62500, "Level 14: Architect 🗺️",
if("Total XP" &amp;gt;= 50000, "Level 13: Vanguard 🏹",
if("Total XP" &amp;gt;= 40000, "Level 12: Luminary 🌟",
if("Total XP" &amp;gt;= 32000, "Level 11: Virtuoso 🗿",
if("Total XP" &amp;gt;= 25000, "Level 10: Grandmaster 👑",
if("Total XP" &amp;gt;= 18000, "Level 9: Master 🪨",
if("Total XP" &amp;gt;= 13000, "Level 8: Senior 🧭",
if("Total XP" &amp;gt;= 9000, "Level 7: Professional 🛡️",
if("Total XP" &amp;gt;= 6000, "Level 6: Specialist 🔎",
if("Total XP" &amp;gt;= 3500, "Level 5: Adept 🔩",
if("Total XP" &amp;gt;= 2000, "Level 4: Journeyman 📜",
if("Total XP" &amp;gt;= 1000, "Level 3: Apprentice 🛠️",
if("Total XP" &amp;gt;= 500, "Level 2: Novice 🔧",
"Level 1: Beginner ⚙️"))))))))))))))))))))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Requires:&lt;/strong&gt; A rollup called "Total XP" that sums Task Value from completed tasks only.&lt;/p&gt;




&lt;h2&gt;
  
  
  Troubleshooting Common Notion Formula Errors
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;"Property not found"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Property name in the formula doesn't match exactly. Check capitalization and spacing — they must be identical character for character. Rename the property temporarily to something simple like "Test" while debugging to confirm the relation works.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"Type mismatch"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You're combining a number and text without converting. Wrap the number in &lt;code&gt;format()&lt;/code&gt; before concatenating: &lt;code&gt;format("Score") + " points"&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"Division by zero"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You're dividing by a property that contains zero or is empty. Add a guard clause: &lt;code&gt;if("Total" == 0, 0, "Done" / "Total")&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Formula always returns the same value&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Your condition is never being met. Test each part separately in a new formula property to isolate where the logic breaks. Check that property names match and that the values you're comparing exist exactly as written in your database.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rollup shows the wrong count&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The filter value on your rollup must exactly match the option name in your database. "Done" and "done" are different values. Open your Status property settings and copy the option name exactly into your rollup filter.&lt;/p&gt;




&lt;h2&gt;
  
  
  What to Build Next
&lt;/h2&gt;

&lt;p&gt;These formulas work independently — add any one to an existing workspace without touching the others. But they're designed to work together.&lt;/p&gt;

&lt;p&gt;The progress formula tells you where your projects stand. The task value formula rewards you for completing the work that moves them forward. The level progression formula turns that accumulated value into a visible measure of your growth as a developer.&lt;/p&gt;

&lt;p&gt;That combination — visibility, reward, and progression — is what most productivity systems are missing.&lt;/p&gt;

&lt;p&gt;If you want these formulas pre-configured and connected in a complete developer workspace, DevHub includes all of them out of the box. The free version has the full database structure with the formulas already in place.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://luxfreedevhub.carrd.co" rel="noopener noreferrer"&gt;Free download, no credit card required.&lt;/a&gt;&lt;/p&gt;

</description>
      <category>notion</category>
      <category>tutorial</category>
      <category>productivity</category>
      <category>webdev</category>
    </item>
    <item>
      <title>2 Notion Formulas for Productivity</title>
      <dc:creator>Lux Seminare</dc:creator>
      <pubDate>Sun, 31 May 2026 07:08:17 +0000</pubDate>
      <link>https://dev.to/lux_seminare/3-notion-formulas-for-productivity-36hd</link>
      <guid>https://dev.to/lux_seminare/3-notion-formulas-for-productivity-36hd</guid>
      <description>&lt;p&gt;&lt;strong&gt;2 Notion Formulas That Actually Get Used Daily&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Most Notion formula guides show you what's possible. This one shows you what's practical.&lt;/p&gt;

&lt;p&gt;There are hundreds of formulas you could build in Notion. Most of them are clever solutions to problems you don't have. These two are the ones that show up in real workflows every day — the ones that change how the workspace actually feels to use, not just how it looks in a screenshot.&lt;/p&gt;

&lt;p&gt;Each one comes with the exact formula, an explanation of what it does and why, and a note on how to set it up from scratch.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A Quick Note on Notion's Formula Versions&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Notion updated its formula engine in 2023. If you're on a workspace created after mid-2023, you're using Formulas 2.0, which has slightly different syntax from the original. The formulas below are written for Formulas 2.0. If yours throws an error, the most common culprit is the prop() wrapper — older formula versions don't use it, so remove prop() and reference the property name directly if needed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Formula 1: Progress Percentage&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it does:&lt;/strong&gt; Shows what percentage of a project's tasks are complete, displayed as both a number and a visual progress bar. Handles edge cases like empty projects, backlog items, and on-hold work automatically.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it matters:&lt;/strong&gt; A project database with a status column tells you a project is "In Progress." That's not information — that's a label. A progress percentage tells you it's 20% done, or 80% done, which are completely different situations. One number replaces the need to click into a project to understand where it stands.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Where to use it:&lt;/strong&gt; In a Projects database that has a relation to a Tasks database.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Setup:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;In your Projects database, add a Relation property linking to your Tasks database — name it "Tasks"&lt;/li&gt;
&lt;li&gt;Add two Rollup properties:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Rollup 1: name "Total Tasks" — Relation: Tasks — Property: Name — Calculate: Count all&lt;/li&gt;
&lt;li&gt;Rollup 2: name "Completed Tasks" — Relation: Tasks — Property: Status — Calculate: Count values where Status = Done&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Add a Formula property — name it "Progress"&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The formula:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if(Total Tasks &amp;gt; 0 and Completed Tasks == Total Tasks, "100%",
if(Status == "backlog" or Status == "on hold", "0%",
if(Total Tasks &amp;gt; 0,
  let(
    completed_val, if(empty(Completed Tasks), 0, toNumber(Completed Tasks)),
    total_val, if(empty(Total Tasks), 0, toNumber(Total Tasks)),
    percentage, round(completed_val / total_val * 100),
    progress_blocks_count, floor(percentage / 10),
    filled_bar, (substring("", 0, progress_blocks_count)),
    empty_bar, (substring("", 0, 10 - progress_blocks_count)),
    format(percentage) + "% " + filled_bar + empty_bar
  ),
"0%")))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;What each part does:&lt;/strong&gt;&lt;br&gt;
if(Total Tasks &amp;gt; 0 and Completed Tasks == Total Tasks, "100%", — the first check handles the fully complete case cleanly. If every task is done, return "100%" immediately without running the rest of the calculation.&lt;br&gt;
if(Status == "backlog" or Status == "on hold", "0%", — projects in Backlog or On Hold return "0%" regardless of their task count. A project you're not working on yet shouldn't show partial progress even if it has tasks attached.&lt;br&gt;
if(Total Tasks &amp;gt; 0, — only run the calculation if tasks actually exist. This prevents division-by-zero errors on new projects with no tasks linked yet.&lt;br&gt;
let( — opens a local variable scope. Everything inside let() is calculated once and reused, keeping the formula readable rather than repeating the same expressions multiple times.&lt;br&gt;
completed_val, if(empty(Completed Tasks), 0, toNumber(Completed Tasks)), — converts the Completed Tasks rollup to a number, defaulting to 0 if the rollup is empty.&lt;br&gt;
total_val, if(empty(Total Tasks), 0, toNumber(Total Tasks)), — same conversion for Total Tasks.&lt;br&gt;
percentage, round(completed_val / total_val * 100), — divides completed by total, multiplies by 100, rounds to the nearest whole number.&lt;br&gt;
progress_blocks_count, floor(percentage / 10), — converts the percentage to a 0–10 scale for the visual bar. 70% becomes 7 filled blocks.&lt;br&gt;
filled_bar, (substring("", 0, progress_blocks_count)), — builds the filled portion of the visual bar using a repeated character, sliced to the right length.&lt;br&gt;
empty_bar, (substring("", 0, 10 - progress_blocks_count)), — builds the empty portion of the bar for the remaining blocks.&lt;br&gt;
format(percentage) + "% " + filled_bar + empty_bar — concatenates the percentage number with the visual bar into a single readable output like 70% ███████░░░&lt;br&gt;
"0%"))) — the fallback for any project with no tasks attached.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The result:&lt;/strong&gt; A single property that shows both the precise percentage and a visual bar — 70% ███████░░░ — updating automatically as tasks are completed. Projects in Backlog or On Hold always show 0% cleanly, and fully completed projects snap to 100% without rounding errors.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;One thing to watch:&lt;/strong&gt; The Status check in the second line references your project's Status property directly — make sure your Status options are named exactly "backlog" and "on hold" (lowercase) or update the formula strings to match your exact option names. The comparison is case-sensitive.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Formula 2: Automatic Task Value Calculation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it does:&lt;/strong&gt; Assigns a point value to each task automatically based on its priority — so the value is set the moment you choose a priority, with no separate field to fill in.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it matters:&lt;/strong&gt; If you're using a gamified productivity system — or building toward one — manual value entry creates friction at exactly the wrong moment. You've just decided to add a task. The last thing you want to do is also decide how many points it's worth. This formula makes the value decision automatic: High priority tasks give more points, Low priority tasks give fewer, and you only have to set the priority — which you'd be doing anyway.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Where to use it:&lt;/strong&gt; In a Tasks database with a Priority select property.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Setup:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;In your Tasks database, confirm you have a Select property called "Priority" with options: Low, Medium, High&lt;/li&gt;
&lt;li&gt;Add a Formula property — name it "Task Value"&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The formula:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if(Priority == "High", 10, if(Priority == "Medium", 5, 1))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;What each part does:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;if(Priority == "High", 10, — if priority is High, the task is worth 10 points.&lt;/p&gt;

&lt;p&gt;if(Priority == "Medium", 5, — Medium priority tasks earn 5 points.&lt;/p&gt;

&lt;p&gt;1)) — everything else — Low priority or unset priority — earns 1 point. Two closing parentheses for two nested ifs. Low priority tasks still get 1 point rather than 0, which means every completed task contributes something regardless of how it was prioritized.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The result:&lt;/strong&gt; Every task automatically has a value the moment you set its priority. No separate field to fill in, no decisions to make. High = 10, Medium = 5, Low = 1.&lt;/p&gt;

&lt;p&gt;Rolling Task Value up to your Character Sheet: Once tasks have values, create a Rollup in your Character Sheet database:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Relation: Tasks&lt;/li&gt;
&lt;li&gt;Property: Task Value&lt;/li&gt;
&lt;li&gt;Filter: Status = Done&lt;/li&gt;
&lt;li&gt;Calculate: Sum&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This gives you a running total of points earned from completed tasks only — the foundation of the leveling system. Every time you complete a task, the rollup updates automatically and your total climbs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;One thing to watch:&lt;/strong&gt; The formula checks the exact string value of your Priority options. If your options are named "HIGH" or "high" or "High Priority" instead of "High," the formula won't match. Open your Priority property settings, check the exact option names, and update the formula strings to match.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Using Both Together&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;These formulas work independently — you can add either one to an existing workspace without touching the other. But they're designed to complement each other.&lt;/p&gt;

&lt;p&gt;The progress formula tells you where your projects stand. The task value formula rewards you for completing the work that moves them forward. Together they create a feedback loop: you can see the project moving (progress %), and each completion registers as a real gain (task value rolling up to your total).&lt;/p&gt;

&lt;p&gt;That loop — visibility and reward — is what most productivity systems are missing. The checkboxes are there. The motivation to check them isn't.&lt;/p&gt;

&lt;p&gt;If you want both of these formulas pre-configured in a workspace that's already set up and linked together, that's what &lt;a href="https://luxfreedevhub.carrd.co" rel="noopener noreferrer"&gt;DevHub Basic&lt;/a&gt; gives you. The free version has the full database structure with these formulas already in place.&lt;/p&gt;

&lt;p&gt;If you'd rather build it yourself, copy the formulas above directly — they're ready to paste into your formula editor.&lt;/p&gt;

</description>
      <category>notion</category>
      <category>productivity</category>
      <category>tutorial</category>
      <category>webdev</category>
    </item>
    <item>
      <title>I Tracked My Productivity for 90 Days Before and After Gamification. Here's What the Data Shows.</title>
      <dc:creator>Lux Seminare</dc:creator>
      <pubDate>Sat, 30 May 2026 07:31:41 +0000</pubDate>
      <link>https://dev.to/lux_seminare/i-tracked-my-productivity-for-90-days-before-and-after-gamification-heres-what-the-data-shows-1mc</link>
      <guid>https://dev.to/lux_seminare/i-tracked-my-productivity-for-90-days-before-and-after-gamification-heres-what-the-data-shows-1mc</guid>
      <description>&lt;p&gt;I want to be upfront about something before you read this.&lt;/p&gt;

&lt;p&gt;I'm not a developer. I build Notion productivity systems for developers. So when I say I tracked my productivity, I mean I tracked my own workflow as someone who manages multiple products, handles customer feedback, writes content, and does a lot of the administrative work that comes with running a small digital product business.&lt;/p&gt;

&lt;p&gt;The tasks are different from coding. The principle turned out to be the same.&lt;/p&gt;

&lt;p&gt;Here's what I measured, what changed, and what stayed exactly the same.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Setup&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For 45 days I used a traditional Notion setup. Plain task database, status column, due dates. Nothing fancy. I logged every task I completed, what type it was, and how long it took.&lt;br&gt;
Then I switched to a gamified system — the same one I eventually packaged into DevHub — and tracked the same metrics for another 45 days.&lt;/p&gt;

&lt;p&gt;Same categories. Same logging discipline. Same types of work. The only variable was the system.&lt;/p&gt;

&lt;p&gt;I tracked four things:&lt;/p&gt;

&lt;p&gt;Tasks completed per week&lt;br&gt;
Learning hours per week&lt;br&gt;
How many days per week I actually opened my task manager&lt;br&gt;
Subjective motivation score at end of each day (1–10, logged in a daily note)&lt;/p&gt;

&lt;p&gt;I did not track revenue, output quality, or anything that could be attributed to a dozen other variables. Just the task behavior itself.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Before: 45 Days with a Traditional System&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Average tasks completed per week: 15&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Some weeks were higher — 19 or 20 when I had a clear deadline pushing me. Some were much lower — 9 or 10 on weeks where nothing felt urgent.&lt;/p&gt;

&lt;p&gt;The pattern I noticed: I completed tasks when external pressure demanded it, not because the system motivated me. The system was neutral at best.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Average learning hours per week: 2.1&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I had a running list of things I wanted to learn. It sat there. I'd open it occasionally, feel vaguely guilty about not making progress, close it. The learning tasks never felt urgent enough to prioritize over the task list proper.&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;Days per week I opened my task manager: 3.8 out of 7&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
This one surprised me when I calculated it. I was avoiding my own system almost half the week. On those days I worked from memory and Slack notifications, which meant I was reactive rather than intentional about what I worked on.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Average daily motivation score: 5.9 out of 10&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Not miserable. Not energized. Somewhere in the middle, most days feeling like I was keeping up rather than making progress.&lt;br&gt;
The feeling I kept writing in my notes: I'm doing work but I can't tell if it's the right work, and I can't tell if I'm getting better.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I Changed&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I rebuilt my Notion workspace using game design principles. The structural changes were:&lt;/p&gt;

&lt;p&gt;Tasks now earned XP on completion. The amount varied by a priority property — high priority tasks gave a small bonus on top of the base value.&lt;/p&gt;

&lt;p&gt;Projects showed completion percentage that fed directly into XP. So finishing a project felt like finishing a quest — there was a visible endpoint and a reward attached to reaching it.&lt;/p&gt;

&lt;p&gt;Learning was no longer a separate list that I ignored. It lived in the same workspace as my tasks, linked to the projects that needed it, and contributed XP when I made progress on it. This made learning feel like part of the work rather than optional enrichment.&lt;/p&gt;

&lt;p&gt;A character sheet showed my current level, total XP, tasks completed, and a streak counter. I looked at it every morning before starting work.&lt;/p&gt;

&lt;p&gt;That last part turned out to matter more than I expected.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;After: 45 Days with a Gamified System&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;Average tasks completed per week: 26&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
That is a 73% increase from 15 to 26.&lt;/p&gt;

&lt;p&gt;I want to be careful about how I frame this. The tasks I was completing were not necessarily more important than before. I did not suddenly become a different person. What changed is that I had a reason to complete tasks that existed independent of external deadlines.&lt;/p&gt;

&lt;p&gt;Before, I completed tasks when something forced me to. After, I completed tasks because each one moved a visible number upward. That sounds trivial. In practice it was not.&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;Average learning hours per week: 4.7&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
A 124% increase. This one I attribute almost entirely to one structural change: learning was now in the same workspace as my tasks and contributed to the same XP total. It stopped being a separate category I could deprioritize. It became just another type of work with the same reward structure.&lt;/p&gt;

&lt;p&gt;The weeks where I did the most learning were not the weeks where I felt most motivated. They were the weeks where I had the most active projects — because each project had learning tasks linked to it, so doing the project work surfaced the learning naturally.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Days per week I opened my task manager: 6.4 out of 7&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;From 3.8 to 6.4. I went from avoiding my system almost half the week to opening it almost every day.&lt;/p&gt;

&lt;p&gt;This is the metric I find most significant. The task completion increase is partly a consequence of this one — you can't complete tasks in a system you don't open. The gamification didn't make me more disciplined. It made the act of opening the system feel like something other than confronting a list of failures.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Average daily motivation score: 7.4 out of 10&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;From 5.9 to 7.4. The feeling I kept writing in my notes after the switch: I can see what I did today. I can see I'm slightly better than I was last week.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What Gamification Did Not Change&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Task quality. I did not produce better work because of XP. If anything, there were weeks where I noticed myself gravitating toward easier tasks because they were still tasks and still gave XP. I had to consciously counteract this by making sure high-priority tasks had appropriately weighted values.&lt;/p&gt;

&lt;p&gt;Clarity about what to work on. The gamification layer does not make decisions for you. On days where I wasn't sure what the right next thing was, the XP system did not help. I still needed a clear priority structure — the gamification just made it more rewarding to execute on it once I had it.&lt;/p&gt;

&lt;p&gt;Deep work capacity. I don't think I got meaningfully better at sustained focused work because of gamification. What I got better at was showing up to the workspace consistently, which created more opportunities for deep work — but the deep work itself still required everything it always required: time, silence, no notifications, a clear problem.&lt;/p&gt;

&lt;p&gt;Discipline on hard days. Some days I still didn't want to work. The character sheet didn't fix that. The days where motivation was genuinely low, the XP system felt like a thin layer over a real problem that needed a real solution — rest, exercise, a conversation with someone, not more dopamine from a number going up.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why I Think the Numbers Moved&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;My honest interpretation: the gamification didn't make me more capable. It removed specific friction points that were causing avoidance.&lt;/p&gt;

&lt;p&gt;The three friction points it removed:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Invisible progress&lt;/strong&gt;. Before, completing tasks made them disappear. There was no accumulating record of what I'd done. Each week started from zero. The XP system gave completion a visible, permanent effect — the number only goes up, and you can see how far it's come.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Learning deprioritization&lt;/strong&gt;. Before, learning lived in a separate list that had no connection to my project work and no reward for making progress. After, it was structurally integrated and mechanically equivalent to any other task. Integration changed behavior more than motivation ever did.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;System avoidance&lt;/strong&gt;. Before, opening my task manager meant confronting everything I hadn't done. After, opening it meant seeing my level, my streak, my recent XP gains. The first thing I saw was evidence of progress rather than evidence of backlog. That sounds like a small thing. It is not a small thing.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;What This Means If You're Considering a Gamified System&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It will probably help if your main problem is one of these three: you avoid opening your task manager, you deprioritize learning consistently, or you feel like you're doing work but can't see yourself improving.&lt;/p&gt;

&lt;p&gt;It probably won't help if your main problem is clarity — knowing what to work on, prioritizing correctly, managing a complex project with many dependencies. A gamified system is motivational infrastructure, not decision-making infrastructure. You still need to think clearly about what matters. The XP just makes it more rewarding to execute once you've decided.&lt;/p&gt;

&lt;p&gt;The other thing worth saying: the 73% number is real but it's also mine. Your baseline matters. If you're already completing 40 tasks a week because external structure forces you to, gamification might add less. If you're completing 8 tasks a week because you avoid your system entirely, it might add more.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://luxfreedevhub.carrd.co" rel="noopener noreferrer"&gt;free version&lt;/a&gt; of DevHub gives you the structural foundation — the databases, the views, the linked system — without the XP layer. If you want to test whether the structure alone changes anything before committing to the full gamified version, that's the right place to start.&lt;/p&gt;

&lt;p&gt;→ luxseminare.gumroad.com&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>career</category>
      <category>motivation</category>
      <category>showdev</category>
    </item>
    <item>
      <title>How to Build Learning Tracker in Notion</title>
      <dc:creator>Lux Seminare</dc:creator>
      <pubDate>Fri, 29 May 2026 13:39:56 +0000</pubDate>
      <link>https://dev.to/lux_seminare/how-to-build-learning-tracker-in-notion-3148</link>
      <guid>https://dev.to/lux_seminare/how-to-build-learning-tracker-in-notion-3148</guid>
      <description>&lt;h2&gt;
  
  
  How to Build a Learning Tracker in Notion That Actually Teaches You Things
&lt;/h2&gt;

&lt;p&gt;Most Notion learning trackers are glorified course lists.&lt;/p&gt;

&lt;p&gt;You add a course, set the status to In Progress, update the progress percentage occasionally, and call it a system. The problem is that tracking progress through a course is not the same as retaining what the course teaches. You can watch every video, mark it complete, and remember almost nothing three weeks later.&lt;/p&gt;

&lt;p&gt;This guide builds something more complete. Not just a tracker for what you're learning, but a system for how you learn — with spaced repetition scheduling that tells you when to review something, active recall templates that force retrieval rather than passive re-reading, and a dashboard that surfaces the right material at the right moment without you having to think about what to study next.&lt;/p&gt;

&lt;p&gt;It's more involved than a simple database. It's also significantly more useful.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What You're Building&lt;/strong&gt;&lt;br&gt;
Three interconnected databases:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Skills &amp;amp; Topics Hub&lt;/strong&gt; — the subjects you're developing, with visual progress tracking&lt;br&gt;
&lt;strong&gt;Resource Library&lt;/strong&gt; — the courses, books, articles, and documentation feeding into those skills&lt;br&gt;
&lt;strong&gt;Notes &amp;amp; Synthesis Log&lt;/strong&gt; — your active recall notes with automatic spaced repetition scheduling&lt;/p&gt;

&lt;p&gt;A dashboard pulling all three together into one workspace with filtered views for capturing, studying, and reviewing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Base Page Setup&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Create a blank page in Notion and name it &lt;strong&gt;Learning Tracker&lt;/strong&gt;.&lt;br&gt;
At the top, type /callout to insert a callout block. Add the icon ✦ and label it &lt;strong&gt;Learning Tracker Controller&lt;/strong&gt;. This serves as your workspace header — a fixed reference point at the top of the page.&lt;/p&gt;

&lt;p&gt;Press Enter and type three dashes --- to insert a thin divider beneath the header.&lt;/p&gt;

&lt;p&gt;Below the divider, you'll set up a two-column layout. Type two lines of placeholder text: "Left Column" and "Right Column." Hover over "Left Column," click and hold its six-dot drag handle, and drag it to the left edge of "Right Column" until a vertical blue guide line appears. Release. This creates a 30% / 70% split — the left column for navigation and capture, the right column for your main working views.&lt;/p&gt;

&lt;p&gt;Leave the placeholder text for now. You'll replace it with linked database views in Step 7.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2: Create Your Database Directory&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Before building the databases, create a hidden directory page to store the source databases. Below the column layout, type /heading 1. Type "Database Directory". Below it, create three separate databases using /table → Table view → New database:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Skills &amp;amp; Topics Hub&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Resource Library&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Notes &amp;amp; Synthesis Log&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3: Configure Database Properties&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Navigate into each database inside the Database Directory and set up the properties exactly as listed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Skills &amp;amp; Topics Hub&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Properties You Need:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Title (Default)&lt;/li&gt;
&lt;li&gt;Status (Select)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Status Options (You can customize):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Not Started&lt;/li&gt;
&lt;li&gt;In Progress&lt;/li&gt;
&lt;li&gt;Mastered&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Progress Bar property comes later via formula — don't add it manually.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Resource Library&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Properties You Need:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Status (Status)&lt;/li&gt;
&lt;li&gt;Type (Select)&lt;/li&gt;
&lt;li&gt;URL (URL)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Status Options (You can customize): &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;To Start (Not Started Category)&lt;/li&gt;
&lt;li&gt;In Progess (In Progress Category)&lt;/li&gt;
&lt;li&gt;Completed (Complete Category)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Type Options (You can customize):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Video&lt;/li&gt;
&lt;li&gt;Article&lt;/li&gt;
&lt;li&gt;Book&lt;/li&gt;
&lt;li&gt;Course&lt;/li&gt;
&lt;li&gt;Documentation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Use Notion's native Status property type (not Select) for the Status column — it has built-in category groupings that the formula and filtering logic depends on.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Notes &amp;amp; Synthesis Log&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Properties You Need:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Title (Default)&lt;/li&gt;
&lt;li&gt;Last Reviewed (Date)&lt;/li&gt;
&lt;li&gt;Retention Score (Select)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Retention Score Options (You can customize):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Again&lt;/li&gt;
&lt;li&gt;Hard&lt;/li&gt;
&lt;li&gt;Good&lt;/li&gt;
&lt;li&gt;Easy&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Title field naming convention matters here. Every entry in Notes &amp;amp; Synthesis Log should be phrased as a question you'd ask yourself during review — not "React useEffect" but "What does useEffect do and when does it run?" This framing turns passive browsing into active retrieval every time you open the database.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4: Build the Bi-Directional Relations&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Relations connect the three databases so that a skill knows which resources feed into it, which notes synthesize it, and a resource knows which notes were taken from it. Build them in this order.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In Skills &amp;amp; Topics Hub:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Add a Relation property → search for &lt;strong&gt;Resource Library&lt;/strong&gt; → toggle on "Show on Resource Library."&lt;/p&gt;

&lt;p&gt;Name in Skills &amp;amp; Topics Hub: Resources&lt;br&gt;
Name in Resource Library: Skill / Topic&lt;/p&gt;

&lt;p&gt;Add a second Relation property → search for &lt;strong&gt;Notes &amp;amp; Synthesis Log&lt;/strong&gt; → toggle on "Show on Notes &amp;amp; Synthesis Log."&lt;/p&gt;

&lt;p&gt;Name in Skills &amp;amp; Topics Hub: Notes&lt;br&gt;
Name in Notes &amp;amp; Synthesis Log: Skill / Topic&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In Resource Library:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Add a Relation property → search for &lt;strong&gt;Notes &amp;amp; Synthesis Log&lt;/strong&gt; → toggle on "Show on Notes &amp;amp; Synthesis Log."&lt;/p&gt;

&lt;p&gt;Name in Resource Library: Notes &amp;amp; Logs&lt;br&gt;
Name in Notes &amp;amp; Synthesis Log: Resource Link&lt;/p&gt;

&lt;p&gt;When complete, each database entry is connected across all three:&lt;/p&gt;

&lt;p&gt;A skill → knows its resources and its notes&lt;br&gt;
A resource → knows its skill and its notes&lt;br&gt;
A note → knows its skill and its resource&lt;/p&gt;

&lt;p&gt;This three-way connection is what makes the system function as a knowledge graph rather than three separate lists.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 5: Add the Formulas&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Two formulas power the system's intelligence. Both use Notion Formulas 2.0 syntax.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Formula 1: Progress Bar in Skills &amp;amp; Topics Hub&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This formula calculates what percentage of a skill's linked resources are completed and displays it as a color-coded visual bar without requiring any rollup properties.&lt;/p&gt;

&lt;p&gt;Add a Formula property to Skills &amp;amp; Topics Hub. Name it &lt;strong&gt;Progress Bar&lt;/strong&gt;. Open the formula editor and paste:&lt;/p&gt;

&lt;p&gt;lets(&lt;br&gt;
  resources, prop("Resources"),&lt;br&gt;
  totalCount, resources.length(),&lt;/p&gt;

&lt;p&gt;totalValue, resources.map(&lt;br&gt;
    if(current.prop("Status") == "Completed", 1,&lt;br&gt;
    if(current.prop("Status") == "In progress", 0.5, 0))&lt;br&gt;
  ).sum(),&lt;/p&gt;

&lt;p&gt;ratio, if(totalCount &amp;gt; 0, totalValue / totalCount, 0),&lt;/p&gt;

&lt;p&gt;filledSegments, round(ratio * 10),&lt;br&gt;
  emptySegments, 10 - filledSegments,&lt;br&gt;
  progressBar, "■".repeat(filledSegments).style("purple", "b") + "□".repeat(emptySegments).style("gray"),&lt;/p&gt;

&lt;p&gt;if(&lt;br&gt;
    totalCount &amp;gt; 0,&lt;br&gt;
    progressBar + " " + round(ratio * 100) + "%",&lt;br&gt;
    "No Resources Linked".style("gray", "i")&lt;br&gt;
  )&lt;br&gt;
)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Formula 2: Next Review Date in Notes &amp;amp; Synthesis Log&lt;/strong&gt;'&lt;/p&gt;

&lt;p&gt;This formula implements spaced repetition scheduling. Based on your last Retention Score, it calculates when you should next review a note — automatically.&lt;/p&gt;

&lt;p&gt;Add a Formula property to Notes &amp;amp; Synthesis Log. Name it &lt;strong&gt;Next Review Date&lt;/strong&gt;. Open the formula editor and paste:&lt;/p&gt;

&lt;p&gt;lets(&lt;br&gt;
  last, prop("Last Reviewed"),&lt;br&gt;
  score, prop("Retention Score"),&lt;br&gt;
  base, if(empty(last), now(), last),&lt;br&gt;
  interval,&lt;br&gt;
    if(empty(score), 0,&lt;br&gt;
    if(score == "Again", 0,&lt;br&gt;
    if(score == "Hard", 1,&lt;br&gt;
    if(score == "Good", 3,&lt;br&gt;
    if(score == "Easy", 7,&lt;br&gt;
    0))))),&lt;br&gt;
  dateAdd(base, interval, "days")&lt;br&gt;
)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How to use it:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After reviewing a note, update Last Reviewed to today and set Retention Score to how well you remembered it. The Next Review Date recalculates automatically. Notes you rated Easy disappear from your review queue for a week. Notes you rated Again reappear immediately.&lt;/p&gt;

&lt;p&gt;This is a simplified spaced repetition system — not as sophisticated as Anki's algorithm, but significantly more effective than reviewing everything at random or reviewing nothing at all.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 6: Create the Active Recall Template&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Active recall is the practice of retrieving information from memory rather than passively re-reading it. The template enforces this by hiding answers inside toggle blocks — you read the question, attempt the answer mentally, then reveal the answer to check.&lt;/p&gt;

&lt;p&gt;In Notes &amp;amp; Synthesis Log, click the dropdown arrow next to the blue New button → select + &lt;strong&gt;New Template&lt;/strong&gt; → name it &lt;strong&gt;✦ Active Recall Note&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Inside the template canvas, build this structure:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Line 1:&lt;/strong&gt; Type /toggle to create a toggle block. Title it: Click to Reveal Core Concept Answer&lt;/p&gt;

&lt;p&gt;Inside the toggle (click to open it), write the answer, explanation, or synthesis. For code-related notes, type /code to insert a code block with syntax highlighting. For inline references, wrap terms in backticks.&lt;/p&gt;

&lt;p&gt;The answer lives inside the toggle. When you review the note, you read the title (the question), attempt recall, then click the toggle to verify. This is the retrieval practice that makes the learning stick.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Line 2:&lt;/strong&gt; Below the toggle, type --- for a divider.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Line 3:&lt;/strong&gt; Type ## Synthesis Log as a Heading 2.&lt;/p&gt;

&lt;p&gt;Under the Synthesis Log heading, write a plain-language explanation of the concept in your own words. Not a copy of the source material — your own synthesis. If you can't explain it in your own words, you don't understand it yet. This section exposes that gap before you move on.&lt;/p&gt;

&lt;p&gt;Click back to exit the template editor. Now every new note created in Notes &amp;amp; Synthesis Log can use this template with one click.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 7: Assemble the Dashboard&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Return to your top-level Learning Tracker page. Delete the placeholder column text and replace it with linked database views.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Left Column (30% width) — Navigation and Capture&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;View 1: Quick Inbox Capture&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Type /list → select List view → choose Notes &amp;amp; Synthesis Log as the data source.&lt;/p&gt;

&lt;p&gt;Add two filters:&lt;/p&gt;

&lt;p&gt;Resource Link → is empty&lt;br&gt;
Skill / Topic → is empty&lt;/p&gt;

&lt;p&gt;This view shows only notes that haven't been linked to a skill or resource yet. Use it as a capture inbox — write notes quickly here without worrying about categorization, then triage them into the right skill and resource later.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;View 2: Skills &amp;amp; Taxonomy Roadmap&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Type /board → select Board view → choose Skills &amp;amp; Topics Hub as the data source → group by Status.&lt;/p&gt;

&lt;p&gt;Click the three dots on the database block → Properties → click the eye icon to make Progress Bar visible on the cards.&lt;/p&gt;

&lt;p&gt;The board shows your skills organized by Not Started, In Progress, and Mastered, with each card displaying its visual progress bar. At a glance you can see which skills are active and how far along each one's resource list is.&lt;/p&gt;

&lt;p&gt;Right Column (70% width) — Active Work&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;View 3: Active Research Feed&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Type /gallery → select Gallery view → choose Resource Library as the data source.&lt;/p&gt;

&lt;p&gt;In layout options: set Card preview to None, card size to Small.&lt;/p&gt;

&lt;p&gt;Add a filter: Status is In Progress.&lt;/p&gt;

&lt;p&gt;Show properties: Type and Skill / Topic.&lt;/p&gt;

&lt;p&gt;This view shows only the resources you're currently working through — nothing queued, nothing completed. A small gallery of active items gives you a clear read on whether you have too many resources open at once (more than three usually means context switching is happening).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;View 4: Today's Active Recall Queue&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Type /board → select Board view → choose Notes &amp;amp; Synthesis Log as the data source.&lt;/p&gt;

&lt;p&gt;Add a filter: Next Review Date is on or before Today.&lt;/p&gt;

&lt;p&gt;Group by: Retention Score. Sort ascending by Next Review Date.&lt;br&gt;
This is your daily study queue. Every note whose Next Review Date has arrived appears here automatically. The Retention Score grouping shows which notes keep returning as Again or Hard — those are the concepts that need more attention. Notes rated Easy move to a 7-day interval and disappear from the queue until next week.&lt;/p&gt;

&lt;p&gt;Open the board each morning. Work through the cards. Update Last Reviewed and Retention Score for each one. The queue rebuilds itself overnight based on the scores you set.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 8: Connect to Notion Calendar&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Notion Calendar lets you see your review schedule as actual calendar events — useful for planning study sessions alongside your regular work.&lt;/p&gt;

&lt;p&gt;Open Notion Calendar (calendar.notion.so or the desktop app).&lt;br&gt;
Go to Settings → Notion workspaces → Add Notion workspace to authenticate.&lt;/p&gt;

&lt;p&gt;In the left sidebar, hover over your workspace name → click ••• → select Add Notion database.&lt;/p&gt;

&lt;p&gt;Search for and select Notes &amp;amp; Synthesis Log.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How the System Works Day to Day&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When you start a new resource:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Add it to Resource Library with Status = To Start. Link it to the relevant skill in Skills &amp;amp; Topics Hub. The skill's Progress Bar stays at 0% until you start completing resources.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;While working through the resource:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Change Status to In Progress. Take notes in Notes &amp;amp; Synthesis Log using the Active Recall template. Phrase every note title as a question. Link each note to both the resource and the skill.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;After a study session:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Open Today's Active Recall Queue. Review each due note — read the question, recall the answer, click the toggle to verify. Update Last Reviewed to today. Set Retention Score honestly. The Next Review Date recalculates.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When a resource is complete:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Change Status to Completed. The Progress Bar in Skills &amp;amp; Topics Hub updates automatically. When all resources for a skill are complete, the bar fills. Change the skill Status to Mastered.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Weekly:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Check Quick Inbox Capture for unlinked notes and triage them. Check the Skills Roadmap for skills that have stalled. Open Active Research Feed and confirm you don't have more than three resources In Progress simultaneously.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why This Works Better Than a Simple Progress Tracker&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The standard learning tracker tells you how far through a course you are. This system tells you how much of what you've covered you actually remember.&lt;/p&gt;

&lt;p&gt;The spaced repetition schedule means concepts you struggle with come back sooner. Concepts you know well come back less often. Over time the review queue adapts to the shape of your actual knowledge gaps rather than reviewing everything at a fixed interval.&lt;/p&gt;

&lt;p&gt;The active recall templates mean every review session is a retrieval practice event, not a re-reading session. Retrieval practice produces significantly better long-term retention than passive review. The toggle structure enforces it without requiring willpower.&lt;/p&gt;

&lt;p&gt;The relational architecture means your skills, resources, and notes are never disconnected. A skill knows its resources. A note knows where it came from. Nothing lives in isolation.&lt;/p&gt;

&lt;p&gt;If you want a pre-built version of this system without building all the formulas and relations from scratch, &lt;a href="https://luxseminare.gumroad.com/l/learningtracker" rel="noopener noreferrer"&gt;click here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;What's your current system for retaining what you learn from courses? Drop it in the comments.&lt;/p&gt;

</description>
      <category>notion</category>
      <category>tutorial</category>
      <category>productivity</category>
      <category>webdev</category>
    </item>
    <item>
      <title>10 Notion Productivity Systems Compared (2026 Guide)</title>
      <dc:creator>Lux Seminare</dc:creator>
      <pubDate>Tue, 26 May 2026 06:17:13 +0000</pubDate>
      <link>https://dev.to/lux_seminare/10-notion-productivity-systems-compared-2026-guide-1jld</link>
      <guid>https://dev.to/lux_seminare/10-notion-productivity-systems-compared-2026-guide-1jld</guid>
      <description>&lt;p&gt;I've tried most of these. Some stuck. Most didn't. Here's what actually separates them.&lt;br&gt;
This isn't a ranking. Different systems solve different problems, and the one that works for you depends on what's actually breaking in your current workflow. Read the problem description for each one first — if it doesn't sound like your problem, the system probably isn't for you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. GTD — Getting Things Done&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;The problem it solves:&lt;/strong&gt; You have commitments everywhere — email, Slack, sticky notes, your head — and no single place that holds all of them. You spend mental energy remembering things instead of doing them.&lt;br&gt;
&lt;strong&gt;Core idea:&lt;/strong&gt; Capture everything into one trusted system. Process it into actionable next steps. Review it regularly. Your brain is for thinking, not storage.&lt;br&gt;
&lt;strong&gt;How it works in Notion:&lt;/strong&gt;&lt;br&gt;
Build four databases: Inbox (raw capture), Projects (multi-step outcomes), Next Actions (single physical tasks), and Reference (non-actionable information). Everything you capture goes to Inbox first. During your daily review you process each item into one of the other three. Nothing stays in your head.&lt;br&gt;
&lt;strong&gt;What it's genuinely good at:&lt;/strong&gt; Handling complexity. If you're juggling 10+ projects across multiple life areas — work, side projects, family, health — GTD scales better than anything else on this list because it has explicit rules for every type of input.&lt;br&gt;
&lt;strong&gt;Where it breaks down:&lt;/strong&gt; The setup is involved, and the weekly review is non-negotiable. Skip it for two weeks and the whole system becomes untrusted. Most people find the processing step (deciding what something is and where it goes) more friction than they expected.&lt;br&gt;
&lt;strong&gt;Best for:&lt;/strong&gt; Senior developers, consultants, or anyone whose job involves managing a lot of incoming requests across multiple contexts simultaneously.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. PARA Method&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;The problem it solves:&lt;/strong&gt; You have information everywhere and can't find anything when you need it. Your notes, projects, and resources all blend together.&lt;br&gt;
&lt;strong&gt;Core idea:&lt;/strong&gt; Organize everything into four categories — Projects (active, deadline-driven), Areas (ongoing responsibilities), Resources (reference material by topic), Archives (inactive stuff). The key insight: information should be organized by how actionable it is, not by what topic it belongs to.&lt;br&gt;
&lt;strong&gt;How it works in Notion:&lt;/strong&gt;&lt;br&gt;
Four top-level pages: Projects, Areas, Resources, Archives. Every note, document, and database lives inside one of these. Projects have a clear end state and a deadline. Areas are ongoing (health, finances, career). Resources are topics you're interested in. Archives is everything else you want to keep.&lt;br&gt;
&lt;strong&gt;What it's genuinely good at:&lt;/strong&gt; Organizing reference material. If you take a lot of notes, save a lot of articles, and do a lot of research, PARA gives you a filing system that actually makes sense at retrieval time.&lt;br&gt;
&lt;strong&gt;Where it breaks down:&lt;/strong&gt; PARA is an organizational system, not a task management system. It tells you where to put things, not what to work on next. Most people combine it with GTD or a simpler daily task method.&lt;br&gt;
&lt;strong&gt;Best for:&lt;/strong&gt; Knowledge workers, researchers, writers, and developers who do a lot of note-taking and need their reference material organized.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Bullet Journal Method (BuJo)&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;The problem it solves:&lt;/strong&gt; Digital systems feel overengineered. You open your task manager and spend more time organizing tasks than doing them.&lt;br&gt;
&lt;strong&gt;Core idea:&lt;/strong&gt; A simple analog-inspired logging system using rapid logging — short, coded entries (tasks, events, notes) in a running log. Daily log, monthly log, future log. Migrate unfinished tasks forward or drop them if they no longer matter.&lt;br&gt;
&lt;strong&gt;How it works in Notion:&lt;/strong&gt;&lt;br&gt;
Create a Daily Log database with date, entry type (task/event/note), content, and status. Add a Monthly Log page as a simple calendar view. Add a Future Log page for things more than a month out. Use simple symbols: • for task, ○ for event, — for note, × for completed, &amp;gt; for migrated.&lt;br&gt;
&lt;strong&gt;What it's genuinely good at:&lt;/strong&gt; Forcing prioritization. The migration process (rewriting unfinished tasks each day) is intentionally tedious — it makes you ask whether the task is actually worth carrying forward. Things that aren't important naturally drop off.&lt;br&gt;
&lt;strong&gt;Where it breaks down:&lt;/strong&gt; Notion isn't a great fit for BuJo's rapid, freeform nature. The original is analog for a reason. The digital version loses a lot of the feel. It also doesn't scale well to complex projects.&lt;br&gt;
&lt;strong&gt;Best for:&lt;/strong&gt; Developers who are overwhelmed by complex systems and want something minimal that forces them to prioritize daily.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Zettelkasten&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;The problem it solves:&lt;/strong&gt; You read and learn constantly but none of it connects. Your notes are a graveyard of things you've forgotten.&lt;br&gt;
&lt;strong&gt;Core idea:&lt;/strong&gt; Every note is atomic (one idea only), written in your own words, and linked to related notes. Over time the links between notes create an emergent knowledge graph — ideas connect in ways you didn't anticipate when you wrote them.&lt;br&gt;
&lt;strong&gt;How it works in Notion:&lt;/strong&gt;&lt;br&gt;
One database for all notes. Each note has a unique ID, a title, the content (in your own words, never copy-paste), and a relations field linking to other notes. Add a "Source" field for where the idea came from. Browse using the graph or by following links from one note to another.&lt;br&gt;
&lt;strong&gt;What it's genuinely good at:&lt;/strong&gt; Long-term knowledge development. If you're doing deep learning — reading books, papers, building expertise over years — Zettelkasten makes old knowledge findable and combinable in new ways.&lt;br&gt;
&lt;strong&gt;Where it breaks down:&lt;/strong&gt; High upfront cost per note. Writing everything in your own words and linking it properly takes time. It rewards patience. Most people give up before the network is dense enough to feel useful.&lt;br&gt;
&lt;strong&gt;Best for:&lt;/strong&gt; Developers who write, research, or want to build deep expertise in a technical domain over years.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Time Blocking&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;The problem it solves:&lt;/strong&gt; Your calendar is full of meetings but your actual work — the deep, focused kind — never gets scheduled. It gets squeezed into whatever gaps are left.&lt;br&gt;
&lt;strong&gt;Core idea:&lt;/strong&gt; Treat your time like a budget. Every hour of your workday is assigned to a specific type of work in advance. Deep work blocks are protected, not optional.&lt;br&gt;
&lt;strong&gt;How it works in Notion:&lt;/strong&gt;&lt;br&gt;
A simple weekly template with time blocks as rows and days as columns. Color-code by block type: deep work (green), meetings (red), admin (yellow), buffer (gray). Each morning, fill in what you'll actually do in the deep work blocks. Review at end of day — did reality match the plan?&lt;br&gt;
&lt;strong&gt;What it's genuinely good at:&lt;/strong&gt; Protecting maker time. For developers, uninterrupted blocks are the only time meaningful work gets done. Time blocking makes those blocks explicit and defensible.&lt;br&gt;
&lt;strong&gt;Where it breaks down:&lt;/strong&gt; Requires a calendar that you actually control. If your day is dominated by meetings you can't move, time blocking helps less. Also breaks down badly when things run over — the rest of the day cascades.&lt;br&gt;
&lt;strong&gt;Best for:&lt;/strong&gt; Developers with some control over their schedule who want to protect their deep work time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Kanban&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;The problem it solves:&lt;/strong&gt; You have too much in progress at once. You're working on six things simultaneously and finishing none of them. Work piles up in columns nobody reviews, and there's no shared language for what "in progress" actually means.&lt;br&gt;
&lt;strong&gt;Core idea:&lt;/strong&gt; Visualize the entire flow of work — not just tasks, but the stages they move through. Limit work in progress at every stage, not just the doing column. When something is blocked, the block is visible to everyone immediately. The system pulls work forward based on capacity rather than pushing it in based on demand.&lt;br&gt;
&lt;strong&gt;How it works in Notion:&lt;/strong&gt;&lt;br&gt;
A Board view of your Tasks database. Columns represent stages in your actual workflow — not just Backlog, Doing, Done, but the real stages your work moves through: Backlog, Defined, In Progress, In Review, Done. Each column has an explicit WIP limit you set and respect. Cards show the information that matters at each stage — assignee, priority, due date, blocker flag. You can add a Blocked status that surfaces stuck work immediately rather than hiding it inside a column where it looks like progress.&lt;br&gt;
&lt;strong&gt;What it's genuinely good at:&lt;/strong&gt; Making flow problems visible. Kanban doesn't just show what you're working on — it shows where work slows down, stacks up, or stops moving. A column with 8 cards in it when the WIP limit is 3 tells you exactly where your bottleneck is. You can't ignore it because it's right there on the board.&lt;br&gt;
&lt;strong&gt;Where it breaks down:&lt;/strong&gt; Kanban requires consistent discipline around WIP limits and column definitions. If everyone adds cards freely and WIP limits become suggestions, the board degrades into a visual task list with no actual flow control. It also requires honest column definitions — if "In Review" means different things to different people, the board lies.&lt;br&gt;
&lt;strong&gt;Best for:&lt;/strong&gt; Developers working on teams or managing multi-stage workflows where the bottleneck isn't the work itself but the movement of work between stages. Also effective for solo developers who notice they start many things and complete few of them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7. OKRs (Objectives and Key Results)&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;The problem it solves:&lt;/strong&gt; You're productive on a day-to-day basis but you're not sure if the work you're doing is moving toward anything meaningful. Busy but not purposeful.&lt;br&gt;
&lt;strong&gt;Core idea:&lt;/strong&gt; Set a small number of ambitious Objectives (qualitative, inspiring). Under each, define 3–4 Key Results (measurable outcomes, not tasks). Review quarterly. The task list serves the OKRs — not the other way around.&lt;br&gt;
&lt;strong&gt;How it works in Notion:&lt;/strong&gt;&lt;br&gt;
An Objectives database with a rollup to a Key Results database. Each Key Result has a target value, a current value, and a progress percentage. Link tasks from your task database to Key Results so you can see which work is contributing to which outcome.&lt;br&gt;
&lt;strong&gt;What it's genuinely good at:&lt;/strong&gt; Alignment. If you're working on side projects or building a product, OKRs force you to be explicit about what success looks like before you start working.&lt;br&gt;
&lt;strong&gt;Where it breaks down:&lt;/strong&gt; Overkill for day-to-day personal task management. The overhead of maintaining OKR tracking is only worth it if the work is complex enough to drift from its goals without explicit measurement.&lt;br&gt;
&lt;strong&gt;Best for:&lt;/strong&gt; Indie developers, founders, or anyone running a project with multiple contributors and a need to stay aligned on direction.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;8. The One Thing Method&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;The problem it solves:&lt;/strong&gt; Priority lists of 10 items aren't priorities. Everything feels equally important and you make slow progress on all of it.&lt;br&gt;
&lt;strong&gt;Core idea:&lt;/strong&gt; Every day, identify the single most important thing you could do — the thing that, if done, would make everything else easier or unnecessary. Do that first. Everything else is secondary.&lt;br&gt;
&lt;strong&gt;How it works in Notion:&lt;/strong&gt;&lt;br&gt;
The system is intentionally minimal. A simple daily page with one field: "The One Thing today is ___." Below it, your regular task list. The One Thing gets done before you open email, Slack, or anything reactive.&lt;br&gt;
&lt;strong&gt;What it's genuinely good at:&lt;/strong&gt; Cutting through noise. If you're prone to busywork — clearing low-value tasks to feel productive — forcing yourself to name one high-leverage thing each morning is a direct countermeasure.&lt;br&gt;
&lt;strong&gt;Where it breaks down:&lt;/strong&gt; Doesn't scale to complex project management. Works best as a daily ritual layered on top of another system, not as a standalone approach.&lt;br&gt;
&lt;strong&gt;Best for:&lt;/strong&gt; Developers who know what their high-leverage work is but consistently deprioritize it in favor of easier tasks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;9. Full Life OS / Second Brain&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;The problem it solves:&lt;/strong&gt; Your life has too many dimensions — work, health, finances, relationships, learning, side projects — and they each live in different places. There's no single place to see the whole picture.&lt;br&gt;
&lt;strong&gt;Core idea:&lt;/strong&gt; Build a unified personal operating system in Notion that tracks everything. One workspace, all areas of life, all databases linked. The goal is complete externalization of your mind into a trusted, searchable, connected system.&lt;br&gt;
&lt;strong&gt;How it works in Notion:&lt;/strong&gt;&lt;br&gt;
A home dashboard with quick links to every area. Separate databases for: work tasks, personal tasks, goals, habits, finances, health metrics, relationships, projects, notes, learning, journal. Everything linked. Rollups showing cross-database statistics on the home page.&lt;br&gt;
&lt;strong&gt;What it's genuinely good at:&lt;/strong&gt; Completeness. If you want one place for everything and you're willing to invest in building and maintaining it, a Life OS eliminates the problem of fragmented information across apps.&lt;br&gt;
&lt;strong&gt;Where it breaks down:&lt;/strong&gt; The maintenance burden is real. A Life OS only works if you actually update it daily. It's also easy to spend more time building the system than using it — especially in Notion, where building is enjoyable and feels productive.&lt;br&gt;
&lt;strong&gt;Best for:&lt;/strong&gt; Developers who want full coverage and are disciplined enough to maintain a complex system consistently.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;10. DevHub — Gamified Developer System&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F85seklss00vu2f3u8c20.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F85seklss00vu2f3u8c20.jpg" alt=" " width="800" height="1130"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;The problem it solves:&lt;/strong&gt; You've tried most of the systems above. They work for a week, then you stop opening them. The work doesn't change — but your motivation to track it does. Traditional productivity systems provide no positive reinforcement for doing the work they're supposed to help you do.&lt;br&gt;
&lt;strong&gt;Core idea:&lt;/strong&gt; Apply game design psychology to developer workflows. Tasks earn XP. Projects are quest lines. Bugs are Glitch Purges. Learning is a skill tree. Your character sheet tracks your growth as a developer over time. The system makes progress visible and rewarding in a way checkboxes never can.&lt;br&gt;
&lt;strong&gt;How it works in Notion:&lt;/strong&gt;&lt;br&gt;
Six interconnected databases: Tasks, Projects, Learning Paths, Docs, Bug Tracker, Character Sheet. Tasks link to projects. Learning links to projects (so you can see why you're learning something). Bugs link to tasks. Everything rolls up to a character sheet showing total XP, current level, quests completed, glitches purged, learning hours, and streak.&lt;br&gt;
&lt;strong&gt;What it's genuinely good at:&lt;/strong&gt; Retention. Most productivity systems fail not because they're poorly designed but because they're not motivating enough to use consistently. The gamification layer solves the motivation problem without changing the underlying work structure.&lt;br&gt;
&lt;strong&gt;Where it breaks down:&lt;/strong&gt; Not for everyone. If you find the RPG framing gimmicky rather than motivating, this will feel like friction. The system also requires some upfront setup to get the databases connected correctly.&lt;br&gt;
&lt;strong&gt;Best for:&lt;/strong&gt; Developers, engineers, and technical creators who know what they should be doing but struggle to maintain consistent productivity system usage over weeks and months.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Which one should you actually use?&lt;/strong&gt;&lt;br&gt;
The answer depends on which problem statement hit closest to home when you read through the list above.&lt;br&gt;
If your problem is &lt;strong&gt;too much incoming work across too many projects: **GTD or PARA.&lt;br&gt;
If your problem is **work moves slowly through your pipeline and you can't see why:&lt;/strong&gt; Kanban.&lt;br&gt;
If your problem is &lt;strong&gt;you're productive but not purposeful:&lt;/strong&gt; OKRs or The One Thing.&lt;br&gt;
If your problem is &lt;strong&gt;you take lots of notes but can't find them:&lt;/strong&gt; Zettelkasten.&lt;br&gt;
If your problem is &lt;strong&gt;every system you try lasts two weeks:&lt;/strong&gt; DevHub.&lt;br&gt;
The worst thing you can do is pick the most complex system and try to set it up perfectly before using it. Pick the one that matches your actual problem, use it for 30 days in its simplest possible form, then decide what to add.&lt;br&gt;
A &lt;a href="https://luxfreedevhub.carrd.co" rel="noopener noreferrer"&gt;free version&lt;/a&gt; of DevHub is available if you want to try a pre-built version of system 10 without setting up the databases yourself.&lt;/p&gt;

&lt;p&gt;What system are you using right now? Drop a comment — genuinely curious what's working and what isn't.&lt;/p&gt;

</description>
      <category>notion</category>
      <category>productivity</category>
      <category>webdev</category>
      <category>career</category>
    </item>
    <item>
      <title>I Disappeared for 4 Months After Launch - Here's What Brought Me Back</title>
      <dc:creator>Lux Seminare</dc:creator>
      <pubDate>Mon, 25 May 2026 07:06:24 +0000</pubDate>
      <link>https://dev.to/lux_seminare/i-disappeared-for-4-months-after-launch-heres-what-brought-me-back-47ed</link>
      <guid>https://dev.to/lux_seminare/i-disappeared-for-4-months-after-launch-heres-what-brought-me-back-47ed</guid>
      <description>&lt;h2&gt;
  
  
  The Launch
&lt;/h2&gt;

&lt;p&gt;July 2025: I spent months building DevHub, a gamified Notion system for developers.&lt;/p&gt;

&lt;p&gt;Launch day expectations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;100+ sales first week&lt;/li&gt;
&lt;li&gt;Viral Reddit post&lt;/li&gt;
&lt;li&gt;Product Hunt success&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Reality:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;18 views on launch day&lt;/li&gt;
&lt;li&gt;2 sales total&lt;/li&gt;
&lt;li&gt;Crickets on Product Hunt&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then I vanished for 4 months.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why I Disappeared
&lt;/h2&gt;

&lt;p&gt;Not because I gave up on the product.&lt;/p&gt;

&lt;p&gt;Because I had absolutely zero idea what to do next.&lt;/p&gt;

&lt;p&gt;I'd done everything "right":&lt;br&gt;
✅ Built a good product&lt;br&gt;
✅ Posted on Reddit&lt;br&gt;
✅ Launched on Product Hunt&lt;br&gt;
✅ Made it available&lt;/p&gt;

&lt;p&gt;And... nothing happened.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The mistake:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I treated marketing like a one-time event, not a daily practice.&lt;/p&gt;

&lt;p&gt;I thought: "Build it, launch it, people will come."&lt;/p&gt;

&lt;p&gt;Nobody came.&lt;/p&gt;




&lt;h2&gt;
  
  
  The 4-Month Silence
&lt;/h2&gt;

&lt;p&gt;During those months:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Didn't post&lt;/li&gt;
&lt;li&gt;Didn't email users&lt;/li&gt;
&lt;li&gt;Didn't engage anywhere&lt;/li&gt;
&lt;li&gt;Just... stopped&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Why?&lt;/p&gt;

&lt;p&gt;Because every post felt like shouting into the void.&lt;/p&gt;

&lt;p&gt;When you have zero audience:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Twitter posts get 1-3 views&lt;/li&gt;
&lt;li&gt;Reddit posts get buried&lt;/li&gt;
&lt;li&gt;Blog posts get zero traffic&lt;/li&gt;
&lt;li&gt;Nothing moves&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It's demoralizing.&lt;/p&gt;

&lt;p&gt;So I stopped trying.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Changed
&lt;/h2&gt;

&lt;p&gt;Two things brought me back:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Real testimonials from my testers&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I'd given 10 people free access in exchange for feedback.&lt;/p&gt;

&lt;p&gt;Only 2 responded. But their feedback was gold:&lt;/p&gt;

&lt;p&gt;"I adapted it for both work and school. The flexibility made it stick."&lt;/p&gt;

&lt;p&gt;"I use the XP system to tie into real rewards."&lt;/p&gt;

&lt;p&gt;Hearing that it ACTUALLY helped someone? That's validation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Realizing I'd learned nothing&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I failed at marketing, not building.&lt;/p&gt;

&lt;p&gt;The product works. I just sucked at telling people about it.&lt;/p&gt;

&lt;p&gt;But marketing is a learnable skill.&lt;/p&gt;

&lt;p&gt;Giving up = I learn nothing&lt;br&gt;
Trying again = I learn what works&lt;/p&gt;




&lt;h2&gt;
  
  
  What I Got Wrong
&lt;/h2&gt;

&lt;p&gt;Looking back, my mistakes were obvious:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Built first, marketed never&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Should have been:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Building audience while building product&lt;/li&gt;
&lt;li&gt;Sharing progress on Twitter&lt;/li&gt;
&lt;li&gt;Writing tutorials on Dev.to&lt;/li&gt;
&lt;li&gt;Engaging in communities&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead: Built in silence, launched to nobody.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Expected instant results&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;2 weeks of posting ≠ traction&lt;/p&gt;

&lt;p&gt;Most successful products take 3-6 months of consistent marketing.&lt;/p&gt;

&lt;p&gt;I quit after 2 weeks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. One platform only&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Relied entirely on Reddit.&lt;/p&gt;

&lt;p&gt;When those posts stopped performing, traffic died completely.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. No email list&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Had 70+ free downloads. Never emailed them once.&lt;/p&gt;

&lt;p&gt;Just let them disappear.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Posted once, hoped for virality&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One post → no traction → gave up&lt;/p&gt;

&lt;p&gt;Should have been: Daily posting for 90+ days minimum.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I'm Doing Differently
&lt;/h2&gt;

&lt;p&gt;Starting today:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Daily content across platforms:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Twitter: Value-first posts (not pitching)&lt;/li&gt;
&lt;li&gt;Dev.to: Tutorials and building in public&lt;/li&gt;
&lt;li&gt;Reddit: Genuine engagement before promoting&lt;/li&gt;
&lt;li&gt;LinkedIn: Professional angle&lt;/li&gt;
&lt;li&gt;Email: Actually using the list I have&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Building in public:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sharing metrics (even when bad)&lt;/li&gt;
&lt;li&gt;Sharing lessons learned&lt;/li&gt;
&lt;li&gt;Being transparent about struggles&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Multiple platforms:&lt;/strong&gt;&lt;br&gt;
Not relying on Reddit alone.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Patience:&lt;/strong&gt;&lt;br&gt;
Committing to 90 days of daily posting before judging results.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Email marketing:&lt;/strong&gt;&lt;br&gt;
Actually emailing my 140 free users.&lt;/p&gt;




&lt;h2&gt;
  
  
  Current Status
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Metrics (being transparent):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;3 paid sales ($13.35 total revenue)&lt;/li&gt;
&lt;li&gt;140 free downloads&lt;/li&gt;
&lt;li&gt;2 solid testimonials&lt;/li&gt;
&lt;li&gt;~300 total page views&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Not impressive. But honest.&lt;/p&gt;




&lt;h2&gt;
  
  
  For Other Builders
&lt;/h2&gt;

&lt;p&gt;If you launched something and it flopped:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You're not alone.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Most launches are underwhelming.&lt;/p&gt;

&lt;p&gt;Most products take months to gain traction.&lt;/p&gt;

&lt;p&gt;Most of us suck at marketing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The difference:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Some people keep going. Some disappear.&lt;/p&gt;

&lt;p&gt;I disappeared for 4 months.&lt;/p&gt;

&lt;p&gt;I'm back now.&lt;/p&gt;

&lt;p&gt;Not promising success. Just promising honesty and consistency.&lt;/p&gt;




&lt;h2&gt;
  
  
  What's Next
&lt;/h2&gt;

&lt;p&gt;Relaunching on Product Hunt next week.&lt;/p&gt;

&lt;p&gt;This time with:&lt;br&gt;
✅ Real testimonials&lt;br&gt;
✅ Better positioning&lt;br&gt;
✅ Actual marketing plan&lt;br&gt;
✅ Realistic expectations&lt;/p&gt;

&lt;p&gt;Will it work? No idea.&lt;/p&gt;

&lt;p&gt;But trying beats hiding.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;If you're building something:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Don't make my mistakes.&lt;/p&gt;

&lt;p&gt;Start marketing before you launch.&lt;/p&gt;

&lt;p&gt;Build audience + product in parallel.&lt;/p&gt;

&lt;p&gt;Post consistently for 90 days minimum.&lt;/p&gt;

&lt;p&gt;And don't disappear when it's hard.&lt;/p&gt;

&lt;p&gt;That's when it matters most.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;I build Notion productivity systems for developers. DevHub is my first real product launch. Learning as I go.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>startup</category>
      <category>career</category>
      <category>motivation</category>
    </item>
    <item>
      <title>One Notion Trick That Actually Fixes Developer Overwhelm</title>
      <dc:creator>Lux Seminare</dc:creator>
      <pubDate>Thu, 21 May 2026 12:01:24 +0000</pubDate>
      <link>https://dev.to/lux_seminare/one-notion-trick-that-actually-fixes-developer-overwhelm-4do3</link>
      <guid>https://dev.to/lux_seminare/one-notion-trick-that-actually-fixes-developer-overwhelm-4do3</guid>
      <description>&lt;p&gt;You open your Notion workspace. There are 47 tasks staring at you.&lt;br&gt;
Some are from last week. Some are from last month. Some are from a fever dream in February when you thought you'd learn Rust, containerize your side project, and document your entire API — all before dinner.&lt;br&gt;
So you close Notion. Open VS Code. Work on whatever feels most urgent. Repeat tomorrow.&lt;br&gt;
Sound familiar?&lt;br&gt;
The problem isn't discipline. It's not a character flaw. It's that you're showing your brain too much at once.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why "see everything" doesn't work
&lt;/h2&gt;

&lt;p&gt;Most task managers default to showing you every single open task the moment you log in. The logic makes sense on paper: you want full visibility.&lt;br&gt;
But your brain doesn't work that way.&lt;br&gt;
Cognitive psychology research consistently shows that working memory handles roughly 4 things at a time — not 47. When you're confronted with a massive backlog, you don't get clarity. You get decision paralysis. And decision paralysis looks a lot like procrastination from the outside.&lt;br&gt;
The backlog isn't motivating you. It's shutting you down.&lt;/p&gt;

&lt;h2&gt;
  
  
  The fix: a "Today" view
&lt;/h2&gt;

&lt;p&gt;This is one of the simplest things you can do in Notion, and it changes how the whole workspace feels.&lt;br&gt;
Instead of a view that shows every task, create a filtered view that shows &lt;strong&gt;only tasks due today&lt;/strong&gt;.&lt;br&gt;
That's it.&lt;br&gt;
Here's how to set it up:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open your Tasks database&lt;/li&gt;
&lt;li&gt;Click + Add a view → select Table or List&lt;/li&gt;
&lt;li&gt;Add a Date property then name it to "Due Date or Deadline"&lt;/li&gt;
&lt;li&gt;Click Filter → Add filter → Due Date/Deadline → is → Today
Save&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Now make that view your homepage — the first thing you see when you open Notion in the morning.&lt;/p&gt;

&lt;h2&gt;
  
  
  What changes
&lt;/h2&gt;

&lt;p&gt;When you open Notion and see 3 tasks instead of 47, something shifts.&lt;br&gt;
Your brain doesn't shut down. It actually asks: okay, which of these do I start with?&lt;br&gt;
That's a question you can answer.&lt;br&gt;
You're not ignoring the other 44 tasks. They exist in your "All Tasks" view, which you can check during your weekly review. But on a Tuesday morning when you need to ship something, they're just noise.&lt;br&gt;
The "Today" view gives you a daily container. A finite amount of work. An actual chance to feel done at the end of the day.&lt;/p&gt;

&lt;h2&gt;
  
  
  A few things to keep in mind
&lt;/h2&gt;

&lt;p&gt;This only works if you actually set due dates on your tasks. If everything is undated, the filter returns nothing.&lt;br&gt;
The habit: when you add a task, ask yourself when do I actually plan to do this? Then set that as the due date — not "someday," an actual day. It takes five seconds and makes the whole system work.&lt;br&gt;
You can also build a "This Week" view with a filter for tasks due within 7 days, and use that for planning on Mondays.&lt;/p&gt;

&lt;h2&gt;
  
  
  The bigger picture
&lt;/h2&gt;

&lt;p&gt;Clarity beats completeness when you're trying to get work done.&lt;br&gt;
Seeing everything doesn't help you. Seeing the right thing at the right time does.&lt;br&gt;
This is one of the core ideas behind how I built &lt;a href="https://luxseminare.gumroad.com/l/devhub" rel="noopener noreferrer"&gt;DevHub&lt;/a&gt; — a Notion productivity system for developers that structures your workspace around focus rather than completeness. The "Today" view is built in by default, alongside project tracking, learning paths, and a gamified XP system that makes it actually satisfying to close tasks.&lt;br&gt;
Free version is available if you want to try the structure without committing.&lt;br&gt;
But even if you never touch DevHub, add the "Today" view to whatever Notion setup you already have.&lt;br&gt;
It's the smallest change with the biggest impact.&lt;/p&gt;

&lt;p&gt;Have questions about setting it up? Drop a comment — happy to help.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How to Build a Gamified System in Notion (Step-by-Step)</title>
      <dc:creator>Lux Seminare</dc:creator>
      <pubDate>Mon, 18 May 2026 20:08:17 +0000</pubDate>
      <link>https://dev.to/lux_seminare/how-to-build-a-gamified-system-in-notion-step-by-step-5e1d</link>
      <guid>https://dev.to/lux_seminare/how-to-build-a-gamified-system-in-notion-step-by-step-5e1d</guid>
      <description>&lt;h1&gt;
  
  
  How to Build a Gamified XP System in Notion (Step-by-Step)
&lt;/h1&gt;

&lt;p&gt;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?&lt;/p&gt;

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

&lt;h2&gt;
  
  
  What We’re Building
&lt;/h2&gt;

&lt;p&gt;By the end of this tutorial, you'll have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ Tasks that award XP when completed&lt;/li&gt;
&lt;li&gt;✅ A character sheet showing your level&lt;/li&gt;
&lt;li&gt;✅ A progress bar&lt;/li&gt;
&lt;li&gt;✅ A Completion Badge&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;TIME TO BUILD: 30-45 minutes&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Concept
&lt;/h2&gt;

&lt;p&gt;The basic flow:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Complete a task → Earn XP&lt;/li&gt;
&lt;li&gt;XP accumulates → Level increases&lt;/li&gt;
&lt;li&gt;Progress bar shows how close you are to completing the task&lt;/li&gt;
&lt;li&gt;Completion Badge - your reward for finishing the task.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Simple, but effective for motivation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Create your Task Database
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Create a new page in Notion. Give it a title.&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffnzpk78xy2fnfjy0y17t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffnzpk78xy2fnfjy0y17t.png" alt=" " width="800" height="389"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Create a new database then name it Task.&lt;/strong&gt; Table view works best.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe2izonp7tqincpkrztj5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe2izonp7tqincpkrztj5.png" alt=" " width="624" height="215"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fixt5wrovwg8ldza3o0qo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fixt5wrovwg8ldza3o0qo.png" alt=" " width="702" height="263"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Properties you need:&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Title (Default)&lt;/li&gt;
&lt;li&gt;Status (Select)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbyb9sd13c577kuw4ik5m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbyb9sd13c577kuw4ik5m.png" alt=" " width="447" height="314"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5bny60c585jnalhhnlfn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5bny60c585jnalhhnlfn.png" alt=" " width="529" height="565"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft1hrk93i6pap3kodu4tv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft1hrk93i6pap3kodu4tv.png" alt=" " width="263" height="46"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Priority (Select)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo30rmivr7hygmh968x51.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo30rmivr7hygmh968x51.png" alt=" " width="135" height="81"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcoiwhvxqco4wfg9nu04f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcoiwhvxqco4wfg9nu04f.png" alt=" " width="525" height="576"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Assigned To (Person - Optional)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff6r5s7h4hfk971rczm8h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff6r5s7h4hfk971rczm8h.png" alt=" " width="522" height="567"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Progress (Formula)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foyyo4toz7mgbki62nxk9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foyyo4toz7mgbki62nxk9.png" alt=" " width="519" height="572"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Badge (Formula)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frwuhb3u5yvcv1dd2pkvh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frwuhb3u5yvcv1dd2pkvh.png" alt=" " width="526" height="580"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Task Value (Formula)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjl53o73r719m2dbqbfmp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjl53o73r719m2dbqbfmp.png" alt=" " width="515" height="565"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;XP Earned (Formula)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe5893knvappkkkr6zgww.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe5893knvappkkkr6zgww.png" alt=" " width="524" height="568"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;User (Relation)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6erqy0dy0ufxd4xuut14.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6erqy0dy0ufxd4xuut14.png" alt=" " width="512" height="561"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is Done? (Formula)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2np00l3s29tpg9weh0du.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2np00l3s29tpg9weh0du.png" alt=" " width="529" height="570"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Status Options (You can customize):&lt;/strong&gt; &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7c99api3zgiprdemhai8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7c99api3zgiprdemhai8.png" alt=" " width="368" height="295"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;To Do&lt;/li&gt;
&lt;li&gt;In Progress&lt;/li&gt;
&lt;li&gt;Done&lt;/li&gt;
&lt;li&gt;Blocked&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Priority Options (You can customize):&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faq85uywwemcu1cne9qa8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faq85uywwemcu1cne9qa8.png" alt=" " width="370" height="305"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Low&lt;/li&gt;
&lt;li&gt;Medium&lt;/li&gt;
&lt;li&gt;High&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Progress Bar Formula (You can customize the progress bar):&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqcrr4bvsil1zoyya9v7d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqcrr4bvsil1zoyya9v7d.png" alt=" " width="799" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;if(&lt;/p&gt;

&lt;p&gt;Status == "Done", "100% ██████████",&lt;br&gt;
if(&lt;/p&gt;

&lt;p&gt;Status == "In Progress", "50% █████",&lt;br&gt;
if(&lt;/p&gt;

&lt;p&gt;Status == "To Do", "0% ░░░░░░░░░░",&lt;br&gt;
if(&lt;/p&gt;

&lt;p&gt;Status == "Blocked", "Blocked",&lt;br&gt;
"0% ░░░░░░░░░░"&lt;br&gt;
))))&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Badge Formula (You can customize the text and style):&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxndabwqpw4p57ds2q8i6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxndabwqpw4p57ds2q8i6.png" alt=" " width="799" height="227"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;if(Status == "Done", "🌟 Task Mastered!".style("c", "b", "green", "green_background"), "")&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Task Value Formula (You can customize the XP value):&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjun368vw3s9ddceias6d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjun368vw3s9ddceias6d.png" alt=" " width="800" height="275"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;if(Priority == "High", 10, if(Priority == "Medium", 5, 1))&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;XP Earned Formula:&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3cwyfrh1j1vkswcs3qoj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3cwyfrh1j1vkswcs3qoj.png" alt=" " width="799" height="261"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;if(prop("Status") == "Done", prop("Task Value"), 0)&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;After you create your User Database, relate the User property to it.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fevvpydz70gh83cie768k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fevvpydz70gh83cie768k.png" alt=" " width="380" height="477"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2jrmcd63ge01uzq4x8v7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2jrmcd63ge01uzq4x8v7.png" alt=" " width="381" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Related to: User&lt;/li&gt;
&lt;li&gt;Limit: No limit&lt;/li&gt;
&lt;li&gt;Two-way Relation: On&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Is Done Formula&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6c05gbx6a4njiaxm9p9l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6c05gbx6a4njiaxm9p9l.png" alt=" " width="799" height="279"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;prop("Status") == "Done"&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Create your User Database
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Create another database then name it User.&lt;/strong&gt; Set it up on table view first.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fordgdghz69ou8xqz6q0s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fordgdghz69ou8xqz6q0s.png" alt=" " width="799" height="149"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Properties you need:&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Title (Default)&lt;/li&gt;
&lt;li&gt;Tasks (Relation) &lt;strong&gt;(If you already created the User property on the Task Database, then skip this)&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Tasks Completed (Rollup)
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8xc46i3yxbn26x4bs5mu.png" alt=" " width="533" height="570"&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Tasks XP (Rollup)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9agdddly754tbyx9nbp9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9agdddly754tbyx9nbp9.png" alt=" " width="526" height="577"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tasks Completion (Formula)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fncc31wrmel8uax1hc4mh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fncc31wrmel8uax1hc4mh.png" alt=" " width="355" height="382"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Click “New Page” on the database then put your name or anything under the title property (e.g. Lux Seminare).&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg7aenw9dpgoxkqv4lf2q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg7aenw9dpgoxkqv4lf2q.png" alt=" " width="800" height="144"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Tasks Completed Rollup Setup&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1kyl35meh7a8ovlwon7d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1kyl35meh7a8ovlwon7d.png" alt=" " width="255" height="309"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Relation: Task&lt;/li&gt;
&lt;li&gt;Property: Is Done?&lt;/li&gt;
&lt;li&gt;Calculate: Count → Checked&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tasks XP Rollup Setup&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fedehhdycuik4re73z5wb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fedehhdycuik4re73z5wb.png" alt=" " width="502" height="331"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Relation: Task&lt;/li&gt;
&lt;li&gt;Property: XP Earned&lt;/li&gt;
&lt;li&gt;Calculate: More options → Sum&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tasks Completion Formula (Note: The levels are based from DevHub Pixel Forge Theme, feel free to customize it together with the XP goals.)&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyoddvfb2s4epuuuo1e43.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyoddvfb2s4epuuuo1e43.png" alt=" " width="800" height="556"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;h2&gt;
  
  
  Step 3: Task Template
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Go back to Task Database.&lt;/li&gt;
&lt;li&gt;On the upper right side, click the blue drop-down button beside “New”.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fit6hv5v7oql18d9jj6n6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fit6hv5v7oql18d9jj6n6.png" alt=" " width="67" height="34"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Click “New Template”.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F63g7pka9k5yiz9pwyiz8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F63g7pka9k5yiz9pwyiz8.png" alt=" " width="334" height="108"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Click “New Page” then name it to something like “New Task”.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffn4v8yunz9a53bdk9qa3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffn4v8yunz9a53bdk9qa3.png" alt=" " width="799" height="498"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Click “User” then select your name.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F859eev4b6fzjyonddl9x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F859eev4b6fzjyonddl9x.png" alt=" " width="666" height="127"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Go back to Task Database again.&lt;/li&gt;
&lt;li&gt;On the upper right side, click the blue-drop down button beside “New” again.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fit6hv5v7oql18d9jj6n6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fit6hv5v7oql18d9jj6n6.png" alt=" " width="67" height="34"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Click the three dots (…) beside “New Task” or whatever you’ve named the task template.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb4fci7olc8jj105b2e89.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb4fci7olc8jj105b2e89.png" alt=" " width="331" height="123"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Select “Set as Default”.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu9qqtywing1s4e6es2xi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu9qqtywing1s4e6es2xi.png" alt=" " width="328" height="171"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm686eg95jxfp4lzf3qtu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm686eg95jxfp4lzf3qtu.png" alt=" " width="304" height="192"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Make it Yours
&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Upload your customized icons and covers.&lt;/li&gt;
&lt;li&gt;The Character Sheet View&lt;/li&gt;
&lt;li&gt;In your &lt;strong&gt;User Database&lt;/strong&gt;, create a &lt;strong&gt;Gallery View&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzen7x7j8newnblxiuulb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzen7x7j8newnblxiuulb.png" alt=" " width="799" height="179"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3x9v8bvdj95s30nmgfvg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3x9v8bvdj95s30nmgfvg.png" alt=" " width="367" height="253"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Set the &lt;strong&gt;Card Preview&lt;/strong&gt; to "Page Cover" and the &lt;strong&gt;Card Size&lt;/strong&gt; to "Large."&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo9fipbhgohz2lhgmh6ni.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo9fipbhgohz2lhgmh6ni.png" alt=" " width="800" height="234"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuigdbmd7lgh4n7zzzr6d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuigdbmd7lgh4n7zzzr6d.png" alt=" " width="280" height="529"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc555vuuemhjld88ps4sh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc555vuuemhjld88ps4sh.png" alt=" " width="241" height="42"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv2lg4fx0kimktx9a9nci.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv2lg4fx0kimktx9a9nci.png" alt=" " width="229" height="127"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go to &lt;strong&gt;Properties&lt;/strong&gt; and toggle on "Tasks Completion" and "Tasks XP."&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faqrdepv69hjup858yqi7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faqrdepv69hjup858yqi7.png" alt=" " width="256" height="36"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftodzeyedmq1lf48syo7m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftodzeyedmq1lf48syo7m.png" alt=" " width="265" height="274"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;This creates a visual player card that feels like an actual RPG character menu.&lt;/li&gt;
&lt;li&gt;Create different views so you could have your own dashboard.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal here is to make the workspace so visually rewarding that you &lt;em&gt;want&lt;/em&gt; 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.&lt;/p&gt;

&lt;h2&gt;
  
  
  What’s Next?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;To expand this, you could add:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Project tracking (quests with multiple tasks)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5fwmksz41wzfzpacaxon.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5fwmksz41wzfzpacaxon.png" alt=" " width="799" height="158"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bug Tracking System&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj45iveiu9btpe2brm2bx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj45iveiu9btpe2brm2bx.png" alt=" " width="800" height="200"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;All Docs Database&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Furi07q9n8rpqfb4mnlak.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Furi07q9n8rpqfb4mnlak.png" alt=" " width="800" height="285"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Learning Path Tracker&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu0oyffe3qdfa2rmv23s5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu0oyffe3qdfa2rmv23s5.png" alt=" " width="800" height="511"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Habit Tracker&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4ubrg5o5ap8iqz4diehz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4ubrg5o5ap8iqz4diehz.png" alt=" " width="800" height="159"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Daily Log Database&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffu5wifo5c12e4a2d9xct.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffu5wifo5c12e4a2d9xct.png" alt=" " width="799" height="185"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Achievements Page&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpmj95zoucls788iqnwix.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpmj95zoucls788iqnwix.png" alt=" " width="800" height="385"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I spent weeks building all of that into a complete system.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you want the full thing, get it &lt;a href="https://luxseminare.gumroad.com/l/devhub?layout=profile" rel="noopener noreferrer"&gt;here&lt;/a&gt;. It comes with free version, with core databases but minus the gamification.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you want to build it yourself:&lt;/strong&gt; Use this tutorial as a starting point and customize however you want!&lt;/p&gt;

&lt;p&gt;Happy to answer questions in the comments 👇&lt;/p&gt;

</description>
      <category>nocode</category>
      <category>productivity</category>
      <category>showdev</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Why Gamification Actually Works for Developer Productivity (And Why I Was Wrong to Dismiss It)</title>
      <dc:creator>Lux Seminare</dc:creator>
      <pubDate>Wed, 31 Dec 2025 10:32:51 +0000</pubDate>
      <link>https://dev.to/lux_seminare/why-gamification-actually-works-for-developer-productivity-and-why-i-was-wrong-to-dismiss-it-3n4g</link>
      <guid>https://dev.to/lux_seminare/why-gamification-actually-works-for-developer-productivity-and-why-i-was-wrong-to-dismiss-it-3n4g</guid>
      <description>&lt;p&gt;I used to think gamifying productivity was gimmicky nonsense.&lt;/p&gt;

&lt;p&gt;"Just give me a clean task list," I'd say. "I don't need points and badges to do my job."&lt;/p&gt;

&lt;p&gt;Then I burned out.&lt;/p&gt;

&lt;p&gt;Not the dramatic "I can't get out of bed" burnout. The subtle kind where you open your task manager, see 89 items, feel your soul leave your body, and close it immediately. Then you spend the day coding whatever feels urgent, constantly context-switching, never feeling like you're making real progress.&lt;/p&gt;

&lt;p&gt;That was me in March 2025.&lt;/p&gt;

&lt;p&gt;So I did something desperate: I rebuilt my entire productivity system as an RPG. Tasks became quests. Projects had XP rewards and difficulty ratings. I had a literal character sheet with a level and stats.&lt;/p&gt;

&lt;p&gt;It felt ridiculous. I didn't tell anyone.&lt;/p&gt;

&lt;p&gt;Full disclosure: I'm not a developer myself. But I built this system specifically for&amp;nbsp;developers—people doing complex, creative work that requires deep focus and constant learning. The psychology applies to any knowledge work, but I designed the structure around the developer workflow because that's the audience I wanted to help.&lt;/p&gt;

&lt;p&gt;But three months later, my task completion rate was up 73%. My learning consistency was up 160%. And for the first time in years, I actually wanted&amp;nbsp;to open my task manager.&lt;/p&gt;

&lt;p&gt;This article is about why gamification works, what the psychology research says, and how I went from skeptic to believer.&lt;/p&gt;

&lt;p&gt;The Problem With Traditional Productivity Systems&lt;/p&gt;

&lt;p&gt;Let's start with why traditional task managers fail for creative work.&lt;/p&gt;

&lt;p&gt;Most productivity tools are designed around the factory model:&lt;/p&gt;

&lt;p&gt;Here's your task&lt;/p&gt;

&lt;p&gt;Do the task&lt;/p&gt;

&lt;p&gt;Check the box&lt;/p&gt;

&lt;p&gt;Move to the next task&lt;/p&gt;

&lt;p&gt;Repeat forever&lt;/p&gt;

&lt;p&gt;This works great for assembly-line work. It's terrible for knowledge work.&lt;/p&gt;

&lt;p&gt;Here's why:&lt;/p&gt;

&lt;p&gt;Problem #1: No Sense of Progress&lt;/p&gt;

&lt;p&gt;When you complete a task, it just... disappears. The checkbox vanishes. Your list gets shorter. That's it.&lt;/p&gt;

&lt;p&gt;There's no accumulation. No visible growth. Just an endless cycle of "here's more work."&lt;/p&gt;

&lt;p&gt;Your brain interprets this as: "I'm not making progress. I'm just treading water."&lt;/p&gt;

&lt;p&gt;Problem #2: Motivation Drainage&lt;/p&gt;

&lt;p&gt;Opening a task manager that shows 47 unfinished items is emotionally exhausting.&lt;/p&gt;

&lt;p&gt;Your brain doesn't see: "Look at all this potential progress!"&lt;/p&gt;

&lt;p&gt;Your brain sees: "Look at all the things you HAVEN'T done. You're failing."&lt;/p&gt;

&lt;p&gt;This is called negative framing, and it's demotivating by design.&lt;/p&gt;

&lt;p&gt;Problem #3: No Feedback Loop&lt;/p&gt;

&lt;p&gt;In most task managers, completing something gives you zero feedback beyond "task no longer visible."&lt;/p&gt;

&lt;p&gt;No celebration. No acknowledgment. No dopamine hit.&lt;/p&gt;

&lt;p&gt;Just silence, and then the next task appearing to fill the void.&lt;/p&gt;

&lt;p&gt;For brains that run on reward circuits, this is brutal.&lt;/p&gt;

&lt;p&gt;Problem #4: All Tasks Are Created Equal&lt;/p&gt;

&lt;p&gt;A 15-minute bug fix and a 3-day feature build look identical in most task managers: a single checkbox.&lt;/p&gt;

&lt;p&gt;Your brain can't distinguish effort. Can't see difficulty. Can't feel the weight of completing something hard.&lt;/p&gt;

&lt;p&gt;Everything is just "done" or "not done."&lt;/p&gt;

&lt;p&gt;Enter Gamification: The Accidental Solution&lt;/p&gt;

&lt;p&gt;I didn't set out to "gamify productivity." I was just trying to make my task manager less soul-crushing.&lt;/p&gt;

&lt;p&gt;Here's what I changed:&lt;/p&gt;

&lt;p&gt;Instead of:&lt;/p&gt;

&lt;p&gt;☐ Fix authentication bug&lt;br&gt;
☐ Build user dashboard&lt;br&gt;
☐ Learn TypeScript&lt;/p&gt;

&lt;p&gt;I built:&lt;/p&gt;

&lt;p&gt;🐛 Glitch Purge: Auth Vulnerability → 20 XP&lt;br&gt;
🎯 Quest: User Dashboard Feature → 100 XP&lt;br&gt;
📚 Learning Path: TypeScript Mastery → 100 XP&lt;/p&gt;

&lt;p&gt;Same tasks. Completely different framing.&lt;/p&gt;

&lt;p&gt;And something weird happened: I actually wanted to complete them.&lt;/p&gt;

&lt;p&gt;Not because the work changed. But because my relationship&amp;nbsp;to the work changed.&lt;/p&gt;

&lt;p&gt;The Psychology: Why This Actually Works&lt;/p&gt;

&lt;p&gt;After three months of using this system, I went back and researched why&amp;nbsp;it was working. Turns out, there's solid psychology behind gamification.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Self-Determination Theory (SDT)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Developed by psychologists Edward Deci and Richard Ryan, SDT argues that humans need three things to stay intrinsically motivated:&lt;/p&gt;

&lt;p&gt;Autonomy:&amp;nbsp;Control over your work Mastery:&amp;nbsp;Visible progress toward skill development Purpose:&amp;nbsp;Understanding the bigger mission&lt;/p&gt;

&lt;p&gt;Traditional task managers give you none of these.&lt;/p&gt;

&lt;p&gt;Checkboxes don't show mastery. They don't connect to purpose. They barely acknowledge autonomy.&lt;/p&gt;

&lt;p&gt;Gamification addresses all three:&lt;/p&gt;

&lt;p&gt;Autonomy:&amp;nbsp;You choose which quests to pursue&lt;/p&gt;

&lt;p&gt;Mastery:&amp;nbsp;XP and leveling show continuous growth&lt;/p&gt;

&lt;p&gt;Purpose:&amp;nbsp;Everything connects to a bigger narrative (your character's development)&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The Progress Principle&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Harvard professor Teresa Amabile studied what motivates knowledge workers. Her finding: "Of all the things that can boost emotions, motivation, and perceptions during a workday, the single most important is making progress in meaningful work."&lt;/p&gt;

&lt;p&gt;The key word is "visible."&lt;/p&gt;

&lt;p&gt;You need to see&amp;nbsp;progress, not just experience it.&lt;/p&gt;

&lt;p&gt;The problem with traditional task lists:&amp;nbsp;Progress is invisible. Completed tasks disappear. Your brain has no record of growth.&lt;/p&gt;

&lt;p&gt;The gamification fix:&amp;nbsp;XP accumulates. Levels increase. Stats go up. Progress is impossible to ignore.&lt;/p&gt;

&lt;p&gt;Even on days when you "only" completed 2 tasks, you can see: "I gained 300 XP today. I'm 500 XP from leveling up."&lt;/p&gt;

&lt;p&gt;Your brain interprets this as: "I'm moving forward."&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Variable Ratio Reinforcement&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;B.F. Skinner discovered that unpredictable rewards create the strongest behavioral patterns.&lt;/p&gt;

&lt;p&gt;This is why slot machines are addictive. You don't know when you'll win, so you keep pulling the lever.&lt;/p&gt;

&lt;p&gt;In gamified productivity:&lt;/p&gt;

&lt;p&gt;Some tasks give small XP (quick wins)&lt;/p&gt;

&lt;p&gt;Some give large XP (major milestones)&lt;/p&gt;

&lt;p&gt;Occasionally you level up (big dopamine hit)&lt;/p&gt;

&lt;p&gt;Sometimes you unlock achievements (unexpected rewards)&lt;/p&gt;

&lt;p&gt;This unpredictability keeps your brain engaged in a way that "check the box, done" never could.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The Endowed Progress Effect&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Joseph Nunes and Xavier Drèze ran an experiment: They gave people loyalty cards for a car wash.&lt;/p&gt;

&lt;p&gt;Group A: "Complete 8 washes, get one free"&lt;/p&gt;

&lt;p&gt;Group B: "Complete 10 washes, get one free (you already have 2 stamps!)"&lt;/p&gt;

&lt;p&gt;Both groups needed 8 more washes. But Group B completed the card at a 20% higher rate.&lt;/p&gt;

&lt;p&gt;Why? Because they felt they'd already made progress.&lt;/p&gt;

&lt;p&gt;In gamified systems:&lt;/p&gt;

&lt;p&gt;Starting at Level 1 with 0 XP feels like you've already begun the journey. You're not starting from nothing—you're already a Level 1 character with a baseline of capability.&lt;/p&gt;

&lt;p&gt;This small psychological shift increases follow-through dramatically.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Identity-Based Motivation&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;James Clear writes about this in Atomic Habits: "The ultimate form of intrinsic motivation is when a habit becomes part of your identity."&lt;/p&gt;

&lt;p&gt;When you identify as "someone who works out," going to the gym isn't a chore—it's an expression of who you are.&lt;/p&gt;

&lt;p&gt;Gamified productivity builds identity:&lt;/p&gt;

&lt;p&gt;You're not "doing tasks." You're "leveling up your character." You're "completing quests." You're "purging glitches."&lt;/p&gt;

&lt;p&gt;This sounds silly, but it works. Your brain starts to see the work as part of a larger narrative about who you're becoming.&lt;/p&gt;

&lt;p&gt;My Results: The Data&lt;/p&gt;

&lt;p&gt;I'm a developer, so of course I tracked everything.&lt;/p&gt;

&lt;p&gt;Before Gamification (Jan-Mar 2025):&lt;/p&gt;

&lt;p&gt;Average tasks completed per week: 11.2&lt;/p&gt;

&lt;p&gt;Learning time per week: 2.1 hours&lt;/p&gt;

&lt;p&gt;Days I avoided opening my task manager: 4-5 per week&lt;/p&gt;

&lt;p&gt;Side projects completed: 0 in 6 months&lt;/p&gt;

&lt;p&gt;After Gamification (Jul-Dec 2025):&lt;/p&gt;

&lt;p&gt;Average tasks completed per week: 19.3 (+72%)&lt;/p&gt;

&lt;p&gt;Learning time per week: 5.6 hours (+167%)&lt;/p&gt;

&lt;p&gt;Days I avoided opening my task manager: &amp;lt;1 per week (-85%)&lt;/p&gt;

&lt;p&gt;Side projects completed: 2 in 3 months&lt;/p&gt;

&lt;p&gt;Same human. Same job. Same tasks.&lt;/p&gt;

&lt;p&gt;The difference: how my brain responded to completing them.&lt;/p&gt;

&lt;p&gt;What I Actually Built&lt;/p&gt;

&lt;p&gt;Since people keep asking, here's the structure I landed on:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Character Sheet&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Current Level (based on total XP)&lt;/p&gt;

&lt;p&gt;Key Stats: Quests Completed, Glitches Purged, Learning Hours, Streak&lt;/p&gt;

&lt;p&gt;Visual progress bar showing XP until next level&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Quest System&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Bounties:&amp;nbsp;Quick tasks (15-30 min) → 10 XP&lt;/p&gt;

&lt;p&gt;Quests:&amp;nbsp;Medium work (1-3 hours) → 100 XP&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Glitch Purge (Bug Tracker)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Bugs framed as "glitches" to purge&lt;/p&gt;

&lt;p&gt;Severity = difficulty rating&lt;/p&gt;

&lt;p&gt;20 XP per bug fixed (max)&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Learning Paths&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Courses/tutorials tracked as "skill trees"&lt;/p&gt;

&lt;p&gt;Progress bars for each path&lt;/p&gt;

&lt;p&gt;XP awarded per completed book/course&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Linked Knowledge Base&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Docs, code snippets, architecture decisions&lt;/p&gt;

&lt;p&gt;Everything links to projects&lt;/p&gt;

&lt;p&gt;No more "where did I write that note?"&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Leveling Curve&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Early levels are fast (keeps you engaged)&lt;/p&gt;

&lt;p&gt;Later levels require exponentially more XP&lt;/p&gt;

&lt;p&gt;Level 1→2: 500 XP&lt;/p&gt;

&lt;p&gt;Level 10→11: 32,000 total XP&lt;/p&gt;

&lt;p&gt;Level 20: 225,000 total XP&lt;/p&gt;

&lt;p&gt;This prevents "just spam easy tasks" gaming.&lt;/p&gt;

&lt;p&gt;The Skeptics' Questions (Answered)&lt;/p&gt;

&lt;p&gt;"Won't the novelty wear off?"&lt;/p&gt;

&lt;p&gt;Probably. For some people.&lt;/p&gt;

&lt;p&gt;But here's the thing: the structure remains valuable even when the gamification feels less exciting.&lt;/p&gt;

&lt;p&gt;The real power isn't in the XP. It's in:&lt;/p&gt;

&lt;p&gt;Everything being linked (tasks → projects → docs → learning)&lt;/p&gt;

&lt;p&gt;Visible progress tracking&lt;/p&gt;

&lt;p&gt;Clear prioritization&lt;/p&gt;

&lt;p&gt;Context that never gets lost&lt;/p&gt;

&lt;p&gt;The gamification is the fun wrapper. The system underneath is the actual value.&lt;/p&gt;

&lt;p&gt;"How do you prevent it from becoming another metric to stress about?"&lt;/p&gt;

&lt;p&gt;By treating XP as feedback, not a goal.&lt;/p&gt;

&lt;p&gt;I don't try to "maximize XP per day." I do the work that matters, and XP is just the signal that says "you made progress."&lt;/p&gt;

&lt;p&gt;The moment you start optimizing for points instead of results, the system breaks. The key is using it as a motivational tool, not a performance metric.&lt;/p&gt;

&lt;p&gt;"Isn't this just... lying to yourself?"&lt;/p&gt;

&lt;p&gt;In a sense, yes.&lt;/p&gt;

&lt;p&gt;But all productivity systems are "lies" in this way. They're artificial structures we impose on chaotic reality to make it more manageable.&lt;/p&gt;

&lt;p&gt;The question isn't "is it a lie?" The question is "does it help?"&lt;/p&gt;

&lt;p&gt;And for me, framing bug fixes as "glitch purges" helps. It makes the work feel less like drudgery and more like challenges to overcome.&lt;/p&gt;

&lt;p&gt;If that's a lie, it's a useful one.&lt;/p&gt;

&lt;p&gt;"What about people who don't like games?"&lt;/p&gt;

&lt;p&gt;Fair. Gamification isn't for everyone.&lt;/p&gt;

&lt;p&gt;But here's what surprised me: the underlying structure works even without the gaming layer.&lt;/p&gt;

&lt;p&gt;The linked databases, the progress tracking, the clear prioritization—that stuff is valuable regardless.&lt;/p&gt;

&lt;p&gt;The XP and levels are optional. The organization is essential.&lt;/p&gt;

&lt;p&gt;Implementation Tips (If You Want To Try This)&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Start Small&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Don't gamify everything at once. Pick ONE area:&lt;/p&gt;

&lt;p&gt;Task completion&lt;/p&gt;

&lt;p&gt;Learning consistency&lt;/p&gt;

&lt;p&gt;Bug fixing&lt;/p&gt;

&lt;p&gt;Get that working first. Expand later.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Make XP Values Consistent&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Quick tasks: 5-10 XP&lt;/p&gt;

&lt;p&gt;Large Projects: 10-100 XP&lt;/p&gt;

&lt;p&gt;Adjust to your preference, but stay consistent. The system only works if XP means something.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Level Curve Matters&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Make early levels fast (Level 1→5 should take days, not months).&lt;/p&gt;

&lt;p&gt;Make later levels require exponentially more XP (prevents feeling "stuck").&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Link Everything&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The real power is in connections:&lt;/p&gt;

&lt;p&gt;Tasks link to projects&lt;/p&gt;

&lt;p&gt;Projects link to docs&lt;/p&gt;

&lt;p&gt;Learning resources link to docs&lt;/p&gt;

&lt;p&gt;Everything traces back to your goals&lt;/p&gt;

&lt;p&gt;This reduces context switching dramatically.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Don't Obsess Over Points&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The system should energize you, not become another source of stress.&lt;/p&gt;

&lt;p&gt;If you find yourself gaming the system just to get more XP, step back and remember: the work matters, not the points.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Track Actual Results&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Measure what matters:&lt;/p&gt;

&lt;p&gt;Tasks completed&lt;/p&gt;

&lt;p&gt;Projects shipped&lt;/p&gt;

&lt;p&gt;Learning hours logged&lt;/p&gt;

&lt;p&gt;Side projects finished&lt;/p&gt;

&lt;p&gt;XP is just the feedback mechanism. Real results are the goal.&lt;/p&gt;

&lt;p&gt;When Gamification Doesn't Work&lt;/p&gt;

&lt;p&gt;Let's be honest: this isn't a universal solution.&lt;/p&gt;

&lt;p&gt;Gamification fails when:&lt;/p&gt;

&lt;p&gt;The work itself is the problem.&amp;nbsp;No amount of XP makes you excited about work you fundamentally don't care about. Fix the "what" before optimizing the "how."&lt;/p&gt;

&lt;p&gt;You're already highly motivated.&amp;nbsp;If you're in deep flow and crushing it, gamification adds friction. Use it when you need the boost, ignore it when you don't.&lt;/p&gt;

&lt;p&gt;You treat it as the solution.&amp;nbsp;Gamification doesn't replace discipline. It makes discipline slightly easier on the hard days.&lt;/p&gt;

&lt;p&gt;You optimize for points instead of results.&amp;nbsp;The moment XP becomes the goal, the system breaks. It's a tool, not a scoreboard.&lt;/p&gt;

&lt;p&gt;The Bigger Lesson&lt;/p&gt;

&lt;p&gt;Here's what I learned from three months of gamified productivity:&lt;/p&gt;

&lt;p&gt;Your productivity system should respect the reality of how your brain actually works.&lt;/p&gt;

&lt;p&gt;Not how it "should" work according to some productivity guru. How it actually&amp;nbsp;works.&lt;/p&gt;

&lt;p&gt;My brain:&lt;/p&gt;

&lt;p&gt;Needs to see progress visually&lt;/p&gt;

&lt;p&gt;Responds to immediate feedback&lt;/p&gt;

&lt;p&gt;Gets demotivated by negative framing&lt;/p&gt;

&lt;p&gt;Loves a good narrative&lt;/p&gt;

&lt;p&gt;Traditional task managers gave me none of that. Gamification gave me all of it.&lt;/p&gt;

&lt;p&gt;Your brain might be different.&amp;nbsp;And that's fine.&lt;/p&gt;

&lt;p&gt;The point isn't "everyone should gamify." The point is "find what actually motivates YOU and build your system around that."&lt;/p&gt;

&lt;p&gt;For some people, it's gamification. For others, it's minimalism. For others, it's detailed planning.&lt;/p&gt;

&lt;p&gt;There's no one-size-fits-all. Stop looking for the "perfect" system and start looking for YOUR system.&lt;/p&gt;

&lt;p&gt;Conclusion: The Unlikely Convert&lt;/p&gt;

&lt;p&gt;I started this experiment as a skeptic.&lt;/p&gt;

&lt;p&gt;"Gamification is for people who can't motivate themselves," I thought.&lt;/p&gt;

&lt;p&gt;Three months later, I'm the person who gets genuinely excited when I level up in my task manager.&lt;/p&gt;

&lt;p&gt;Does that make me less disciplined? Maybe.&lt;/p&gt;

&lt;p&gt;But it also makes me more productive, more consistent, and less burned out.&lt;/p&gt;

&lt;p&gt;And in the end, results matter more than aesthetics.&lt;/p&gt;

&lt;p&gt;If adding XP to my bug fixes makes me actually want to fix them, I'll take the imaginary points over the clean minimalist task list that I never open.&lt;/p&gt;

&lt;p&gt;Your productivity system should work for you, not against you.&lt;/p&gt;

&lt;p&gt;Even if that means treating your workday like a video game.&lt;/p&gt;

&lt;p&gt;Resources &amp;amp; Further Reading&lt;/p&gt;

&lt;p&gt;Psychology Research:&lt;/p&gt;

&lt;p&gt;Deci, E. L., &amp;amp; Ryan, R. M. (2000). Self-Determination Theory&lt;/p&gt;

&lt;p&gt;Amabile, T., &amp;amp; Kramer, S. (2011). The Progress Principle&lt;/p&gt;

&lt;p&gt;Skinner, B. F. (1953). Science and Human Behavior&lt;/p&gt;

&lt;p&gt;Clear, J. (2018). Atomic Habits&lt;/p&gt;

&lt;p&gt;Gamification in Productivity:&lt;/p&gt;

&lt;p&gt;Deterding, S. (2012&lt;/p&gt;

&lt;p&gt;). "Gamification: Designing for Motivation"&lt;/p&gt;

&lt;p&gt;McGonigal, J. (2011). Reality is Broken: Why Games Make Us Better&lt;/p&gt;

&lt;p&gt;My System: If you want to try a gamified system yourself, I built a Notion template based on these principles. It includes the XP system, linked databases, and all the structure I described above. There's a free version if you just want to experiment with the concept.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://luxseminare.gumroad.com/l/devhub" rel="noopener noreferrer"&gt;You can find it here.&lt;/a&gt;&lt;/p&gt;

</description>
      <category>developer</category>
      <category>motivation</category>
      <category>mentalhealth</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Stop using Jira for side projects: A minimalist alternative.</title>
      <dc:creator>Lux Seminare</dc:creator>
      <pubDate>Tue, 23 Dec 2025 00:46:46 +0000</pubDate>
      <link>https://dev.to/lux_seminare/stop-using-jira-for-side-projects-a-minimalist-alternative-5gn8</link>
      <guid>https://dev.to/lux_seminare/stop-using-jira-for-side-projects-a-minimalist-alternative-5gn8</guid>
      <description>&lt;p&gt;Let’s be honest: Jira is for enterprise meetings, not for solo developers building on a Saturday night.&lt;/p&gt;

&lt;p&gt;If you’ve ever spent more time configuring a sprint than actually writing code, you’ve experienced "Project Management Bloat." When you're building a side project, you don't need a corporate oversight tool. You need a Command Center.&lt;/p&gt;

&lt;p&gt;The Problem with "Heavy" Tools&lt;/p&gt;

&lt;p&gt;Most PM tools are built for managers, not creators. They prioritize reporting over shipping. For a solo dev, this leads to:&lt;/p&gt;

&lt;p&gt;Context Switching: Jumping between 5 different apps to see your bugs, docs, and tasks.&lt;/p&gt;

&lt;p&gt;Friction: Spending 10 minutes filling out fields for a bug that takes 2 minutes to fix.&lt;/p&gt;

&lt;p&gt;The "Void": Closing a ticket feels empty. There’s no sense of progress.&lt;/p&gt;

&lt;p&gt;The Minimalist Approach: The DevHub&lt;/p&gt;

&lt;p&gt;I spent months trying to find a balance between "too simple" and "too complex." I ended up building the DevHub in Notion. It’s designed around a single philosophy: Stay in one place.&lt;/p&gt;

&lt;p&gt;Instead of complex workflows, it uses a Bug Tracking system (Open → In Progress → Testing → Resolved) and a Task Database for managing tasks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GET THE BASIC VERSION&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I’m a big believer in building in public and giving back to the community. I’ve released a Basic version of the DevHub that includes the core Central Command Hub, The Project, Tasks, Bug Tracking, Docs, and Learning Resources database.&lt;/p&gt;

&lt;p&gt;You can grab the Basic version &lt;a href="https://luxseminare.gumroad.com/l/devhub" rel="noopener noreferrer"&gt;here&lt;/a&gt; and start cleaning up your workflow today.&lt;/p&gt;

&lt;p&gt;Why It’s Different&lt;/p&gt;

&lt;p&gt;Linked Database Architecture: Your bugs, projects, tasks, docs, and learning resources are connected. No more "where did I put that technical spec?"&lt;/p&gt;

&lt;p&gt;Reduced Cognitive Load: One dashboard. Everything you need for the day is surfaced automatically.&lt;/p&gt;

&lt;p&gt;If you’re tired of fighting your tools, stop using enterprise software for your dream projects. Keep it lean, keep it fast, and keep shipping.&lt;/p&gt;

&lt;p&gt;What’s your current stack for managing side projects? Let’s talk in the comments.&lt;/p&gt;

&lt;h1&gt;
  
  
  buildinpublic #productivity #notion #developer
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmm2jefhel1zpy652r2zl.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmm2jefhel1zpy652r2zl.jpg" alt=" " width="800" height="1129"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>[BUILD IN PUBLIC] Notion Dev Hub: The Final Countdown (48 Hours until Launch!)</title>
      <dc:creator>Lux Seminare</dc:creator>
      <pubDate>Sun, 14 Dec 2025 14:54:20 +0000</pubDate>
      <link>https://dev.to/lux_seminare/build-in-public-notion-dev-hub-the-final-countdown-48-hours-until-launch-13a</link>
      <guid>https://dev.to/lux_seminare/build-in-public-notion-dev-hub-the-final-countdown-48-hours-until-launch-13a</guid>
      <description>&lt;p&gt;Quick update, folks! The Notion Developer's Hub is fully polished and launching in just two days.&lt;/p&gt;

&lt;p&gt;What to expect: A powerful free core template, and the full feature set (including the Gamified Habit Tracker and Reflection system) in the premium version.&lt;/p&gt;

&lt;p&gt;Thank you for being part of the journey. Launch is T-48 hours!&lt;/p&gt;

&lt;p&gt;Set your reminder and grab a launch deal: &lt;a href="https://luxdevhub.carrd.co/" rel="noopener noreferrer"&gt;https://luxdevhub.carrd.co/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuk1uu2wpsxkt5wpu906j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuk1uu2wpsxkt5wpu906j.png" alt=" " width="800" height="1040"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjiq3e0ccgvbl3tpuy92w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjiq3e0ccgvbl3tpuy92w.png" alt=" " width="800" height="1130"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjcni55no2g28gx456g3h.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjcni55no2g28gx456g3h.jpg" alt=" " width="800" height="1129"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5gpd2fca4zad66xgw1yo.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5gpd2fca4zad66xgw1yo.jpg" alt=" " width="800" height="1129"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>notion</category>
    </item>
  </channel>
</rss>
