Gathering API v0.1 ideas

I love the way Airtable (basically a spreadsheet-database hybrid) allows for notifications with Slack.

Whenever you create an update to cells within a specified view it sends that to Slack.

The corollary in Dynalist would be being able to specify a number of readable attributes for every item such as:

  • Item text
  • Item note
  • Creation date

And some new attributes for structured data:

  • Priority (critical, high, normal, low)
  • Status (e.g. new, in-progress, completed etc)

If I could have collaborators able to update priority, status etc for any bullet and have those updates then as notifications in Slack then I’d stop needing Asana or Airtable for project management.

2 Likes

Item Properties special sub-item

This could be implemented by having a special sub-item called $properties for example which contains customisable metadata for an item.

For example:

Ideally it allows arbitrary properties to be created, but also has formatted property types which better interoperate with other integrations.

This sort of extensible framework also is flexible enough to allow later GUI customisability e.g. maybe some people want to display the Status and Completion % in-line with the item, whereas others might prefer seeing Assignee and Deadline Datetime.

The GUI for this could even be organised via properties e.g.
GUI itemleft [=] Status
GUI itemright1 [=] Priority
GUI itemright2 [=] Completion %

4 Likes

!(9/14/2017 12:25)

I haven’t posted any ideas recently but here’s some ideas I still want to be implemented down the road when I get around to it

Most issues Ihave right now with dynalist is not navigating to the doc I want fast enough from whatever I’m doing at that moment. That, and navigating through dynalist panes in chrome is challenging as well

For instance, I might be on one document, working on some coursenotes or something along those lines, realize I need to cross reference another document (or several), but have to use piotr’s omnipanel to open that doc in a new tab. I wish cross-doc navigation in dynalist was better overall

API-based solutions (that aren’t too difficult and I’ll probably work on these later)

  • Automatically put a document in a folder based on its name prefix (I make one doc almost every week, it gets kind of tedious moving files around).
  • Press a hotkey, open up dynalist in new tab, dynalist asks which file I want to open (as opposed to dynalist opening the last tab)
  • A better overall version of CTRL+O for navigating files ( I’d like more keyboard navigation around documents, having so many documents now, keyboard nav is faster)
  • A control panel for navigating docs (I would really like a method of “tagging” documents themselves with metadata -> Very similar to how wordpress handles blogposts with categories and tags))
    - With CTRL+O, Press CTRL+Click to open that item in a new tab (as opposed to in same tab) → I’m going to implement this first, once I finish this other course about modifying the DOM so I can understand it in more detail.
  • Based on document prefix name, use a different style favicon

Less high priority API based solutions

  • Right side panel style navigation similar to app.classeur.io
  • Javascript based spreadsheets
  • Ability to hide node’s notes on an individual basis
  • Airtable-like / database features (highlight over a specific tag to “expand out” text, useful for contact info. E.G. type in @client-name and hover over to see information about them)- Basically a search parameter based on typing within that node
  • Anki-like integrations → Not 100% sure how this is integrated, but I dumped many ideas here. As of right now I use dynalist to breakdown and understand information, some other ways to consolidate knowledge, and anki to retain it. Wish there was a streamlined method of keeping track of what things I put in anki from dynalist.

Non API specific things:

  • Force dynalist in chromium to open links in chrome (Not entirely sure how this is done) yet still
  • Write a python script with some regex to rebuild all my imagelink names if I need it later on (e.g. amazonS3.com/imageName instead of imgur.com/imageName)

Generalized features I would like

  • ++highlighter formatting++ (piotrs powerpack highlighter gets wonky sometimes, and I really just want a 3rd method of formatting text) → I’ll implement this later too
  • Stickytabs (at bottom of screen) / splittabs built in dynalist, so I could view multiple docs all on one page natively

General issues I have right now

  • Opening a file in a new tab in dynalist doesn’t always go to the homepage of the file

  • Global Search is rather tediously and slow when typing things out, I really wish I could type something out first, then hit search (not an API-specific thing) as opposed to dynalist running a search on each letter I put in. Its becoming troublesome when my docs get larger and longer


I haven’t done any of the API related things I want too try out and am just waiting and am waiting for API doc + learning some related courses that I need to know before attempting it.

2 Likes

I’m trying to limit the number of documents because the search function in Dynalist is still cumbersome and you can work directly on search results only when it’s a document specific search.

But the way you are moving, I do wonder if you are thinking of a more Evernote style UI, with documents instead of cards.

