<?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>Forem: Ronald Suwandi</title>
    <description>The latest articles on Forem by Ronald Suwandi (@gantengx).</description>
    <link>https://forem.com/gantengx</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%2F3555236%2F6c134a01-e0d2-469e-8908-abb0e9ee039d.jpg</url>
      <title>Forem: Ronald Suwandi</title>
      <link>https://forem.com/gantengx</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/gantengx"/>
    <language>en</language>
    <item>
      <title>The Obsidian setup behind the system</title>
      <dc:creator>Ronald Suwandi</dc:creator>
      <pubDate>Sun, 01 Mar 2026 14:35:29 +0000</pubDate>
      <link>https://forem.com/gantengx/the-obsidian-setup-behind-the-system-1b44</link>
      <guid>https://forem.com/gantengx/the-obsidian-setup-behind-the-system-1b44</guid>
      <description>&lt;p&gt;This post is the implementation side of my previous posts about my PKM system. The principles work in any plain-text tool but I used Obsidian and this is how I set it up. The example vault is &lt;a href="https://github.com/ronaldsuwandi/gantengx-vault-example" rel="noopener noreferrer"&gt;on GitHub&lt;/a&gt; if you want to explore it directly.&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%2Fb1a1zn1dfq2k4j7g12xh.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%2Fb1a1zn1dfq2k4j7g12xh.png" alt="Obsidian setup" width="800" height="520"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Obsidian
&lt;/h2&gt;

&lt;p&gt;A few reasons:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Plain markdown files on your machine. No proprietary format, no vendor lock-in, no subscription required to access your own writing.&lt;/li&gt;
&lt;li&gt;Offline-first. Everything works without a connection. Obsidian Sync handles mobile sync cleanly when you need it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I came from Roam Research. Some ideas carried over: daily notes as scratchpad, bidirectional links and flat file structure without folders. But the tool itself didn't stick and the pricing was hard to justify for my use.&lt;/p&gt;

&lt;p&gt;Worth naming the contrast with Notion too. Notion is a product that wants you to spend time inside it: databases, views, templates all invite configuration. Obsidian mostly stays out of the way.&lt;/p&gt;

&lt;h2&gt;
  
  
  Theme: Minimal
&lt;/h2&gt;

&lt;p&gt;I use the &lt;a href="https://minimal.guide" rel="noopener noreferrer"&gt;Minimal theme&lt;/a&gt; with its companion settings plugin. The name is accurate. It strips back the visual chrome, improves typography, and keeps the focus on the content. I've turned off most of the optional visual styles and left it close to its defaults.&lt;/p&gt;

&lt;p&gt;Honestly I feel that Minimal theme should be the default theme.&lt;/p&gt;

&lt;h2&gt;
  
  
  File naming in practice
&lt;/h2&gt;

&lt;p&gt;Everything lives flat with naming conventions instead of folders. I don't use the file explorer at all. The quick switcher is the primary way I navigate. I chose a flat structure because it means I never have to decide where to put a file at the point of capture.&lt;/p&gt;

&lt;p&gt;A few examples of how prefixes look in practice:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Log - 1-1 - Manager 1
Log - Health - 2026-01-03 - Child 1 - Fever
Course - Agent Skills with Anthropic
ACME - Engagement - Globex
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The prefix does the work that folders would otherwise do, without requiring a categorisation decision upfront.&lt;/p&gt;

&lt;h2&gt;
  
  
  Core plugins
&lt;/h2&gt;

&lt;p&gt;Four plugins earn their place. Everything else is optional or absent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;QuickSwitcher++&lt;/strong&gt; replaces the built-in quick switcher with a more capable version. The search is more powerful and you can search by heading, not only filename.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Natural Language Date&lt;/strong&gt; is very useful as you can type &lt;code&gt;today&lt;/code&gt; or &lt;code&gt;3 jan&lt;/code&gt; inside a note and it converts it to a proper date link. I mostly use this for referencing daily notes quickly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;QuickAdd&lt;/strong&gt; is used to create a note combined with the template. Keeping to simplicity I only used this to help create new entry for 1-1 or my kids log health record as they got new illness&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Button Maker&lt;/strong&gt; creates clickable buttons that trigger QuickAdd macros. I use this in my health log template so I can create a new entry with a single click.&lt;/p&gt;

