PARA + Zettelkasten Vault Template: Powerful Organization, Task Tracking, and Focus Tools All in One!

Hello Everybody, I wanted to give back to the Obsidian community by sharing this vault template that I’ve been working on for almost a month now.

Github Link: here

Vault Structure

This vault fuses PARA and Zettelkasten frameworks for a dynamic, scalable knowledge system.

  • HUB: Central command with a homepage, map, and inbox for seamless navigation and task tracking.

  • PARA: Action-focused—Projects for deadlines, Areas for ongoing pursuits, Resources for all reference materials, and Archive for completed work.

  • ZETA: Idea-centric—Permanent Notes for lasting insights, Literature for research, and Fleeting Notes for quick ideas.

  • DAILY: Organized reflections on a daily, weekly, or monthly basis.

  • STICKY: Temporary notes for brainstorming.

  • SYSTEM: Core vault setup, housing media, templates, and configurations.

Built for growth, this structure adapts as your knowledge and projects evolve!

Vault Features

  • Homepage - Enhanced homepage that allows quick navigation across the vault.

  • Map of Content - Easily search notes with the help of Datacore.

  • Mail Box - View completed and existing “Page Task” with the help of Datacore.

  • Page Task - Mark note files as a task (this is different from the task inside a note).

  • Floating Action Button - A FAB to assist you so you can focus more on taking down notes.

  • Connections and Quick Navigation - Access anything anywhere.

  • Focus Mode - Focus mode macro command and pomodoro integration

  • QuickAdd - Templates and Macro commands available

  • Hotkeys - Convenient hotkey binding for common functionality.

Additional Notes

  • Highly detailed vault documentation can be found inside the vault.

  • two .zip files are available, one contains a populated vault and the other one is an empty vault ready for use.

  • Concept Inspiration and Reference can be found inside the vault.

Feedback and Requests

I appreciate any feedback you have! If you have requests, feel free to open an issue on GitHub or reach out to me directly on Discord (@dusk2681)

Screenshots




4 Likes

I had a look, mostly for what you got out of Datacore and how.
I was so impressed I hardly looked around thoroughly enough before coming back here to say thank you.

Mentioned your post here as well.

2 Likes

Deserves an award :medal_military:

2 Likes

I’m glad you liked it! I’d be happy to answer any questions you have. Also, the ‘Page Task’ along with Datacore is pretty cool—you can even expand it to run different commands based on properties. The script that changes the icon when you press Ctrl + Space can be found in the Homepage and under SYSTEM > TEMPLATE > CODE.

1 Like

I’ll probably start tinkering with it tomorrow (today) and ask you about stuff.
For now, just one thing: any major updates on your vault/GitHub repo, especially technical, use this thread to let people know.

Thanks!

I have one, if you’ll allow me.

When using Group By in Datacore, any idea why these phantom files titled Unnamed come up?

Sorry for the late reply, this is a nice catch. The issue was with how data was being rendered.

This should fix it:
Map of Content.md (35.6 KB)

I’ll update the repo with this change when I finish some other small hotfix/improvements I am working on

Working on the following:

  • light version of the vault (only include plugins used for the core functionalities)
  • mobile display compatibility
  • better documentation
1 Like

That fixed it!
Appreciate your effort.

On my hobby laptop, I tested your vault for performance. First with 15k files, then your own leaner vault.
I hesitated about being a busy-body about this, but thought I’d mention it anyway, mainly because I’m not a software engineer or web developer and I don’t know the answers.

If in your vault I remove the excluded files (actually, folders) in Files&Links and run a search for path: SYSTEM/TEMPLATE/FORMAT /dat, results are pretty slow coming in with all your CSS enabled.
Once I remove the larger CSS files from .obsidian (and there is also a CSS folder somewhere else), the 200-odd results come in instantly without any stutter of the progress bar in the Search Modal.

I’m just mentioning this because the hefty CSS files in .obsidian are obviously built upon previously made ITS and efemkay snippets and there could be something wrong with them. I suspect issues with the view.css files in the SYSTEM/TEMPLATE/CSS folder as well.

If you don’t see any issues, try adding 5-15k files and try the search.
I just tried much same search for 1586 results in my own vault with all your CSS removed and there was no sign of a lag or stutter.

Tasks also has issues with large vaults, apparently.

So far, based on tests, having Datacore on a large vault doesn’t cause problems.

thank you so much for this. I’ll work on improvements maybe over the weekend. These are very valuable observations. Any idea on where I could get realistic dummy data? I was looking to run test sets to measure performance metrics: 5k, 10k, …, 100k notes.

With this I could hopefully arrive with a solution for very large vaults using the template.

I already have something in mind with tasks and why they are slow on very large vaults but for now focus will be on getting that dummy data.

1 Like

There have been some posts here and there on the net about stress testing Obsidian itself.
There is a Python script here that could be of use:
https://www.reddit.com/r/ObsidianMD/comments/zrzqq0/testing_the_scalability_of_obsidian_with_large/

I never tried it, personally.
Then a regex replace Python script could be used to add YAML to all files, based on filename, creation time, etc.
I have also found that Datacore works with snake_case property keys well but not with camelCase…

Created an account here just to comment about how insane this vault is. really mindblowing. Playing with it today but just want to share my appreciation for the work here.

1 Like

Hi

I’ve seen you finalized your vault and possibly do not take FR’s on your GH.

Can I ask here why in the Map of Content file one can edit the property (cell) values if the changes don’t persist and reflect on the given file’s frontmatter? (the mobile version of M of C doesn’t have this).

Are you planning to add this support?

