Repository navigation
Why not just contribute to other plugins instead of building this plugin from scratch? #650
Replies: 2 comments
|
Well, the "Motivation" section in the readme of this plugin answers part of your question, but there is a lot more to it. Let me try to mention most of the points... Firstly, I must talk about open source projects in general. Most of the OS projects which are in active state right now will be mostly because of two reason :
And there is a third point of donations, but that happens for very few projects. I saw there is a post on Obsidian forum on, "Why not make Obsidian open source?". Now, there are big open source projects like VS Code in active development. But that project is backed by Microsoft. If projects like Obsidian goes open source, then there are various problems which the original developers will need to face, which has also been mentioned in that forum topic. And eventually, the development of such projects halts or even dies. Another main reason is, usually an OS project is owned by a single person or a group of developers. And, when new developers contributes their ideas to the projects, these ideas are usually not accepted because of the vision of the software or because it simply cannot be added in that main project. I feel, Obsidian team has done the right decision of keeping Obsidian closed source, which has helped it too create a huge healthy community. Finally, what makes a software great is its users not the developers. Now, lets understand this from an Obsidian's plugin POV. In my case, there is a plugin called Cards View, to which I initially tried to contribute some ideas. Some of my ideas did got accepted, but others were not integrated because the original plugin had different vision. And the ideas I suggested were hindering that vision of the plugin. For example to keep it minimalistic and simple etc. Another reason, why I couldnt able to continue contributing to that project was because, in OS projects, different developers work as per their availability. OS projects are developed as a hobby, in free time. Hence, it often not possible to keep the same pace of other developers. Thats leads me creating a fork of that plugin and keep working on my own version of that plugin independently. In Task Board, similarly, there are contributions done by few developers right now, which are kept on hold right now and havent been integrated in the main software, as its not possible to align them with the rest of the features of Task Board, or it might confuse the users, etc. The power of using plugins in Obsidian has give its users the power to create their own unique workflows. Users can do whatever they want in Obsidian. And, when a plugin is in Obsidian marketplace with thousands of downloads, its not possible to implement each and every feature inside a particular plugin. We need to think if that feature will be useful for the major part of the audience, only after that the feature is excepted and integrated. The biggest motivation for me, which has kept this project alive so far, is because I have developed it with a particular vision in mind. Which I have explained in detailed here : https://tu2-atmanand.github.io/task-board-docs/docs/Vision/ I have now understood the Obsidian APIs enough to contribute to other projects, I feel I can even contribute to TaskNotes plugin as I am quite familiar with its codebase. Its simpler than say Kanban plugin codebase. But its simply not possible because of all the above reasons. I guess, the TaskNotes developers might accept my contributions to enhance its various features, but again it will take some time and most of it will be basically planning and management stuff and less development stuff, which will again going to make me to create a new fork of TaskNotes and continue working on the ideas I have independently. And moving forward, this fork will be in a state where, it wont be possible to merge them both together because of a lot of code changes. Then it will be simply a two different version of the plugin. This same thing has happened with Cards view plugin and Notes Explorer plugin, for example. (TaskNotes and Task Board is just an example I used to answer your question. Task Board is few months older than TaskNotes. So, it could have been other way around, but I guess TaskNotes developer might thought the same way and he started its own different project. And during my time, instead of contributing to the Kanban plugin I started this project from scratch was because, Kanban plugin codebase is still very complex for me to understand till now.) |
|
Initially, I thought, Task Board can become a generalized plugin which can be used by everyone to manage their tasks in Obsidian. But soon I realized there are various other feature, such as integration with online Calendars, simple tasks which should be created by NLP, recurring tasks, etc. are preferred by majority of the users. And the vision Task Board had is to manage certain kinds of projects/tasks, hence I accepted that Task Board's userbase might not become as big as TaskNotes plugin userbase. But there are a lot of users who instantly find this plugin useful, because of its simplicity as well as because of some unique methodologies it helps to adapt for project management. So, I definitely dont feel Task Board will going to become a competitor of TaskNotes plugin. TaskNotes and Tasks plugin is preferred by most of the general users, because of its various features which I dont think will going to be integrated in Task Board, not atleast in the near future. I personally use Task Board and TaskNotes plugin in my one vault where I need to make use of integration with Google Calender, but I cannot use it alone to manage by projects. For such projects, I use Task Board alone. The whole point of plugin ecosystem is to extend the functionalities of Obsidian on-demand. So, I think, extending a single plugin with everything is not a good approach in Obsidian as it will make the plugin bloated and increase its load time. So far I have seen Excalidraw is the heaviest plugin (8mb, which is also compressed). And TaskNotes right now is 4mb. The reason why I havent integrated Calender features and all in Task Board is because, these needs external libraries, which is why, plugin which has calender functionality in them are usually bigger in size. So, having a proper integration with other plugins seems to be a good approach to me, to work in Obsidian. Especially situation where its easily possible, like Task Board + TaskNotes. Also, just to give a heads-up to the Task Board users, a new change will be implemented in Task Board, which is storing the boards as special .taskboard files. And if you might be wondering, why Task Board didnt used the same approach as TaskNotes to make use of bases to render all its views. Read more on this here : #630 |
Uh oh!
There was an error while loading. Please reload this page.
Can I ask what prompted you to make this plugin? I am not a developer so I'm sure it took you a lot of effort and I appreciate that; that said, I've always been curious as to why plugin devs tend to just create from scratch as opposed to building/contributing to pre-existing plugins that could use that 1 last tweak to make perfect. More specifically, given your current limitations, what you stated in the comments, is your intention to offer an alternative to solid plugins like TaskNotes or is it complementary or? Curious to hear your thoughts and anyone else's
All reactions