Category Archives: Updates

March update

Hi folks, welcome to our March update! Please stay home as much as possible and we hope everyone stays safe during this difficult time.


  • RTL (right-to-left) layout for writing systems like Arabic, Hebrew, Persian, Urdu, and Sindhi. You can now turn on this setting in Settings – Preferences – Appearance.
    Note that RTL will not be applied to every corner of the app, since the user interface itself is still in English. We try to cover all the your content though, let me know if you find any issues!
  • One-click copy for code blocks. Simply hover a code block and click on the “Copy” button!


  • [Email to Dynalist] New option for how emails get truncated. If you see empty body text when forwarding an email (usually happens to Outlook clients), try the “Trim only when content left is not empty” option. This setting is under Settings – Dynalist Pro – Email to inbox.
  • [Shortcuts] Added search bar to the shortcut customization interface (Settings – Keymap). With more and more shortcuts available for customization, it can be hard to find a particular shortcut. Now you can stop browsing and just search for it!
  • [Shortcuts] New custom shortcut: sort items by title and date (in both ascending and descending order).
  • [Shortcuts] New custom shortcut: format selected text as code block.
  • [UX] After lock mode has been enabled in narrow layout, show an indicator in the top bar when the window gets wide, so that you know why suddenly you can’t edit things.
  • [Date picker] When using Tab to go to the time picker fields, automatically select all text for easy text input without mouse.


  • [Sync] Fixed issue where the last few typed characters are not getting synced to server (they are saved locally though) on slower networks, especially on mobile.
  • [Version history] Fixed deleted entries appear in the wrong order.
  • [Import] Fixed OPML import not working offline.
  • [UX] Fixed when selecting with Shift+Up or Shift+Down, the parent level is skipped.
  • [UX] Fixed issue where the page would unexpected scroll to the top when pasting while selecting multiple items.


  • Fixed uploading files through API not working in some cases.

February update

Hey Dynalisters! Here’s what we’ve been up to in February.

February is always short, but at least this time we’ve got 29 days instead of 28! 😉


  • [Date] You can now define date ranges! Please see this help article on how to use it.


  • [Checkbox] Checkbox can now be toggled for each item. You can still bulk add and remove checkboxes on all child items though, don’t worry. Please see this PSA post for more info and on how to migrate your existing checklists.
  • [Date] Properly handle all day events. Before, we treat dates with 00:00 am time as all day events. Now, all day events are proper date ranges that go from start of day to end of day. This makes them match search queries better, and allows you to actually specify dates with time equal to 00:00 am without assuming they are all day events.
  • [Date] The time picker now has the “Now” shortcut option that will put in the current time for you.
  • [Drag and drop] When dropping items inside a parent item with existing child items, it will now be placed at the end. Before, the newly dropped child appears at the top.
  • [Search] “within:0d” now returns all dates from the current time to end of today, whereas “within:today” returns all dates from start of today to end of today.
  • [i18n] Captcha now shows up in countries where Google is not accessible.


  • [Email to inbox] Fixed incoming emails with empty body would not get added to inbox.
  • [Copy/paste] Fixed copying and cutting with nothing selected would clear the clipboard.
  • [Copy/paste] Fixed HTML elements in comments would get their contents pasted (fixed specifically for copying from OneNote).
  • [UI] Fixed LaTeX example in “Formatting & Shortcut Help” pane not properly show up because of dynamically loading KaTeX.


  • [Share to inbox] Sharing to inbox now syncs right away. Before, there’s a chance that it will not be synced to the server.
  • [Sync] The app now resumes syncing sooner after you have been offline for a long time.
  • [Sync] Show proper sync status right away instead of waiting 3 seconds like on the web app and desktop app. (The 3 second wait is due to the consideration that we don’t want the sync status to flash all the time as you type. However, on mobile the sync status is not visible most of the time. Plus, knowing whether changes have been synced to the cloud is more important on mobile, as you may want to send the app to background at any time.)
  • [UX] Scroll out of view items to center of the screen instead of edge of screen as the keyboard pops up. This prevents the issue where iOS will try to scroll the document fast when you’re trying to select text near the edge of screen.

API (docs)

  • [New endpoint] Added new endpoint to get and set user preference (“/pref/get” and “/pref/set”, respectively).
  • [New field] Added “file_id” field to add to “/inbox/add” endpoint.

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.