&lt;h2&gt;
  
  
  Optional plugins
&lt;/h2&gt;

&lt;p&gt;These are utilities I reach for occasionally, not regularly:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Strange New Worlds&lt;/strong&gt;: shows inline, next to any link, how many other notes reference the same thing. Useful for getting a quick sense of how connected a note is without opening the backlinks panel.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Note Refactor&lt;/strong&gt;: extract a section of a note into its own file. Useful when a note outgrows itself and a section is ready to become an evergreen note.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bulk Rename&lt;/strong&gt;: batch rename files. Mostly useful when a naming convention changes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sort &amp;amp; Permute Lines&lt;/strong&gt;: alphabetically sort a list. Occasional use in reference notes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Collapsible Code Blocks&lt;/strong&gt; and &lt;strong&gt;Copy as HTML&lt;/strong&gt;: quality-of-life for specific contexts (the latter useful when publishing content).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Daily notes and inbox
&lt;/h2&gt;

&lt;p&gt;Daily notes are my scratchpad. The rule: every daily note should be empty. A non-empty daily note means something is unprocessed.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;📥 Inbox.md&lt;/code&gt; surfaces these: any daily notes with content, plus notes tagged &lt;code&gt;#todo&lt;/code&gt;. I used Dataview for this query until Obsidian shipped &lt;a href="https://help.obsidian.md/bases" rel="noopener noreferrer"&gt;Bases&lt;/a&gt; as a core plugin. Same result, one less community plugin to maintain.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's not here
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Graph view&lt;/strong&gt;: Visually impressive, practically useless. Local graph is somewhat more useful but honestly I only use it a few times at the start and never again.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dataview&lt;/strong&gt;: Replaced by Bases for my inbox use case. See above.&lt;/p&gt;

&lt;h2&gt;
  
  
  Claude Code integration
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;CLAUDE.md&lt;/code&gt; included in the vault is the actual prompt I use. It defines the vault structure, note taxonomy, and naming conventions. It provides enough context for Claude to act as a vault assistant without needing to be re-briefed each session. No extra skills configured. Keeping it simple is the point.&lt;/p&gt;

&lt;p&gt;The full vault is &lt;a href="https://github.com/ronaldsuwandi/gantengx-vault-example" rel="noopener noreferrer"&gt;on GitHub&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This is part 3 of a 3-part series. &lt;a href="https://dev.to/gantengx/the-pkm-setup-i-settled-on-after-many-iterations-6pa"&gt;Part 1&lt;/a&gt; covered the PKM system. &lt;a href="https://dev.to/gantengx/how-i-capture-notes-using-the-4-bucket-system-32dc"&gt;Part 2&lt;/a&gt; covered note capturing.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>pkm</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>How I Capture Notes Using the 4 Bucket System</title>
      <dc:creator>Ronald Suwandi</dc:creator>
      <pubDate>Sun, 01 Mar 2026 06:54:43 +0000</pubDate>
      <link>https://forem.com/gantengx/how-i-capture-notes-using-the-4-bucket-system-32dc</link>
      <guid>https://forem.com/gantengx/how-i-capture-notes-using-the-4-bucket-system-32dc</guid>
      <description>&lt;p&gt;The way I capture notes depends on what I'm doing.&lt;/p&gt;

&lt;p&gt;If I'm just jotting something down quickly (e.g. random thoughts, recruiter calls, something to follow up) it goes straight to Daily Note in point form, to process later.&lt;/p&gt;

