About Ditto


Ditto is a tool for transferring Asana projects between workspaces. It is a complete rewrite of an earlier project with the unwieldy title 'Organise Asana Projects' but colloquially known as 'Kothar' by the Asana community.

The original tool was started in 2013, and was based on a script posted to GitHub by AWeg, which in turn was based on an earlier version by MhdHejazi.

My code took that script and added a web-based UI to choose projects, and later made the changes necessary to support new features launched by Asana such as Teams and Custom Fields.

Ditto, or 'Kothar 2', fixes a number of longstanding issues with the original implementation, allowing faster and more accurate project copies to be created. It's also much more pleasant to work with from the development side, which means I am more inclined to spend time updating and improving it.

The original tool became extremely popular, in no small part due to Asana support referring people looking to transfer projects between workspaces. This has resulted in great feedback from users, which has motivated me to keep the tool up to date and fix problems. This new version provides all the original features, plus several improvements. I hope all the existing users will find the switch painless and possibly even enjoyable :)

Previously the tool was supported entirely by donations. People's generosity in this regard was completely unexpected, but very welcome. Over the last six years the costs of running the service have just about broken even with donations.

With Ditto I've decided to try something different, and will be adding the option to upgrade to a Pro account. The basic features of the tool (everything in the original tool, plus fixes) will remain free, but more complex features will require the upgrade.

How does it work?

Ditto works by taking a 'snapshot' of the projects you wish to copy. This is accomplished by reading all the tasks, then downloading attachments, looking up tags and custom fields which have been used, users who have been assigned tasks, etc.

Once this snapshot is complete, it is then compared to the destination workspace. In particular, the common features such as tags and custom fields need to be lined up so that there are no duplicates or missing data. Once this step is complete the user is presented with a short report of the status of the copy, and whether there are any problems detected such as naming collisions or users present in one workspace and not the other.

Finally, when the user confirms they want to proceed, the new projects are created and tasks are copied into them. This process takes into account multi-homed tasks and is able to correctly place a single copy of the task in two or more projects, or as a subtask.

The copy operation is extremely efficient, and creates tasks in parallel as much as possible. Within a project, section or parent task, new tasks are first created in batches before being moved into the correct order, which is much quicker than creating them one by one in the correct order from the start.


The Ditto logo and branding advice were provided by my partner in crime (and in life), Elki.

Product advice and feature planning discussions with Harpal Singh have helped enormously, and his time and enthusiasm for the project have motivated me to reach a viable release version of Ditto.

Invaluable testing and advice were provided by Larry Berger at Trilogi Software Solutions.

Asana is a trademark and service mark of Asana, Inc., registered in the U.S. and in other countries.

Who are you?

I'm Mike Houston, a software developer based in York in the UK. Kothar Labs is the name I trade under for freelance work and personal projects, such as Ditto.

You can also follow me on Twitter if that's your thing.

Discuss this page

Log in to comment