I definitely think evernotes tagging system is a gold standard to be emulated. I think of evernote to dynalist as this in terms of UI that I would like:

  • “1 evernote Note = 1 dynalist document”
  • “1 evernote notebook = 1 folder in dynalist”
  • “1 evernote notebook stack = nested folders in dynalist”

Evernote notes (analogy: dynalist docs) can be searched with tags, but dynalist docs cannot

The only workaround is to just name your docs with tags in the name. I mean, that’s what I do right now, but I would really like embedding meta-data tags for documents. Perhaps in the root bulletpoint’s note store that info there. Scaling up 1000 + evernote notes (analogy: dynalist docs) is easy with tags. Dynalist not so much.

I have about 70 documents at the moment, I could probably cut it down to probably 40. But as I take new courses, read new textbooks, each of those are going to have their own permanent document. I can only see 30 documents at any given time on my file panel on a 1920x1200 screen. The number of documents I will have in the forseeable future is only going to get bigger and more tedious to manage.

My general rule of thumbs for documents is this:

  • 1 course = 1 document this doc list grows quickly over time
  • 1 reference sheet = 1 document (e.g. a git sheet, a javascript specific doc, a CSS specific doc) this doc list grows steadily over time
  • 1 General sheet = 1 document (e.g. journal log notes, a doc for testing new powerpack features, a doc for common contacts for work, dynalist powerpack guidelines, a doc for all my livechat logs, a doc for really random ideas, etc) this doc list doesn’t grow in time
  • 1 project = 1 document (e.g. These are are like my journal log notes, but specific to that project. Examples also including travel planning as well) this doc list grows slowly over time

Project docs and reference sheet are sometimes finicky when deciding what should and shouldn’t be a doc (I have a lot of blank docs here that didn’t work out, e.g. a project got scrapped, I didn’t really need a reference sheet that I thought I needed or used github / anki /some other premade tool instead, etc), but coursenotes + general sheet notes are pretty much set in stone for me

I’m not utilizing tags as often as I do anymore… mostly because I hardly ever find myself doing tag searches and just use keyword searches (mostly, for a specific programming term or phrase). The only times I use tags is when I need to selectively organize how I look at a bunch of information on a doc, and when I do that its only a handful of tags I use. Also, I’ve been taking significantly less notes than I used to and being more selective on how many images / gifs I use, etc.

I started to use anki for retaining information long term from things I generate and breakdown in dynalist and its been working fairly well for me. What’s nice about dynalist is I can format some nice code blocks in dynalist using PowerPack and use graphic cloze deletion using shareX afterwards (image below). I have anki setup similar to how I’d set up evernote in terms of tagging structure / folder structure. I’m using it to to memorize APIs, functions, methods, properties, of any language that I’m trying to learn. I use my dynalist notes for inspiration on what flashcards I should be making. Then I go through my anki flashcards on my phone, and it looks really nice too. I’m thinking I still need a way to synchronize some sort of workflow from dynalist to anki (e.g. making anki tags faster, making cards easier, what cards am I missing on what subject, etc) Anki is really convenient for me here since I can do some mindless task while refreshing up on some knowledge I learned

Also, I don’t currently dynalist for any task management or collaboration at all… I just use tabsnooze on chrome and stickynotes still works good enough for me. Stick it on my bedroom doorknob, on my phone, on my wallet, on my desk, etc. Haven’t even looked at powerpack agenda at all. I like note reminders to be simple

Anyways, this got a bit off topic but those are all my updated notetaking conventions atm. Using dynalist mostly for just for taking notes.

I’m trying to limit the number of documents because the search function in Dynalist is still cumbersome and you can work directly on search results only when it’s a document specific search.

By the way, you know you can change what search results you see first, depending on which document is higher up on the file pane? I put my spammy notes at the bottom of my filepane so they appear last

That reminds me, that would be a nice idea too. Tell dynalist what the priority of search results should be when you search up an item. There’s no way to do anything like that as of now. I think search could be improved to do many more things overall though. I almost never remember when to tag things in general (since I’m usually thinking about my notes and that topic and just usually in a notetaking “zen mode”), so I always almost do keyword searches afterwards

That’s a good tip about the order of documents in a Dynalist search.

I have a few PhraseExpress shortcuts for searching for Evernote. My most common is to populate the search filter with “intitle:” which only searches card titles.

The big problem, of course, is the size of the database. Mine is up to 6gb with nearly 20,000 cards. It’s impossible to use for normal work, but still useful as an archive and reference.