&lt;p&gt;If I know what I'm walking into (e.g. meeting, customer call, course, project update) I default to the 4 bucket system. This is what the post is about, and it's part 2 of a 3-part series on my PKM setup.&lt;/p&gt;

&lt;p&gt;For everything else (e.g. deep technical notes, workflows, reference material) I just write in sections and let the structure come from the content.&lt;/p&gt;

&lt;p&gt;The 4 bucket system comes from &lt;a href="https://www.linkedin.com/feed/update/urn:li:activity:7338580823962435585/" rel="noopener noreferrer"&gt;Steve Huynh on LinkedIn&lt;/a&gt;. Essentially when capturing information, categorise everything into four buckets:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Facts: this is the &lt;strong&gt;what&lt;/strong&gt;, the basic building blocks&lt;/li&gt;
&lt;li&gt;Procedural: this is process, the &lt;strong&gt;how&lt;/strong&gt;, the steps (all about sequence of actions) like deploying code, SOP&lt;/li&gt;
&lt;li&gt;Conceptual: this is the &lt;strong&gt;ideas&lt;/strong&gt; and how the ideas connected to each other&lt;/li&gt;
&lt;li&gt;Questions: this is important because it highlights what you already know and what you don't. If anything you're unsure about or doesn't fit, put it here&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%2Fg92yw53ghgry6e4bqnj5.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%2Fg92yw53ghgry6e4bqnj5.png" alt="Example of my 4 bucket notes" width="800" height="575"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The pause is the point
&lt;/h2&gt;

&lt;p&gt;When capturing, don't just write down everything you hear. Categorising forces you to ask: is this a fact, or does it explain something? That moment of judgment is where the actual thinking happens.&lt;/p&gt;

&lt;p&gt;The result is notes that are already partially processed. When you come back to them, you're not re-reading a raw transcript. You're reading organised understanding.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where it works well
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Meeting and sync-up notes&lt;/strong&gt;: especially project updates where you're capturing status, decisions, and open questions at the same time&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Inbox capture&lt;/strong&gt;: quick notes that need processing later. The structure makes processing faster because you've already categorised what matters&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Training and workshops&lt;/strong&gt;: if the scope fits in a single note. Short course? Treat it like an extended meeting and apply four buckets throughout&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Small evergreen notes&lt;/strong&gt;: when the concept is self-contained enough that all four buckets fit naturally&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For project updates specifically, I use a hub-and-spoke pattern: the main note captures the &lt;strong&gt;latest state&lt;/strong&gt; with four buckets, and any in-depth detail lives in a separate linked note. I also have an embedded logs section where I capture logs/decisions for reference.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where it breaks down
&lt;/h2&gt;

&lt;p&gt;Personally I feel the four bucket system doesn't work on these types of notes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Large permanent/deep technical notes or MOC notes (e.g. deep dive into Kafka, deep dive into Polish openings in chess, etc)&lt;/li&gt;
&lt;li&gt;Longer training/course&lt;/li&gt;
&lt;li&gt;Workflow based notes (e.g. SOPs, 7 questions to ask to find chess positions)&lt;/li&gt;
&lt;li&gt;Code examples&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The 4-bucket system optimises for categorisation whereas technical learning needs narrative flow and connected understanding.&lt;/p&gt;

&lt;h2&gt;
  
  
  The blurred lines between sections
&lt;/h2&gt;

&lt;p&gt;One of the most problematic parts is that bucket boundaries aren't always clear. Two cases come up regularly.&lt;/p&gt;

&lt;h3&gt;
  
  
  Facts vs Conceptual
&lt;/h3&gt;

&lt;p&gt;In the case of Kafka, for example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Facts

&lt;ul&gt;
&lt;li&gt;Kafka uses pub-sub model&lt;/li&gt;
&lt;li&gt;Topic is named stream of records&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Conceptual

