Skip to content

FR : A .taskboard file to store each board inside the vault #591

@tu2-atmanand

Description

@tu2-atmanand

Since this is a big change and to have discussions on this, I have created a dedicated discussion topic for this. Please carry on with any discussion related to this idea here : #630 .

Problem Statement

This idea of storing the complete board data for individual board inside a single .taskboard file was born from the discussion in ticket : #561 .

Obsidian is a software, where user is producing their own data, may it be creative, management, research, resource collection, etc.
When users are using plugins, to do the same, whatever data produced through the plugin is also user's data. Hence, its very important that this data should be preserved and it should stored inside the vault, rather than storing it inside the plugin cache folder or localStorage, etc. Which can lead to data loss when there is a plugin failure or even the Obsidian crashes. But the data stored inside within a file, is always safe and preserved for future use and user has the complete control over their data.

Hence, the decision is made that :

  • The configuration data for the complete board.
  • The configuration data for a Kanban view.
  • The configuration as well as layout data of the map view.

It is a very critical data user has produced over time and it should be stored in a single file.

Possible Approach

  • When user will create a new board, a new file will be created for this board inside the vault, maybe, where user wants it or in the root folder and then user can move the file wherever they want.
  • For example, if the board they have created with the name "My project 1", then the file will be created with the name My project 1.taskboard.
  • When user will click on this file from the file explorer, it will open the Task Board view for that board.
  • Now user is free to change the location of this file as well as change the name of this file, the board name will be stored inside this file.
  • The decision has been made to store the complete data related to the board, mentioned above, in a json format. This is the same approach used by the most popular plugin Excalidraw, where they are storing their data in json format inside their .excalidraw file format.
  • So, all the data from the data.json for the specific board data will be moved inside this new .taskboard file when user will upgrade the plugin to the this version.

Benefits of this approach

  • The data is preserved forever, there is no chance of loosing the data.
  • The file can be synced just like a normal note and can be opened inside any other device through the plugin.
  • Easy to duplicate and create multiple projects.
  • Open multiple boards simultaneously inside different tabs or windows in big screens and multi-monitor setup.
  • In future, even if the plugin development has been stopped, other plugins can still make use of this file and use the data for their plugin as they want, as this is a open file format.
  • The board file can be placed wherever the user want as per their project structure and open it just like a normal file, which will be opened inside a Task Board tab and user can continue where they left off their work last time.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementAn existing feature can be enhanced/improved.featureNew feature requestoptimizationThe algorithm/code can be optimized. A better approachprioritizeExtra attention is needed

    Projects

    Status

    Ready to Review

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions