Author Archives: Dynalist Team

January update

Happy 2020 Dynalisters!

Here’s a list of what we have in store for you in the first month of 2020:


  • [Pro] Email to Dynalist. Now you can send stuff to your inbox via email! Please read this help article on how to use it.
  • [Internal links] Added menu option that lets you quickly find all the references of a particular item.
    This option doesn’t have a default shortcut, but you can customize it under Settings – Keymap – Working with lists.
    We’re aware that this option still requires some work before you can see “what links here”. We plan to add an area for backlinks under the currently zoomed-in item, so you don’t have to leave your current context (it will need to be turned on with an option).


  • [Google Calendar] Completed items are now marked with “[X]” on Google Calendar, so you can easily tell what’s done and what’s not.
  • [Search] In addition to “parent:” which searches for a keyword in the direct parent of the target item, you can now search for “ancestor:” for a keyword that exists in any of its ancestor items. This is especially handy if you want to see all the items under a tag. For a full list of search operators, please refer to this help article.
  • [UX] Because a few recent accidents, now Dynalist asks for confirmation when you try to drag a document inside another document. When it accidentally happens without a confirmation, it gives the impression that the document has disappeared. We have worked with everyone who experienced this issue to successfully recover their data.
  • [Mind map] Added new custom shortcut for “Switch to mind map”. It can be found under Settings – Keymap – General.
  • [LaTeX] Now invalid LaTeX (any LaTeX that the KaTeX renderer cannot understand) will be marked in red, so you instantly know something is wrong.


  • [Internal links] Fixed title of internal links not live updating when the source item gets updated.
  • [Checkbox] Fixed the checkbox of a child item getting checked because the parent is checked off. Now the child item is greyed out but it won’t get a line-through nor a check mark.
  • [Data] Fixed rare edge case on the desktop app that prevents future sync with our web server. This bug was annoying but did not cause any data loss.
  • [Drag and drop] Fixed not being able to drop an item in some very, very specific places.
  • [Copy/paste] Fixed content pasted into Dynalist gets appended with “ynalist” in older browsers (weird bug, eh?).
  • [Version history] Fixed version history not being scrollable when it’s too long.
  • [UI] Fixed keyboard shortcuts in item menu not being readable on macOS because of a font issue.
  • [Print] Fixed empty last page gets printed on computers with large screen sizes.

December update

Hi y’all, happy New Year! Below is a list of changes during the last month of 2019.

Stay tuned for more awesome updates in 2020!

New feature: multi-line code blocks