&lt;ul&gt;
&lt;li&gt;Why Kafka is durable: uses replication and disk-based logs&lt;/li&gt;
&lt;li&gt;Kafka decouples producers and consumers to allow scalability&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;Now all the points in the conceptual section are in fact "facts". Take the first example. "Why Kafka is durable: uses replication and disk-based logs". It's conceptual because it &lt;strong&gt;explains a property&lt;/strong&gt; using multiple facts. Think of it this way:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Kafka uses replication (facts)&lt;/li&gt;
&lt;li&gt;Kafka writes to disk (facts)&lt;/li&gt;
&lt;li&gt;Kafka is durable because of replication + disk (conceptual)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Rule of thumb: Facts = individual bricks. Conceptual = how those bricks fit together and what they build. If it &lt;strong&gt;explains tradeoffs, design principles, behaviours&lt;/strong&gt;, it's conceptual.&lt;/p&gt;

&lt;h3&gt;
  
  
  Facts vs Procedural
&lt;/h3&gt;

&lt;p&gt;The following example is a note I captured during a meeting: "Order ID rendering is broken. Convert it into HEX and take out the last 8 digits and append colon".&lt;/p&gt;

&lt;p&gt;These can be approached 2 ways:&lt;/p&gt;

&lt;p&gt;Option 1 - split&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fact: Order ID rendering is broken&lt;/li&gt;
&lt;li&gt;Procedural: To fix order ID rendering, convert to HEX and take out the last 8 digits and append colon&lt;/li&gt;
&lt;li&gt;This gives clarity but adds overhead and might be redundant&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Option 2 - compact (just keep it in fact)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Treat it as: "what's wrong, and how to fix it"&lt;/li&gt;
&lt;li&gt;This is pragmatic and keeps the procedural closely tied to the fact&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For working notes, option 2 is almost always the right call. Option 1 is worth it when the fix is complex (spans multiple components), you're turning notes into documentation or onboarding material, or maintaining a checklist for an SOP.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This is part 2 of a 3-part series. &lt;a href="https://dev.to/gantengx/the-pkm-setup-i-settled-on-after-many-iterations-6pa"&gt;Part 1&lt;/a&gt; covered the overall system for organising notes. &lt;a href="https://dev.to/gantengx/the-obsidian-setup-behind-the-system-1b44"&gt;Part 3&lt;/a&gt; covered the Obsidian setup.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devjournal</category>
      <category>learning</category>
      <category>productivity</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>The PKM Setup I Settled On After Many Iterations</title>
      <dc:creator>Ronald Suwandi</dc:creator>
      <pubDate>Sun, 01 Mar 2026 06:43:39 +0000</pubDate>
      <link>https://forem.com/gantengx/the-pkm-setup-i-settled-on-after-many-iterations-6pa</link>
      <guid>https://forem.com/gantengx/the-pkm-setup-i-settled-on-after-many-iterations-6pa</guid>
      <description>&lt;p&gt;The system I use for note-taking today is a combination of &lt;a href="https://fortelabs.com/blog/para/" rel="noopener noreferrer"&gt;PARA&lt;/a&gt;, &lt;a href="https://notes.andymatuschak.org/About_these_notes" rel="noopener noreferrer"&gt;Evergreen Notes&lt;/a&gt; and &lt;a href="https://www.linkedin.com/feed/update/urn:li:activity:7338580823962435585/" rel="noopener noreferrer"&gt;4 Buckets System&lt;/a&gt; that I ended up merging after a lot of iterations. This post is part 1 of a 3-part series on my PKM setup using &lt;a href="https://obsidian.md" rel="noopener noreferrer"&gt;Obsidian&lt;/a&gt;, how I got there and how it's used daily.&lt;/p&gt;

