Gathering API v0.1 ideas

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

Re-posting here my original post:

I just wanted to check whether the API will be implemented in GraphQL? In 2018 it looks like the de-facto way to go for me. Out of the box you’ll have a GraphiQL interface with automatic schema documentation, strong type system, and it will automatically allow integration within the GraphQL tooling ecosystem. On top of that it would make it easy to use Dynalist as a backend for front-end static site generators like Gatsby.

And @Erica’s reply:

Thanks for the suggestion, we’ll need to look into GraphQL a bit more in order to decide. From a quick look it seems promising.

If GraphQL isn’t used, you could still allow consuming Dynalist data in Gatsby with a source plugin similar to Trello or Google Sheets. You could then write a guest post on the Gatsby blog to gain visibility.

I currently have a hard time documenting things since I am really focused on some specific topic / websurfing in general, I find using pinboard’s chrome shortcut to be convenient for bookmarking items. I wish dynalist had something similar to this. It would be very similar to the “capture inbox” but as a chrome extension using only dynalist API, with support for automatic root dynamic endpoints [e.g. endpoint changes if its #monMarch1st vs #monMarch2nd], with the ability to pick a sub-bulletpoint destination [e.g. @work or @personal]

Workflow wise, it would look like this. similar to pinboards bookmark shortcut

  1. Shortcut - Press CTRL+D on that page

  2. A new temporary page pops with that day’s dynamic endpoint. You can only see top level bulletpoints here, you would see the top 5 bulletpoints in that list no subbulletpoints shown

  3. Optional - Create subbulletpoints on the same level only

  4. Pick a subbulletpoint and append one singular bulletpoint.

  5. Add Data - Can add bulletpoint data and its’ note data. It automatically creates a markdown bookmark to that page. You can optionally delete that by default, in the event you are just adding an idea you had related to your project with no URL in mind

  6. Press enter - pressing enter brings you back to whatever page you were looking at. You push the bulletpoint data similar to “capture inbox”

it would work like this:

  1. GET request (Grab first top level bulletpoint by json format “create date” in that doc). Possibly filter if it has a #tag to prevent it from accidentally triggering wrong bulletpoint.
  2. POST request (Creating top level child bulletpoints), optional. PUT request if this bulletpoints name is to be updated entirely.
  3. Refresh changes if #2 was made. GET
  4. POST request (creating a bulletpoint with its notes)

this would be helpful to me since then I would never have to open dynalist at all except at the beginning of the end, end of day, and anytime I need to reference notes I made throughout the day.

Optionally, it would also be nice to have that chrome extension (upon being clicked in toolbar) to view those days notes. This would only be done using GET requests. . Functionality would resemble this page notes chrome extension

Even better if you can have a way to correlate a bookmarked URL’s domain to that specific website through all notes you made, although this would cause too many requests being made

On the IOS app, it’ll be great to have a x-callback-url to insert item into inbox, that’ll allow simple integration with apps like “Drafts” to capture ideas without all the steps to go through share.