Thanks


Compare DV implementation here - never tried it but this would be awesome with Datacore.

Sorry, that completely flew out of my head. Anyhow I built a fix for your concerns:

  1. Properties are not being updated
  2. Properties cannot be selected for mobile version

You can download the updated version of the Map of Concent and Mobile Map of Concent

Requirement:

  • Install and enable the MetaEdit community plugin.

Changes Made:

  • We created an updateNoteProperty helper function that connects to MetaEdit’s API (app.plugins.plugins[“metaedit”]) to handle the actual note updates.
  • We built an EditableCell component that manages the editing state and shows a confirmation dialog before making changes, using useState and useRef hooks to track values.
  • We modified the table rendering to use EditableCell instead of just displaying values, allowing users to click any cell (except file names) to edit properties, which then triggers the MetaEdit update process through our helper function.

Map of Content.md (39.1 KB)
Mobile Map of Content.md (40.8 KB)

Let me know if you encounter any issues, thank you

1 Like

Tried it.
Awesome!
This will really rock Datacore users’ experience.

I wonder though:

  • Why is MetaEdit needed when processFrontMatter is available from Obsidian API?
  • The confirmation pop-up is nice but could be considered unnecessary as one can re-edit the single cell value if some type was made. When making a lot of changes, this would hinder a good workflow. On pressing Enter, the change would be registered and a notice could be flashed in the upper right-hand corner to let the user know.

I am of course asking these on behalf of the wider community.

Thanks so much anyway, this is really fantastic.

  1. I am having issues with the Obsidian API, so I just resorted to Metaedit API which was a suggestion from this article. If you manage to find a solution with Obsidian API, would love to have a look at the code.

  2. There is a small issue with the code, when you edit again the value displayed will be rendering the 1st Update value (but the note property will have the most recent update value). While it is better to just have the notif at the side, this will do as a quick fix to prevent users from making unnecessary/accidental updates. Will send here if I find a solution.

1 Like

For those of you who are curious with the startup time, here is a breakdown:

  • If you’re not using todoist, removing the plugin will bring down the time to just 2 seconds
  • Excalidraw also takes time to load on startup

Note:

  • From my tesing Lazy loading can bring things down to 1 second startup time even with all the plugins but it causes issues with the Metabind buttons that are nested from tabs

Obsidian start-up time breakdown

Obsidian version: v1.7.7
Operating system: Windows 11

Total startup time: 4,100ms**

  • Initialization: 120ms
  • Vault (206 files): 75ms
  • Workspace (13 tabs, 9 deferred): 223ms
  • Core plugins: 11ms

Community plugins (49 active): 3,671ms

  • Todoist Sync (v1.13.0): 2,116ms
  • Excalidraw (v2.5.2): 634ms
  • Charts View (v1.2.7): 141ms
  • Meta Bind (v1.2.5): 106ms
  • Highlightr (v1.2.2): 65ms
  • Projects (v1.17.4): 43ms
  • Omnisearch (v1.25.0): 40ms
  • Tabs (v1.1.7): 39ms
  • QuickAdd (v1.11.1): 35ms
  • Datacore (v0.1.19): 35ms
  • Dataview (v0.5.67): 30ms
  • Tasks (v7.12.2): 29ms
  • Pomodoro Timer (v1.2.3): 27ms
  • Hover Editor (v0.11.21): 26ms
  • Janitor (v1.0.7): 25ms
  • Admonition (v10.3.2): 24ms
  • Natural Language Dates (v0.6.2): 17ms
  • Style Settings (v1.0.9): 14ms
  • JS Engine (v0.1.17): 14ms
  • Templater (v2.9.1): 11ms
  • Checklist (v2.2.13): 11ms
  • Note Toolbar (v1.14.9): 10ms
  • MetaEdit (v1.8.2): 10ms
  • Editing Toolbar (v2.4.16): 10ms
  • Home tab (v1.2.2): 10ms
  • Status Bar Organizer (v2.1.2): 9ms
  • Journals (v1.4.3): 9ms
  • Iconic (v1.0.15): 9ms
  • Outliner (v4.8.1): 9ms
  • List Callouts (v1.2.9): 9ms
  • Recent Files (v1.7.0): 7ms
  • Minimal Theme Settings (v8.1.1): 6ms
  • Custom Frames (v2.4.7): 6ms
  • Commander (v0.5.2): 5ms
  • Trash Explorer (v1.2.3): 5ms
  • Homepage (v4.0.7): 5ms
  • Novel word count (v3.12.2): 5ms
  • Tag Wrangler (v0.6.1): 4ms
  • Custom File Explorer sorting (v2.1.14): 4ms
  • Paste image rename (v1.6.1): 4ms
  • BRAT (v1.0.3): 4ms
  • Quick Explorer (v0.2.10): 3ms
  • Hotkeys for specific files (v1.4.1): 2ms
  • Settings Search (v1.3.10): 2ms
  • Paste URL into selection (v1.7.0): 2ms
  • Force note view mode (v1.2.2): 2ms
  • Grandfather (v1.0.1): 1ms
  • Hider (v1.5.1): 1ms
  • Garble Text (v1.2.0): 1ms

That’d be robot-made code, so I’ll pass.
I may try anyway when I get the time.
Just remembered that MetaEdit has not been updated for quite some time, but pretty sure it uses Obsidian API under the hood, so no biggie. Just want to cut down on installed plugins, is all.

I have found some plugins must be added as Instant loaded, e.g. to counter Commander custom-icons on mobile toolbar issues, etc.
Still, the majority of plugins can be loaded on startup.