Category Archives: Updates

June update

Hi Dynalisters, below is we’ve been up to in June. And happy Canada day to fellow Canadians!


  • New option to show backlinks to an item. Enable it in Settings – Preferences – Internal links – Show backlinks. When it’s enabled, you’ll be able to see number of backlinks to each item next to the bullet point, as well as all the references underneath the currently zoomed item.
After enabling the “Show backlinks” option

• New theme: Dark Gold.

New Dark Gold theme
  • New font option: Inter. Inter is a great open-source sans serif font that’s modern and minimalist.


  • [Tag] To avoid an extra space after the tag, now punctuation is no longer part of the tag if followed by a space.


  • [Search] Fixed document hide note option was not respected in Flat Search.
  • [Word count] Fixed incorrect word count for Cyrillic text.
  • [UI] Fixed export buttons not visible when opening a long item in version history.

May update

Hi Dynalisters, here’s our May update:


  • Now you have more control over how your lists look when you share a link with others! To do that, tweak the options in the sharing dialog below the link.
    Please note that these options will change the link, and is non-sticky. This is so that you can share the same document with different looks and configurations.
    If you leave everything to default, the generated link will point to a fully expanded version of the document, with default light theme, and with images not displayed inline (you need to hover your mouse over it to see the image).


  • [Bookmarks] Added custom shortcut to toggle bookmark current item or search.


  • [Search] Adjusted weight for items that are in the same document (we moved them up) and that are checked off (we moved them down).
  • [Word count] Fixed word count not updating after incoming changes from other devices.
  • [UX] Fixed weird issue where Google Chrome password manager would prompt you to fill in your email when using Node Mover.


April update

Hi folks, welcome to our April update!


  • Word count. You can now see word count in the bottom bar! It will show the number of words and items in your current zoomed in item.
    If you write your outline in your items and the actual content in the note fields, you may find our separate word counts for “in item” and “in note” helpful.
  • Per-document RTL setting. We learned that many RTL language users actually have documents in both English and the RTL language, so we added a way to override text direction on a per-document basis.


  • [Drag and drop] You can now drag an item into a document in the file pane to quickly move it to the end of the document! The landing position is consistent with the “Move item to” option under Settings – Preferences – Advanced settings, so you can also choose to move it to the start of the document.
  • [UI] Auto-detect dark theme. If you’re on the default theme setting, and your system is set to dark mode, the dark theme will be used. You can choose to always use Light or Dark theme by overriding it in Settings – Preferences – Appearance – Theme. The theme will change in real-time, so if your computer automatically changes theme at a certain time, Dynalist’s theme will change as well.
  • [Search] Improve fuzzy search accuracy in “Move to…”, internal link suggestion, and item finder. Before, a search query would match fragments of words all across an item.
  • [Stability] Improved server stability by offloading unnecessary attachment processing.
  • [File attachments] File attachments load faster as they’re now cached.


  • [Search] Fixed “has:checkbox” search query also searches in parent; it should only search the current item.
  • [UI] Fixed RTL layout breaks tag pane UI on mobile.
  • [Editor] Fixed backslash escaping characters in undesirable ways. It should only escape characters that are used in Markdown formatting.
  • [Code blocks] fixed trailing newline at end of rendered code blocks.
  • [Item finder] Fixed results being inaccessible when long results push lower results out of the screen.

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.