You can now insert code blocks by surrounding them in three back-ticks (```). Dynalist will detect the language of the code and highlight it properly.

The color scheme of the code blocks will adapt to the Dynalist theme you’re using.

Note: when copying a multi-line code snippet, please make sure to paste it in the note field of an item, not the item itself, because multiple lines will be interpreted as multiple items when pasted inside an item.


  • [Tags] Tag pane and tag autocomplete now merges tags that only differ by case. In other words, tags are now case insensitive in the context of tag pane and tag autocomplete.
  • [Numbered list] Improved spacing for numbered lists so that up to 999 items can be displayed nicely.


  • [iOS app] Fixed dragging cursor to select would be mistakenly recognized as a swipe.
  • [Editor] Fixed Down arrow sometimes can’t get past empty items.
  • [Item mover] Fixed page would scroll up when destination is not visible after moving an item.
  • [Copy paste] Fixed bold and italic text are not properly converted when pasted.
  • [Mind map] Fixed items with color label are not readable when zoomed into in mind map view.
  • [Date] Fixed recurring dates that occur every few weeks not updated properly when checked.
  • [Desktop app] Fixed auto hide menu bar not working.

November update

Hey Dynalisters! Here’s our November news:


  • Finally you can search and replace text in Dynalist!

    You can search and replace in the entire document, or on any level of the item hierarchy. You also have the option of matching case for more accurate searches.


  • [Formatting] Added new Ctrl/Cmd+K shortcut to add a link. It will generate the necessary Markdown for you. If present, the selected text will be used as the title of the link.
  • [Performance] Vastly improved loading performance for large documents on Chrome by avoiding reflows.
  • [Performance] Vastly improved search speed in large and deep documents.
  • [Firefox extension] Made extension activation shortcut customizable.


  • [Auto-complete] Fixed tag auto-complete not working when the “@” or “#” character follows a “-” character.
  • [Copy/paste] Fixed copying multiple links from Dynalist produces weird results.
  • [LaTeX] Fixed grey boxes on some LaTeX expressions.
  • [Node mover] After moving an item, the cursor is now put on the previous item instead of the next for consistency.
  • [Version history] Fixed bad versions generated by API preventing version history from working properly.


The following mobile changes are available on the mobile browsers and will come in the v1.3.8 app update:

  • To avoid accidental deletion and completion, now mobile swipe actions require an additional button tap to confirm.
  • Added custom toolbar option to insert “#” and “@”.
  • Added custom toolbar option to delete checked items.
  • Added custom toolbar option to export the current item.
  • Added custom toolbar option to insert a newline character.
  • [iOS 13] Fixed can’t select text.
  • [iOS 13] Fixed sharing to Dynalist doesn’t open the Dynalist app interface.
  • Fixed toolbar not showing the first time after app start.
  • [iOS] Fixed pastes adds blank lines.
  • [iOS] Fixed Cmd+Period shortcut not working with external keyboard.
  • [Android] Fixed hold to reorder files triggering file context menu.
  • Now changes are synced right away after sharing to Dynalist.
  • Now when swiping from the left edge of the screen, only the left pane will be opened; the item swipe action will not be triggered.
  • Fixed export dialogue styling on mobile.

October update: custom mobile toolbar

Hi Dynalisters! Here’s what we’ve been up to in October:


  • [Pro] Customizable mobile toolbar.

    For years, we’ve been bothered by our evergrowing toolbar. Although it’s pretty big already, people always want to access more features from the mobile app.

    It has been a hard problem for us, because of how small the screen estate is on mobile, and how different everyone’s use cases are, but today I’m happy to present our solution: a customizable toolbar!

    With the customization UI, which Pro users can access in the toolbar, you can remove, add, and reorder options. We added the “Duplicate item” spare option, and there are more to come in the future.

    Finally, people with different needs on mobile can customize their toolbar, and we don’t need to crowd everyone’s toolbar. I don’t know about you, but I feel happy :’)

(Custom toolbar will be released in 1.3.6, which is currently under review.)


  • Sort by date in the note. Sort by date used to only work on the first date presented in the item title, and now it will look at the note for dates if the title doesn’t contain any.


  • [Mobile] Fixed iOS 13 auto-capitalization issue. This caused difficulities in focusing and creating items.
  • [Navigation] Fixed clicking on tags in breadcrumb doesn’t take you there.
  • [Misc] Fixed not being able to rename a document right after creating it.
  • [Mobile] Fixed Slide to Complete/Delete stopped working after dragging the bullet.
  • [Copy/paste] Fixed not able to paste some links.
  • [UI] Fixed read-only lock icon glitch in printed documents.


  • WYSIWYG editing!

    This is the “big project” we were so secret about last month. Sorry guys! Didn’t mean to tease anyone, last month we weren’t sure whether we can pull it off, now we’re a lot more confident. The bad news is that it’s not ready yet, and it will take some more time. We’re committed to it though!

    If you want to learn more about why it takes so long for us to make up our mind, experiment with it, and to actually finish it, please scroll down to the very bottom of our post. We’ve prepared a more detailed (but slightly more technical) explanation for you.

  • Reafactoring. In addition to all the planning, experimenting, and migrating, we also needed to do refactoring before introducing WYSIWYG (and also some other long-awaited features).

WYSIWYG explanation (a.k.a. Shida’s rant)

This has been one of the most heavily requested functionality of Dynalist and for good reason. While the markdown format we use made writing formatted text easy without leaving the keyboard, it’s still quite unintuitive for many many people who aren’t familiar with it. The current editing experience has been criticized because it’s not possible to edit an item and seeing the result at the same time. This also means that if your item includes any kind of formatting, its content would “jump” when you focus your cursor on it, and that makes for a poor experience.

Unfortunately, since the beginning of Dynalist ~March 2015, this has been the way. At the time, browser technology was also an issue, which was why we opted for the simpler markdown approach. See “Why ContentEditable is Terrible” and “ContentEditable: The Good the Bad and the Ugly“.

Every single component of Dynalist functions around this idea of a “raw” markdown and a “rendered” version of it. As time moved on, more and more functionality was added to Dynalist which depended on this assumption, and more users started depending on Dynalist to organize thier work and life.

This ended up making a WYSIWYG editor an almost impossibility for Dynalist. Why? Because of the tremendous amount of work that involes the “Migration”.

Some of the difficulties includes:

  • Some people use Dynalist on the web, on the mobile app, and the desktop app. Heck some people even have multiple tabs open on multiple computers (like home and work). How does an “old” version of Dynalist, unaware of the WYSIWYG format, deals with the migrated data?- Many of Dynalist’s components has to be able to parse our data format (Automated backups to Dropbox/GoogleDrive, Google Calendar Sync, Version History, just to name a few). Those will need to understand both the old version and the new.
  • Version History should still have to read the old format, at least for the 1 year retention period.
  • What would happen to previously created “backups” of Dynalist, in OPML format for example? We’ll need a way to import them to the new system.
  • What if some users decide not to migrate to WYSIWYG, either by preference or maybe just not used to it.
  • What if some users are concerned the migration might not function correctly, and they lose data? What if it does have a bug and corrupts the data??? What kind of backups/confirmations/verifications would we need to have in place?
  • How do we make sure any migration doesn’t break Dynalist internal links? These links include the document ID and the item ID, which will be different if a migration involves creating a copy (for safety reasons).
  • Do we set a date after which we forcefully migrate everyone, or do we continue to support the old version forever?
  • And many more…

Here’s the good news. While we still haven’t finished discussions over these questions, we did commit ourselves to make a push to have it done.

During the last 2 months, we’ve been experimenting with WYSIWYG technology on the side to see if we can make it work for Dynalist. Our conclusion is that the web technology is good enough right now for us to make WYSIWYG a reality in Dynalist. We’ll still need to integrate this into Dynalist’s codebase, and figure out the migration process, but I’m glad to announce that WE’RE WORKING ON IT!

For those who prefers Markdown over WYSIWYG, I just want to reassure you that Markdown is NOT going away – we’ll figure out some way to have it supported.

It’s not clear how long this is going to take, but in our estimate it could take anywhere from 2 months to half a year, depending on how many obstacles we run into and the workload we dedicate to maintaining and improving Dynalist in other ways.

This is not to say that we’ll be 100% focused on WYSIWYG; keeping Dynalist up and running, fixing annoying bugs, and improving the product overall will still be taking a significant chunk of our time. You can still expect us to post monthly updates with bug fixes and new features. We might also post updates on our WYSIWYG progress, but no promises on that one.

September update

Hi Dynalisters! Here’s what we’ve been up to in the past month:


  • Archive document. You can find the “Archive” option in document right-click menu. After you archive a document, it will be excluded from global search results. For better performance, the document will also be unloaded from memory when it’s not being viewed.
  • Big project! We’re spending more than half of our time working on a big project that will make Dynalist better in the future. Stay tuned!


  • [Copy paste] Fixed copying URLs from the Chrome address bar will now copy the plain-text link, rather than a named link whose name is also the link (thanks, Chrome!).
  • [Mobile] Fixed tapping on Collapse or Expand icon would scroll all the way to where you were before.
  • [Misc] Brought back the “Set as inbox” option to the node context menu, for those who change their inbox locations frequently.
  • [Mobile] Fixed can’t drag to scroll mind maps on mobile.

August update

Hi Dynalisters! Here’s a rundown of our August changes:


  • Swipe gestures are coming to mobile! Swipe right for to complete item, and swipe left to delete it. Now available on mobile browsers, and coming to the mobile app in the next few days.
  • You can now reorder files via drag and drop on mobile! Simply tap and hold the file name and then drag to move it.


  • [Dynalist Pro] You can now set a different format for dates without a time, so that the time part of all-day events doesn’t show up as 00:00.
  • [Item move] Creation time is now preserved when moving items to another document with the “Move to” feature.
  • [Formatting] Markdown now gets rendered in breadcrumbs.
  • [Formatting] Markdown is now stripped when creating bookmarks, shown in the window title, and when dragging an item to create a document.
  • [API] Added endpoint for uploading files.
  • [API] Added endpoint for checking if a document has new revisions since the last check.


  • [Search] Fixed searching for “parent:” followed by a capital letter doens’t return results.

July update

Hi all! Here’s a rundown of July changes:


  • File reordering improvements. Now you can drop files into collapsed or empty folders by dropping on the right side of the file pane. Moreover, the drop location is now indicated by a line rather than moving the file around, making it easier to drop files precisely at where you want them to be.
  • We’ve updated the desktop app to use Electron 4.2.6. This fixes (1) the issue with numbering in number lists and (2) the macOS bug where only the first page gets printed.


  • Fixed sync issue of items getting out of order sometimes.
  • Fixed clicking on a bookmarked search doesn’t update the query timestamp. This caused new results to not show up as time passes when you click it again.
  • Fixed code styles are not applied when printing a document.
  • Fixed cannot open another document’s mind map view with the file menu option (“another document” being a document that’s not the currently open one).
  • Fixed Up and Down keys not working in the select inbox location setting.

June update: checklist change PSA and tons of improvements

Hi all! Here’s a rundown of Dynalist June changes:


  • Drag item under an empty or collapsed item. To drag under an item, land the cursor on the right half of the document. Landing on the left half will drop it as a sibling as the neighbor items.


  • PSA: Checklist change. Now when you make an item a checklist, all its child items will get checkboxes, but excluding itself.
    This makes the checklists look cleaner. On top of that, it helps group actionable items together and thus reinforces the hierarchical structure.
    If you want the old behavior back, please enable the “Show checkbox in front of checklist parent” option under Settings – Preferences – Advanced.
  • Now you can sort items by date. Items will be sorted by the first date in them.

  • Flat search sort. Now you can sort the flat search results the same way you sort items (by title, date, checked, edited time, and creation time).
  • Search: new search operator “parent:”, followed by the keyword you wish to find in the parent item of the matched items. For example, “apple parent:trees” will only find items that contain “apple” whose direct parent also contains “trees”.
  • Search: new search operator “has:children”. This operator will only match items that have one or more children items.
  • Inbox: now you can set your inbox location directly in settings. No need to find the item and choose the “Set as inbox” option in its menu. Click here to see the updated help center guide.
  • Export: with each format (formatted, plain text, OPML), now you can choose to copy the exported content to your clipboard or download it as a file.
  • Mind map view: notes are now shown on mind maps.
  • Now Search Everywhere and Flat Search have customizable shortcuts, in case you don’t like the defaults (Ctrl+Enter and Shift+Enter).


  • Fixed clicking on the document titles in Search Everywhere results doesn’t jump to the document.
  • Fixed absence of proper error message when trying to drop multiple files to upload.
  • Fixed Korean fonts not working on latest macOS.

Mobile app 1.3.3 update

  • iOS: fixed copy paste issue.
  • iOS: fixed not being able to upload files sometimes after iOS 12 update.
  • Fixed keyboards not showing up after first tap after app launch.
  • Fixed document being vertically scrollable when “Highlight current item” is enabled.
  • Fixed tapping on the move item success message would reload the app.
  • Added “Mind map view” option to the document menu.

May update: flat search and more

Hi All!

As usual, below is our update for May. Sorry for being a little late because of the migration.

New Features

If you often search for things that are several levels deep and find the page crowded by all the items up the chain, the new flat search is here for you.

After entering the keyboard, either click on “Flat search” or use the Shift+Enter shortcut. The result, like Search Everywhere, is read-only. Clicking on the item will lead you there.


  • Tags now auto-complete in Search Everywhere too.
  • We have migrated Dynalist to dedicated servers. Dedicated servers make Dynalist much more reliable. The new servers are also much more performant in every way. As a result, Dynalist now loads faster for most people.
  • Visual improvement for the upload manager.
  • When clicking on a search result bookmark, it will now update the current page even if you’re already on it. Before, nothing will happen and you won’t get the updated search results by clicking on the current bookmark. You had to click something else and come back in order to see the updated search results.


  • Fixed pasting multiple paragraphs doesn’t properly convert formatting into Markdown.
  • Fixed using Ctrl+Shift+V to paste without formatting will paste twice on the desktop app.
  • Fixed items showing up as checked in Move Item and Internal Link suggestions if the document root is accidentally checked off.
  • Fixed zooming out not landing you on the current item.
  • Fixed item bullet tooltip getting cropped out by the file pane.

Scheduled migration on 2019/6/1

Update: migration is smooth; it took us 90 minutes less than predicted. Dynalist is now also quite a bit faster! 🙂

Hi folks,

Because of the downtime we had last week (see the postmortem post for details), we will migrate to a new dedicated server. This will require some downtime for the migration.

The migration will take place from 8 PM on 2019/6/1 to 1 AM on 2019/6/2 EDT. We have chosen this time period in order to affect the least amount of users; we’re really sorry if you’re going to access Dynalist at that time.

During the downtime, you will not be able to load the Dynalist web app nor access our web pages. If you’re using the desktop app or the mobile app, changes will be only be saved locally. Once the new server is up and running, the unsynced changes will be synced to our server.

If you want to be able to work on your Dynalist documents during the downtime, please download our desktop app or mobile app in advance. Thanks!