(Initial writeup of this documentation by @matthias; welcome to contribute.)
Content
2. Getting started with Dynalist
4. Get notifications about new tasks
8. Adapting the Dynalist appearance
1. Introduction
After failed attempts at task management with OpenProject and Discourse wikis , we finally found Dynalist. Dynalist is a realtime collaborative editor for task lists (and any other lists). Editing happens like in Google Docs (âeveryone writes at the same time and all is saved automaticallyâ).
This topic documents how to use Dynalist when working with the Edgeryders company. In short, use it for all tasks in the companyâs projects, including the full breakdown of projects into tasks, sub-tasks etc⊠So far, tasks were assigned via Matrix chat, Discourse posts, Discourse messages, even e-mail. To not miss any task or deadline, assignees needed their own personal task management solution, and needed to manually enter received tasks there â which was a lot of administrative overhead, plus it meant private lists where progress was not visible by collaborators. So instead, from now on consider a task only âproperly assignedâ when you put it into Dynalist and told the assignee.
We are in the early stages of our task management with Dynalist. Go here to help with your feedback, ideas, and perhaps with software development for integrating it with our Matrix or Discourse software.
2. Getting started with Dynalist
As an Edgeryders collaborator who is on the team of a current Edgeryders company project, you should create a Dynalist account and start task-based collaboration there now:
-
Request access to the âEdgeryders Tasksâ document. Ask @matthias or another Edgeryders company director to grant you access to the Edgeryders Tasks document, mentioning the e-mail address you used to register your Dynalist account. (Details for admins :speech_balloon:)
-
Accept the invitation to the document. When the person you contacted shares the Edgeryders Tasks dynalist with you, you will receive an e-mail â{name} shared âEdgeryders tasksâ with youâ. Click the âAcceptâ button in that e-mail to get access to the document.
-
Open the Edgeryders Tasks document. After login to Dynalist of course. You also find it in the left-side âfile paneâ sidebar in your Dynalist account.
-
Figure out the basics.
-
Folding and unfolding. When hovering over a list item, click the â+â or â-â symbol to unfold / fold it, or press Ctrl+..
-
Zooming. To focus on one particular item (for example a task and its sub-tasks), click the ââ icon when hovering over an item. Click in the breadcrumbs bar to navigate back up the hierarchy. (There is an alternative way if you set âHamburger menu đĄ Settings ⊠đĄ Preferences đĄ Control đĄ Use bullet point to zoom inâ.)
-
Moving items in the hierarchy. Press âTabâ and âShift + Tabâ to move a list item down and up the hierarchy, respectively.
-
Moving items up and down. Grab a task with the mouse pointer at its bullet point and move it up and down the list, or inside other lists (if they are open).
-
-
Create useful bookmarks. To make your work more efficient, it helps to bookmark searches that show you only a relevant subset of tasks. To create a bookmark, do a search in Dynalist and click the ââ icon next to the search box to bookmark the result. Then rename your bookmark in the bookmark pane on the left to something short and memorable.
It is our best practice recommendation to create bookmarks for the following searched (supplying your Dynalist handle forusername
). For most users, these searches are already prepared under âEdgeryders Tasks đĄ Bookmarksâ. So you can just click the hyperlinks there to execute the search, and optionally bookmark it afterwards.#username -is:completed
: your open tasks#username -is:completed has:date
: your open tasks with a deadline (overdue or not)#username -is:completed until:today
: your open tasks with an overdue deadline#username -is:completed within:2w
: your open tasks with a deadline due in the next two weeks#username edited:24h
: your tasks created or changed in the last day#username edited:24h -is:completed
: your open tasks created or changed in the last day#username edited:7d
: your tasks created or changed in the last week#username edited:7d -is:completed
: your open tasks created or changed in the last week
3. Creating tasks
-
Write the task. Place a one-sentence description that is âwritten like a commandâ in the appropriate place of the exiting âproject đĄ task status đĄ taskâ hierarchy in the Edgeryders Tasks dynalist. The appropriate âtask statusâ section depends on the taskâs priority, and the appropriate position inside this section depends on (roughly) what time of execution you think is appropriate for the task.
-
Add more information. As needed by your task, and according to our conventions as follows. (Here,
username
always refers to edgeryders.eu usernames.)- Markdown. You can use markdown formatting to add hyperlinks, bold and italic text, images etc. to tasks. Itâs the same markup language used in the edgeryders.eu Discourse platform â see our documentation.
- Assignee. Place
#username
at the end of a task. It assigns all sub-tasks as well, except for sub-tasks where any assignee is added to explicitly. - Mentions. Write
@username
to refer to a user. Itâs like @mentions in Discourse, but without notifications (yet). Do not use this to assign tasks! - Deadline. Write
!(yyyy-mm-dd)
at the very beginning of a task, for example!(2017-12-31)
. It will show a nice date chooser when writing. By our convention, the deadline is 24:00 of that day. - Task author. Write
#by-username
in the taskâs note, or otherwise at the end of the task, to indicate who created and assigned the task. Helps if questions remain with the task, and also lets you see all tasks you created by clicking the#by-yourname
tag. Can be integrated in a sentence, such as âAdded#by-matthias
.â (use that space before the dot, since you donât want to make the dot part of the tag).
When itâs obvious who created the task (e.g. because the assignee is your only collaborator in a project), or just unimportant (e.g. because the task is trivially clear), simply omit this. - Important tasks. Write
#important
at the beginning of the task to mark the â€7 most important current tasks for each assignee. Means, do not overuse this or #important will lose its meaning. - Blocked tasks. Write
#blocked
at the beginning of a task, and explain the reason why the task canât proceed in the note section of the task (press âShift + Returnâ while in the task to get there). If possible, add a link to the task this one depends on (enter[[
to create a link to another Dynalist item). - Permanent tasks. If the task is repeating, write
#permanent
at the beginning of the task. It allows to find all, or all own, permanent tasks using a search. - Tasks you are not sure about. If it is not at all clear whether a task is a good idea, makes sense or we will have the resources to execute it, write
#perhaps
at the beginning of the task. - Shopping list tasks. In some circumstances, like our OpenVillage Houses, it is useful to see all shopping / âcity errandâ tasks at once, across projects and sub-tasks. Use the
#shopping
tag at the end of such tasks to provide that. - Non-task sub-items. Sometimes, you want to create list items below your task that are not tasks themselves, so fall out of the âtask đĄ sub-tasks đĄ sub-sub-tasksâ etc. hierarchy. For example, a list of links from previous research to inform the execution of a task. For these cases, write a title in one sub-item and format it in italics (such as âHelpful linksâ), put it as the start of the sub-item list, and put your non-task items below that.
-
Tell the assignee. By default, Dynalist creates no notifications at all about task assignments or @mentions (however see section 4). So after assigning an important task, tell the assignee via the appropriate channel: use a one-on-one Matrix chat as notifications are typically only relevant for that one user, or use a relevant Discourse topic when you created a major amount of tasks for a project and multiple people need to know. Include the direct link to the Dynalist task(s), which you can get from the URL bar after zooming in on the task, or from the context menu under âGet linkâ.
4. Get notifications about new tasks
We (more precisely, @anu) extended Dynalist to provide automatic e-mail notifications when you are assigned to a new task or mentioned in a task, using our #username
and @username
conventions as documented above.
This functionality is provided by a little software Dynalist Companion, which we installed on tasks.edgeryders.eu. It uses the Dynalist API to fetch the content of a single Dynalist document from their server every 20 minutes, detects changes, and sends notification e-mails accordingly. In our installation, it monitors the Edgeryders Tasks dynalist, and nothing else.
How to use it:
-
Sign up on the signup page:
- username: Use your edgeryders.eu username as your tasks.edgeryders.eu username. Because thatâs how we mention you in Dynalist, and how this tool detects when to notify you by e-mail.
- email: The e-mail address to receive notification e-mails. It does not have to be the same as that of your Dynalist or edgeryders.eu accout.
- password: Password can be chosen as you want.
- secret code: Take it the top of the Edgeryders Tasks dynalist. This mechanism allows signup for everyone who has access to that dynalist document, while preventing it for the general public.
-
Wait until somebody tags your username in the Edgeryders Tasks dynalist, either as
#username
for a task assignment or@username
for a mention. You can also do it yourself as a test. -
Check your e-mails. At most 20 minutes after that, youâll receive an e-mail to the address of your Dynalist Companion account, notifying you of the new task assignment or mention.
You donât need any features beyond creating an account and waiting for e-mails, and these other features are probably not functional yet anyway. There might be other issues as well, as this is early-stage software. If you find any, please let us know by creating an issue report in our issue tracker on Github.
5. Working on tasks
-
Find the next task to work on. In each project, tasks are roughly ordered in the necessary order of execution. So usually, you choose the first result from the task lists you find below. But itâs a rough order only â you can adjust what you do at what time, as long as you prioritize
#important
tasks and observe deadlines.-
Filter to see your tasks with deadlines. Use the âMy Edgeryders deadlinesâ bookmark (see above), or the equivalent search:
#username within:2w
. If you have other Dynalist task lists besides Edgeryders Tasks, press Ctrl+Enter to search globally across all documents. If nothing relevant is in that list: -
Filter to see all your tasks. Use the âMy Edgeryders tasksâ bookmark (see above), or the equivalent search:
#username
. Same note about searching globally applies. If nothing relevant is in that list either: -
Look at all tasks in your projects. Visit the list items belonging to the projects you work on, and go through their task lists top-to-bottom. You may find a task past its deadline that you can help to finish off (even though it is assigned to somebody else), or a task that is unassigned and that you can take over.
-
-
Finish the task and mark it as applicable.
-
Mark as discarded (if applicable). If you did not actually do the task but it became unnecessary or was dropped for some reason, add the
#discarded
tag to the beginning of the task to inform others looking at this in the future. -
Check it off. Both for discarded and normally completed tasks. Choose âcontext menu đĄ Check offâ, or press Ctrl+Enter, or if available check the taskâs checkbox. It all marks the task as done, showing it with a strikethrough line from then on.
-
-
Move the task to âDoneâ. Except if your task is a sub-task, move it to the end of the projectâs âDoneâ list in order to not clutter the other lists. No worry if you forget it â somebody else will do it. Donât do it for sub-tasks though â these should be kept below their parent tasks to preserve context.
6. Managing a project
We are trying to use Dynalist for agile management of whole projects as well. Proposed procedure for that:
-
Create a project. This comes in two versions:
-
Normal project. For a project that is ok to share with all current Edgeryders collaborators (not with the public though), simply create a new top-level item in the Edgeryders Tasks dynalist, named after the project. Edgeryders collaborators are all people on the project teams of active projects we manage in Dynalist.
-
Sensitive project. For a project where task content should not (or not yet) be visible to all Edgeryders collaborators, or where you want to be extra sure that nobody outside of the project team accidentally changes or deletes information in Dynalist. In this case, create a new Dynalist document in the file pane (which you find from the left-top icon), right-click the document, choose âManage sharingâŠâ and invite your project team members. Also invite all Edgeryders directors with using their Dynalist e-mail addresses (as listed in Edgeryders Tasks at the top), in order to keep all company information available to all directors.
-
-
Create sections. The items immediately below a project are meant to group tasks by status / priority or other useful criteria. Our standard sections are âDoneâ, âCurrentâ, âLaterâ. But they can vary by project, for example naming them after project phase / milestone. Or if a project consists of only independent individual work, it may make sense to name sections by team members.
-
Create a project plan with tasks. Add tasks with deadlines and assignees (where possible) to the sections for all major tasks of the project. That makes up the project plan. Perhaps introduce a tag for these, which will allow to view all the important tasks together (and hiding the rest) by clicking the tag.
-
Refine the project plan with sub-tasks. You can have tasks on as many levels as you want in Dynalist, so gradually refining tasks in sub-tasks is a natural thing to do as the project unfolds. This is part of âagileâ project management. Donât try a âfull upfront task decompositionâ, because that never works and has to be re-done many times as the project unfolds. (Itâs really the opposite of agile project management.)
7. Dynalist tips and tricks
-
View filters. In the desktop version, the top right contains an eye icon, bringing up a menu that lets you toggle different view modes for completed items and notes. In the mobile version, these options are also available, but from the top-right three dots menu as âToggle checked itemâ and âToggle notesâ. Clicking them cycles through the 3 resp. 4 view options as seen in the desktop version.
-
Search operators. See the reference for Dynalist search operators. In addition to the reference, there are some more:
- Giving the date format in hours (
1h
,24h
,-24h
). - Giving the date format in decimal fractions of hours (
1.5h
,0.01h
). Since there is no way to give the date format in minutes or seconds, decimal fractions of hours helps to find content edited very recently (âedited:0.33h
â). - Giving the date format with the
now
keyword (until:now
for all overdue items resp.since:now
for all items with deadlines in the future). - There is a bug with the âdayâ date range: specifying
edited:1d
will show everything edited 0-48 hours in the past, and specifyingedited:0d
will show everything edited 0-24 hours in the past. To keep it less unconfusing until the bug is fixed, you can useedited:24h
instead.
- Giving the date format in hours (
-
Keyboard shortcuts. Go to ââ° đĄ Shortcuts & Formattingâ (or press Ctrl+?) to find an overview of available shortcuts. In addition, the following undocumented shortcuts are available:
- Ctrl+A: select everything, but in multiple steps up the item hierarchy: (1) current itemâs characters, (2) current item, (3) add all sibling items, (4) add parent item, (5) add all sibling items, (6) add parent item, and so on.
-
Wider main content. By default, Dynalistâs content is center aligned with large margins, which formats text into long columns. This can be avoided with a change in the Dynalist settings panel under ââ° đĄ Settings ⊠đĄ Preferences đĄ Appearanceâ by un-checking the âNarrow document layoutâ option.
-
Keeping URLs from changing. Due to a bug in Dynalist, the URL for linking to a list item changes when you move it around with cut & paste. So when moving things inside the same document that are or might be linked from other websites, rather use drag & drop, the Ctrl+đ and Ctrl+đ shortcuts or âMove to âŠâ from the context menu.
-
Creating unchangeable URLs. If you want to link to a Dynalist task and really want to make sure that the link stays valid, the above tip of keeping links from changing is still a bit fragile mechanism as anyone cut & pasting the task to a different position would invalidate its previous URL. Instead, you can insert a tag that is only used once (we propose the scheme
#id-shortword
) and then link to a Dynalist search for that tag (example). You can even link to a global search for that tag (example), which will work even when the item is moved to another document, but also will present search results in a less consistent manner. -
Drag & drop into closed items. It is not possible to drag & drop an item directly to be a child of a closed parent item. Instead, the most comfortable solution seems to be to move it immediately below that closed parent item, drop it, and then to press Tab to make it into a child item. This also works with multiple selected items at once.
-
Better scrolling during drag & drop. Usually, you would scroll by moving the grabbed item against the upper or lower edge of the listâs visible area. That is slow, imprecise and annoying. Instead, (1) click-and-hold to grab an item, (2) do not move the mouse the mouse pointer by even one pixel (due to a bug âŠ), (3) use the mouse wheel, or two-finger-scrolling on the touchpad, to scroll to the target position, (4) move the mouse pointer to the exact target and drop the item. This works with one or multiple selected items at once.
-
Formulas and symbols. By putting LaTeX notation between
$$âŠ$$
, you can create inline formulas. See the formula notation reference. Formula notation is rendered to HTML using the open source KaTeX library, a product of Khan Academy. -
Avoiding accidental changes in the mobile version. When viewing Dynalist on a mobile device, the top toolbar will contain a light gray lock icon. Click it and it will turn blue, indicating you are in âview modeâ now. Click it again and it will turn gray again, indicating âedit modeâ. In view mode, none of your changes will bring up the on-screen keyboard, making Dynalist much lessof a hassle to use on a touchscreen device.
-
Useful Unicode characters. Some Unicode symbols will render emoji-style as colorful icons. This is a behavior of modern browsers, including Forefox and Chromium, and is not a feature of Dynalist per se. But it works in Dynalist, including in the document titles shown in the sidebar â which makes this a great tool to highlight or visually tag some documents in the sidebar. Which emojis render as symbols and which as black-and-white characters differs between browsers and browser versions, so it is somewhat a matter of trial and error. For Firefox, a comfortable way to pick the right symbol is to install the Awesome Emoji Picker extension.
-
More tips and tricks. You find them in the Dynalist Help.
8. Adapting the Dynalist appearance
There are ways to adapt (âimproveâ) the visual appearance of Dynalist on your own computer or mobile device. @anu has created a stylesheet that is aligned to the formatting youâre used to from this edgeryders.eu website, especially regarding hyperlink highlighting, @mentions and tag references. So we propose you install it (and, if you want, tweak it more to your liking afterwards). Hereâs the process:
-
Download and install Stylus. It is a browser extension that is available for Chrome here in the Chrome webstore, and for Firefox here in the Firefox addons repository. You can ask @anu for help if you have a hard time with the installation. If you want to do this on a mobile device, it will only work with Firefox because Chrome for Android does not support apps and extensions (says Google).
(There was also the original extension âStylishâ that performed the same functions, but was removed because it logged user web histories. âStylusâ, instead, is fully open source, uses no tracking or analytics, and has better performance.)
-
Visit the page of the Edgeryders Dynalist style in the Stylish extensionâs library. This works whether you installed Stylus or Stylish, regardless.
-
Click the âInstall Styleâ button, which will look like this
If you are trying to install the stylesheet in Firefox for Android, check ââ° đĄ Request Desktop Siteâ from the browserâs menu in order to see the right button. (A bug in the Stylus extension is causing this issue.) -
Reload your dynalist.io browser tab. This means, the tab where you have the Edgeryders Tasks document or another Dynalist document open currently. Afterwards, your dynalist should now look differently.
-
Click on the extensionâs icon (a stylized âSâ) in the top right of your browser tab, then click on the icon of the âEdgeryders Dynalistâ stylesheet, which should be visible in the first line.
-
Edit your stylesheet. An editor will open in a new tab. Make all the edits you want, and click the âSaveâ button in the left sidebar to apply them immediately. When editing, be sure to activate the parts that can highlight your own tasks and mentions (very useful!). Simply replace
username
with your Edgeryders username in the three places where it appears, in the marked section of the stylesheet:#username
#by-username
@username
-
Adapt the font size. To make Dynalist look even more like Discourse, you can configure it with the same font and font size: on dynalist.io, from the top right navigate to ââ° đĄ Settings⊠đĄ Preferences đĄ Font optionsâ and set:
- âFont size: Smallâ
- âFont: Helveticaâ
Some more details about this technique:
-
Code is on Github. See repository dynalist-edgeryders-local-css, created by @anu. Oh and, welcome to contribute there with your pull requests.
-
Tested in Chrome. The above instructions were tested with Chrome / Chromium only so far. The Stylish extensionâs user interface could look differently in Firefox, but it should work the same way.
-
Also works with other userstyles extensions. There are various browser extensions available that allow you to change how websites look on your computer (so-called âCSS user stylesheetsâ feature). All of them should work with instructions similar to those above. If you use one of those, you can get the CSS code from our Github repository.
-
You can change much more. You can make Dynalist look the way you want it to â the stylesheet we provided is only an example. However, you will need to know or learn some CSS for that. You can look into the stylesheet we provided to find out how we adapted the appearance of tags, links etc. and start your own modifications from these examples.
Other tips to improve the Dynalist appearance:
-
Make emojis and symbols show as colored icons. This does not work out-of-the-box in Dynalist, unlike in Facebook, Discourse and so on. It may be working based on your browser, though: in recent Firefox, they show up as colored icons already. In Chrome they do not, but you can install an extension to achieve this: Chromoji. Use this page to test if and how it works in your browser.
With color symbols and emojis, you can create new conventions of marking Dynalist list items in various ways that are intuitive, attention grabbing and visually appealing. You can use a site like Emojipedia to look up suitable symbols and emojis.
9. Keeping backups
Dynalist has no internal versioning, so any changes. This means also that accidental changes and deletions are final (if not immediately fixed with the âUndoâ function) and that troll action in publicly editable dynalists are final. Good reasons to make regular backups. The Dynalist Pro plan includes daily backups to Google Drive and Dropbox, but you can also roll your own system.
Here is how our own Dynalist backup system works: [TODO]
10. Design rationale
-
One Dynalist document for the companyâs projects. Having one Dynalist document per project would be nice, as it would allow to share it only with the projectâs members (minimizing the risk of accidental change or deleting of Dynalist content by others). However, there is no global search in Dynalist yet, so this setup would make it impossible to show âall tasks assigned to me across all projectsâ at once.
-
Other Dynalist documents for community projects. Since we canât have a âone document per projectâ setup (see above), we let all our 40+ collaborators access one document with all our company projects. In order to minimize the risks of deletion and accidental changes to the content, we will at least not allow even more people into the same main projects dynalist. Instead, we let them form community-managed projects when necessary. They would either not use a task management tool (the usual case in open source collaboration), do the little coordination they need right in Discourse, use an issue tracker (for software projects), or use a new Dynalist document. These are independently managed projects, so itâs not a concern for the Edgeryders company anyway.
-
Aggregate tasks by project, not by user. We could have used a âassignee đĄ task status taskâ convention for our Dynalist hierarchy instead. It would allow users to see all their tasks in one place, and ordered by proposed execution order, without needing to do a search for
#username
like now. Project affiliation would be expressed with#project-{projectname}
tags as on Discourse. However, it would break our tried-and-tested convention to aggregate organizational content by project (as practiced in the Discourse Workspaces categories). Dynalist would then be not much of a project management tool for us, just a multi-person task list.
With the âproject đĄ task status đĄ taskâ hierarchy, you can instead see the list of tasks that will lead a project from beginning to end. It also allows to assign tasks to multiple people using the#username
tags, without copy&paste redundancy.