Visual Programming Editor for Building Plugins (Blockly)

Use case or problem

Customizability in your notes editor is really important! And plugins go a long way towards the goal. The only problem is that creating a plugin requires learning JavaScript, which can be a step too far for many people. This is especially true when the current plugin API includes work with Promises, which are a pretty advanced programming concept (although the API does seem to try to mimize the trickyness).

Proposed solution

The customizability of obsidian could be improved by adding a visual programming editor that would allow people to build their own plugins.

A visual programming editor could be created using the Blockly library. It is JS based, but it provides a solid set of typing files, so it should be able to integrate well with Obsidian.

There are many advantageous to adding a visual programming editor, including:

  • Greater variety in plugins. Removing the barrior to development means that more creative people (with varying expertices) would be able to build plugins. This allows for unconventional, creative solutions, which would enhance the plugin ecosystem.
  • Greater customizability. Everyone has their own picky-ness-es about their applications, especially something as personal as a note taking system! A visual programming editor would allow for more people to make the “little tweaks” (eg a filtered tag view, a custom shortcut, etc) that would make obsidian perfect for them.
  • Uniqueness. This is one of the most powerful things an application can have! As far as I know, no other note taking app supports non-programmers creating plugins. This would help Obsidian stand out among the other note taking apps (although it already does that quite well hehe)

However, I will admit there are also some disadvantages:

  • Language design is hard. Even harder than API design. When you’re creating an API, the syntax has already been decided for you, so you just have to worry about semantics. But when you’re designing a language, you have to do both.
  • Maintenance gets rough. Creating a visual programming editor would mean that whenever the API changes, you also have to make changes to the editor. This can get really tricky when you have breaking changes that programmers are used to dealing with, but users are not.

Additionally

This isn’t necessarily a serious proposal. But I wanted to bring it up because I think it would be super cool if this were possible some day!

Also as a disclaimer, I am a contributer to the Blockly library hehe. So part of why I’m posting this is because I think it would be super cool to bring two of my favorite things (Blockly and Obsidian) together.