&lt;p&gt;Fair warning: none of this is groundbreaking. It's just a mix-and-match of various frameworks that eventually clicked. If you've ever spent more time setting up your system rather than actually using it, this might resonate.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;The main idea of the system is that notes are generally grouped to seven types:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Project: anything &lt;strong&gt;time-bound&lt;/strong&gt; related notes&lt;/li&gt;
&lt;li&gt;Area/Resource (merged): any ongoing focus/interest area or reference materials&lt;/li&gt;
&lt;li&gt;Archive: completed/inactive/outdated items (this is simply any note with #archived tag on it)&lt;/li&gt;
&lt;li&gt;MOC (Map of Content): serve as high level overview for the notes. Project and Area &lt;em&gt;can&lt;/em&gt; be an MOC&lt;/li&gt;
&lt;li&gt;Evergreen notes: the default note. Knowledge meant to last and be referenced again. Ranges from atomic single-concept notes to topic reference notes&lt;/li&gt;
&lt;li&gt;Log: any log based (requires date) note that’s used to capture things. Some can be ephemeral and migrated to evergreen notes as the knowledge is settled. Generally avoid creating separate log note (embed into the main context) and only extract it as needed (log gets too large)&lt;/li&gt;
&lt;li&gt;Scratchpad: stored in daily note. Meant to be processed and should be empty&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Notes must be enduring, interconnected and worth revisiting.&lt;/p&gt;

&lt;p&gt;In the original PARA approach, Area and Resources are different, the idea is that Area is something ongoing focus/interest and the notes that I capture myself whereas Resource is mainly for any reference articles. Personally I do not see any benefit separating them - it just adds more clutter so I feel that it's fine to merge them. After all the system should work to my style, not the other way around.&lt;/p&gt;

&lt;h2&gt;
  
  
  Zettelkasten
&lt;/h2&gt;

&lt;p&gt;I started with Zettelkasten. The pitch is appealing: atomic notes, each capturing one core idea, all interconnected in a way that compounds over time. For researchers or writers it probably makes sense but for me personally it feels like this introduces a lot of overhead. Having to follow so many links is not sustainable and maintaining the system became a hassle.&lt;/p&gt;

&lt;h2&gt;
  
  
  Evergreen Notes
&lt;/h2&gt;

&lt;p&gt;Evergreen notes are enduring, interconnected and meant to be revisited. The goal is longevity and reusability. Notes should evolve as understanding deepens.&lt;/p&gt;

&lt;p&gt;The evergreen note should be atomic, containing 1 concept (not to the level of Zettelkasten). A note can have a few related ideas but the core concept is still only one.&lt;/p&gt;

&lt;p&gt;Note title can be a sentence to make concept precise (if note contains why, how or an insight e.g. &lt;code&gt;Count number of lines in a file&lt;/code&gt;) but it's also okay to use descriptive topic title if sentence would feel forced (e.g. &lt;code&gt;Ownership concept&lt;/code&gt;, &lt;code&gt;Chess psychology&lt;/code&gt;). Title should be precise enough to be unambiguous.&lt;/p&gt;

&lt;h2&gt;
  
  
  Combining PARA and Evergreen Notes
&lt;/h2&gt;

&lt;p&gt;The gap I found in PARA is that once a project closes, the knowledge inside gets archived with it. When I finished my Apache Kafka Certification, the knowledge was still worth referencing. Evergreen Notes solves this as the underlying notes outlast the project. The project is just a container for goals and tracking.&lt;/p&gt;

&lt;h2&gt;
  
  
  Note associations (tags, backlinks)
&lt;/h2&gt;

&lt;p&gt;Prior to this I tried using tags and linking related topics in the note but quickly realised that as I go deeper the amount of references pointing back to them is huge (example: Kafka or Kafka Streams) and visiting the Kafka page looking at 100+ backlinks is pointless.&lt;/p&gt;

&lt;p&gt;Andy Matuschak has a piece on why &lt;a href="https://notes.andymatuschak.org/Tags_are_an_ineffective_association_structure" rel="noopener noreferrer"&gt;tags are an ineffective association structure&lt;/a&gt;. Fine-grained associations ("topic X goes into more detail about topic Y") are more useful than coarse ones ("topic X is related to topic Y"). I removed topic headers and tags afterwards.&lt;/p&gt;

&lt;h2&gt;
  
  
  Note metadata
&lt;/h2&gt;

&lt;p&gt;At some point I was adding metadata to a bunch of my notes (creation date, updated date, topics, status) and realised shortly after that it doesn't really add much value and creates more friction.&lt;/p&gt;

&lt;p&gt;I landed on a principle from this &lt;a href="https://forum.obsidian.md/t/principles-for-metadata-minimalism/11379/5" rel="noopener noreferrer"&gt;forum post on metadata minimalism&lt;/a&gt;: only add metadata if you actually use it for navigation or querying. &lt;/p&gt;

&lt;p&gt;With that I ended up with 3 status tags: #todo, #archived, #ongoing and date field on project notes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Flat file structure
&lt;/h2&gt;

&lt;p&gt;Everything in Obsidian lives flat with only three directories: daily notes (empty files), attachments, and templates. Everything else sits at root level. This was inspired when I used to use &lt;a href="https://roamresearch.com" rel="noopener noreferrer"&gt;Roam Research&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Going flat frees up my brain from worrying about categorisation at the point of capture. I use file naming conventions to provide context instead.&lt;/p&gt;

&lt;h2&gt;
  
  
  File storage outside Obsidian
&lt;/h2&gt;

&lt;p&gt;For everything outside Obsidian, I follow a structure loosely based on &lt;a href="http://johnnydecimal.com" rel="noopener noreferrer"&gt;Johnny.Decimal&lt;/a&gt;. The core idea: no more than two levels of nesting, up to ten groups per level.&lt;/p&gt;

&lt;p&gt;One thing I didn't adopt is the number prefix as I personally dislike having decimal IDs in file names. Root categories and areas are an exception and do have 2-digit decimals.&lt;/p&gt;

&lt;p&gt;I maintain an index file to keep track where things live. Rather than 1 massive index, I split it by category so each category index stays small and actually readable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Note file naming
&lt;/h2&gt;

&lt;p&gt;I want the file naming to be consistent so I set up some rules:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Main root index uses emoji prefix to keep it pretty (e.g. &lt;code&gt;🏡 Home&lt;/code&gt;, &lt;code&gt;📚 Topics&lt;/code&gt;, etc)&lt;/li&gt;
&lt;li&gt;No prefix for MOC and project notes&lt;/li&gt;
&lt;li&gt;Log-based notes use &lt;code&gt;Log - &amp;lt;type&amp;gt;&lt;/code&gt; prefix. Some logs are ephemeral and used to capture progress that can be converted into an evergreen note

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;Log - 1-1 - &amp;lt;name&amp;gt;&lt;/code&gt; to capture 1-1s with colleagues. This can grow pretty large and can be broken into yearly logs if needed&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Log - Health - &amp;lt;yyyy-mm-dd&amp;gt; - &amp;lt;name&amp;gt; - &amp;lt;illness&amp;gt;&lt;/code&gt; specifically to keep track of my kids' illnesses&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Log - People - &amp;lt;name&amp;gt;&lt;/code&gt; for catch-ups&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Log - &amp;lt;Project name&amp;gt;&lt;/code&gt; for any side project logs&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Generally keep log embedded (be it for project, idea, engagements, etc) as much as possible and only extract when there is a need (log gets too large)&lt;/li&gt;

&lt;li&gt;Some notes have prefixes:

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;Course - &amp;lt;course name&amp;gt;&lt;/code&gt; for learnings&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Idea - &amp;lt;idea&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;Company name&amp;gt; - &amp;lt;note title&amp;gt;&lt;/code&gt; for any notes related to a specific company. I use 2-4 character codes to map company names (e.g. &lt;code&gt;CFLT → Confluent, EYE → Eyeota, IND → Indeed&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Prompt - &amp;lt;prompt title&amp;gt;&lt;/code&gt; for keeping track of LLM prompts&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  Inbox
&lt;/h2&gt;

&lt;p&gt;Inbox serves as a centralised place to capture quick ideas and I settled with using daily notes as a scratchpad. It's low friction — dump anything throughout the day and process it later. My rule is daily notes should be empty by default; a non-empty daily note means there's unprocessed stuff.&lt;/p&gt;

&lt;p&gt;Inbox then simply show list of files containing #todo tag, or daily notes that are not empty.&lt;/p&gt;

&lt;h2&gt;
  
  
  Write for yourself, rewrite to publish
&lt;/h2&gt;

&lt;p&gt;The thing that made the most practical difference: I write notes for myself, not for an imagined reader. My notes are written in first person view format and if it's important enough to be published then I will rewrite the note to a publishable form.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This is part 1 of a 3-part series. &lt;a href="https://dev.to/gantengx/how-i-capture-notes-using-the-4-bucket-system-32dc"&gt;Part 2&lt;/a&gt; covered how I capture notes. &lt;a href="https://dev.to/gantengx/the-obsidian-setup-behind-the-system-1b44"&gt;Part 3&lt;/a&gt; covered the Obsidian setup.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>pkm</category>
      <category>tutorial</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Show DEV: Oh Yah – Routine management app I built for my sons</title>
      <dc:creator>Ronald Suwandi</dc:creator>
      <pubDate>Thu, 09 Oct 2025 06:27:20 +0000</pubDate>
      <link>https://forem.com/gantengx/show-dev-oh-yah-routine-management-app-i-built-for-my-sons-27a</link>
      <guid>https://forem.com/gantengx/show-dev-oh-yah-routine-management-app-i-built-for-my-sons-27a</guid>
      <description>&lt;p&gt;Hi DEV community!&lt;/p&gt;

&lt;p&gt;I built Oh Yah! because my sons (7 and 10) struggled with daily routines and needed constant reminders. The name came from their usual response when we asked about homework: "Oh Yah! I forgot"&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it does:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Timer-locked navigation during tasks (focus mode, no distractions)&lt;/li&gt;
&lt;li&gt;Optional photo proof for task completion&lt;/li&gt;
&lt;li&gt;Parent review system with rewards&lt;/li&gt;
&lt;li&gt;Task-definition approach: create tasks once, toggle days across the week&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Stack:&lt;/strong&gt; React Native/Expo, Firebase (Auth + Firestore + Storage), React Query, Zustand, React Native Paper&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Trickiest parts:&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;&lt;em&gt;Architecture:&lt;/em&gt; Initially built it schedule-centric where each day required duplicate tasks. It was such a nightmare to maintain that I added a helper button just to populate dummy schedules. I quickly realized if &lt;em&gt;I&lt;/em&gt; got annoyed as the creator, other people would hate it. Refactored to task-definitions as first-class citizens, and creating schedules is finally painless&lt;/p&gt;

&lt;p&gt;&lt;em&gt;UX:&lt;/em&gt; Balancing two different users was hard. Kids need minimal distractions and parents need schedule setup and review to be intuitive, not a chore&lt;/p&gt;

&lt;p&gt;Some key decisions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Timer-locked navigation (kids can only see what's next, nothing else)&lt;/li&gt;
&lt;li&gt;Preview screen before starting so they can't "accidentally" click another profile&lt;/li&gt;
&lt;li&gt;Task-definitions approa
ch for schedules (create once, toggle days)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It's on the App Store now after a few months of dogfooding with my family. There's a 1-month free trial, then it's subscription-based. Would love feedback from other DEV parents dealing with similar challenges&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Link:&lt;/strong&gt; &lt;a href="https://ohyahapp.com" rel="noopener noreferrer"&gt;https://ohyahapp.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>reactnative</category>
      <category>firebase</category>
      <category>mobile</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