1 Like

First usecase:

write a dynalist companion timer/pomodoro-app:

  • have the full search functionality available
  • add/delete, check/uncheck items
  • reorder items
  • get notified about specific changes (webhooks)

Second usecase

make documents smart: run a script (whenever an item got changed, added, deleted, reordered) to e.g. calculate the current progress, sort the list…
(this functionality is somewhat available with browser extensions, which are not available for every client though)

I see that we can make use of amsmath (or similar) notation to directly generate beautiful equations. I love that, so thank you for implementing it. Now I wonder if it might be possible to extend the LaTeX functionality a bit more.

Creating Tables with LaTeX Syntax

A nice and maybe easy solution for creating tables might be the generic whitespace ignoring syntax of a LaTeX-table. That way, there wouldn’t be a problem with indentation, for it is the very heart of an outliner like Dynalist.
So we could type in something like this:

\begin{tabular}{ l | c | r } Val1 & Val2 & Val3 \\ \hline 1 & 2 & 3 \\  4 & 5 & 6 \\  7 & 8 & 9 \\  \hline \end{tabular}

to generate this:

Of course, the math-symbols get initialized with the double -$: $$\wedge$$ as it is inline-practice of a given .tex-file. Would it be very difficult to implement a seperate function like \begin{} \end{} to behave like sketched above? I think that would be a fantastic feature.

1 Like

@P_A_Monsaille Thanks for the post!

Unfortunately this doesn’t belong under the API thread, which is for proposing ideas for the API (mainly for pulling data from Dynalist and push changes to Dynalist in a programmatic way).

Re: extending LaTeX, we use KaTeX for a partial LaTeX implementation, so I recommend looking into their official website to find out if it’s possible.

Thanks again for the kind post :slight_smile:

1 Like

Are you any closer to releasing an API?
I’m looking for ways to more tightly integrate Dynalist with Android (like notifications and a widget or something similar).

Yes, it’s closer, alpha is likely to begin before the first half of 2018 ends. Hopefully that’s not too late for you!

1 Like

Hi - there are a lot of great ideas here. I hope you don’t wait to release the API until it has a robust feature set - I’d imagine 80% of use cases would be covered by two relatively straightforward endpoints:

  • A GET endpoint for entire documents in OPML form, e.g. https://dynalist.io/api/my+document/opml where projects is a document name. If the consumer needs something more specific, they can parse this.
  • A POST endpoint for adding items to a document, e.g. https://dynalist.io/api/my+document/task

I’d focus on these two things plus Zapier integration. Get that out, take the heat off, and build something more complete at your leisure.

3 Likes

A good feature would be that some API is available, any API :slight_smile: Yes people, its time to release something on this front.

Having said that, I have been looking at other solutions that offer API support and came across Checkvist. They have a simple API that would allow for a lot of things to be done very easily. Check it out as a reference:
https://checkvist.com/auth/api

Chris

Thanks for the pointer to their API page! Pretty useful reference :slight_smile:

For beta, we won’t have that many endpoints though. Will start with the most useful ones :slight_smile:

Erica,

I have been thinking about this for a few days. One of the things I like about the checkvist API is its simplicity. I also looked at the Todoist API. They have the sync api and now they have a simpler rest api. I think the thing I see that is of great value:

  1. Simple API can be very powerful
  2. As needs of developers grow or change, you can always add a new api. yes it s a lot of work, but its better than trying to solve all possible problems from beginning.

Even the trello API, which has a fairly deep set of data, is a simple Rest API in the end.

I would be happy with simple abilities in beginning
(1) Add item to a list
(2) change/delete item in list
(3) read a list
(4) read a list of all lists

Chris

P.S. Keeping this topic live!

Like a list of all documents for an account but without the contents?

Erica,

Yes that would be right. Thank you for helping me with the proper terminology. In effect it the api should return a list of documents and folders.

Thanks,
Chris

I see. It’s just the first time I’ve heard of this proposal so I wanted to make sure I understand it correctly.

How do you plan to use this API endpoint, if I may ask?

There should be some way for discovery I would say, to know what exists. For example, imagine a Trello Powerup allowing for you to link a dynalist list to a Trello card. The power would need to be able to see a list of available documents for the powerup to link the document to the cards.

1 Like

I’d like to encourage you to deliver the 0.1 version with a (very) limited feature set. For my use case (chatbot) a single GET endpoint (as pointed out by Herb) would be enough.

1 Like