What would be your dream add-ons/power-ups/integrations?

v rough, early thinking. Basically these would only allow things that are possible through the api – but in a more straightforward way for non-devs to add to their account and use without leaving the kinopio UI or sharing their apikey.

goals

  • allow niche/very-power-user/specific-third-party-integration features without complicating the ui
  • safe and maintainable: addons run in a sandboxed iframe, data access between kinopio and the iframe is provided over documented postmessages
  • scoped: addons can be card based (maybe accessed through card -> styles), or at the space level (accessed through a footer menu)
    • card scope addons can access and write the card name and card meta
    • space scope addons can access all data on a space (more powerful, but more risky)
  • standardized: although I don’t think there’s any standard dev practices around this sort of thing right now. I know ppl at airtable and trello so I’ll at least get their opinions on a future technical spec

TBD

  • distribution
  • timeline (but probably a long time from now)
  • would it work with collaboration? They aren’t likely to have the addon
  • would it work with space viewers? They wouldn’t have the add on
3 Likes

A few ideas here have been discussed already. From Desk accessory / widget ideas, a few worth calling out:

  • pomodoro timer (also requested Pomodoro support for cards)
  • writer tools like character/word count: connect cards to widget and it would update with stats.
  • general space stats (number of cards, connections, orphans, todos, etc)
  • youtube widget for taking notes (this one takes some more explaining). Let’s assume you implement that feature where if you start making a connection and mouseup in open space, it automatically creates a card and puts you in edit mode. With that context, this widget would be an embedded youtube, but when you drag to make a new connected card, it would pre-fill the youtube link with timestamp (maybe markdown linked). This would let you watch a youtube lecture, for example, and take notes linked to specific times of the lecture more easily. :slight_smile:
3 Likes

A simple calendar widget would be very helpful to plan months better.

Jump between daily and monthly pages.

2 Likes

here’s some additional technical context related to the TBD items above:

there’s two general approaches to plugins:

1. plugins execute js and can do anything

This is the approach taken by roam and obsidian. The upsides is that plugin development is easier and there’s nothing you can’t do, this leads to those tools having 100s of potentially useful plugins. But comes with some massive downsides:

  • it’s not safe, there’s nothing stopping raw js from injecting tracking and stealing all your data and secrets
  • it’s not collaborative, the code that runs to allow you to see special element X on a page won’t be running when some visits your space or collaborates
  • plugins are harder to install, requiring copying and pasting random snippets of js you might not understand
  • plugins will break if page html changes significantly. This has the effect of either dramatically slowing the pace of product development, or making plugins very brittle.
  • plugins can degrade performance

I think this approach works in the case where your data is on your harddrive and the gain from hacking is low because companies and teams don’t use the tool. That’s not real security though.

2. plugins execute in a sandbox and can only do limited/expected things

this is the iframe + postmessage approach described in the original post (the approach used by slack, airtable, trello, etc.) . It makes plugins potentially easier to manage and install but has some downsides as well:

  • plugins can’t do as nearly much, they can only
    • manipulate space data (to sync it or inject images or other content),
    • display pre-built building blocks (e.g. you can insert static buttons with custom text label, and only after clicking that button will the plugin iframe be displayed)
  • these plugins are harder to build because you have to learn kinopio specific conventions,
  • plugin authors may also have to run their own server for non-trivial stuff

I don’t love either approach tbh , but I dislike #1 a lot more. I wonder if there’s a third option…

the current state of the art doesn’t look v promising… https://stackoverflow.com/questions/195149/is-it-possible-to-sandbox-javascript-running-in-the-browser

1 Like
  • Kanban / Trello view of cards but doesn’t disrupt the normal spatial view
  • quick input none spatial view to just throw ideas at a space without the distraction of other peoples cards and need for mouse / clicking
  • presenter view so you could show a slide deck view of your cards while others can still add and comment / connect in normal spatial view

Most of these are from my own work on nodenogg.in here is a video where I talk through the different views. I can but try to get Kinopio to have some of my ideas :blush:

1 Like

have you ever tried importing the json of a kinopio space into nodenogg and using it in kanban and presentation mode? if so, how did that go/feel?

that’s a good one, i also want to side-address this with browser extensions in the future

1 Like