Three-dots CMS, the first Content Management System based on Asana

A few weeks, I shared an idea I had on this very same community: Turn any Asana project into a webpage: interesting?
The feedbacks have been great, and after some coding sessions, a first version is available!

three-dots CMS is the first Content Management System based on Asana. The idea is simple: for a given Asana project, we generate a webpage showing the tasks, descriptions, tags… with a nice layout and always up-to-date. The goal: never ask your IT team to update your website again! You only need to work in Asana as usual, and the website is always up-to-date. It works great for roadmaps, FAQ, documentation, events list…

For example, our Release Notes page is generated automatically ( Our Roadmap is also always up-to-date with our Asana project (

I recently introduced a Premium account, don’t hesitate to ask for one if you want to try the service!

Thanks again to everyone for the feedbacks, I am still listening to any ideas you might have!


It look like your Feature Requests project is missing entry that I’d requested earlier, specifically, I’d like to have Asana task URL to be rendered in three-dots the same as in Asana, with title representing title of the task referenced. I do understand that it is very complex, and can make content outdated if not tracking all referenced pages, but still, please record this entry in requests, please. At the moment all such links are displayed as (URL is shortened just to domain name.)

Thanks for getting back to me on this. Actually it is on the Roadmap under “Translate internal Asana links into links between pages”

Ah! I considered different feature under the same title :wink:

Then there is yet another feature possible in combination with “Option to convert a bunch of projects into a complete site”, i.e. link to a project that is among “bunch” would convert to relative link within “site”. Link to a specific task/section would link to a relative anchor in the page, possibly to anchor in different page if reference the task in other project among the “bunch”.

BTW, internal links in the page should be “implmentable” without major efforts, i.e. if task is among published, use its title and translate URL into within-page anchor navigating URL.

1 Like

Hi @Bastien_Siebman,
I like the idea and how you’ve put Asana to use. kudos!

One thing to note here - Asana enforces a rate limit on API requests (~100 per minute); You wrote that the webpage is always update, which makes me wonder if you’re querying the Asana API on every page load? or caching the data internally/generating an HTML file to prevent refetching the info every time.


1 Like

Asana does have Events/Webhook mechanism for notifications about changes in Asana, but even without that, page is refreshed periodically, definitely not on every page load, thus updates are not immediate, but you should not wait too long to have the page updated after you make changes in Asana. Additionally there is dedicated button at three-dots, that make impatient user more happy/confident, that she was able to update the page herself.

1 Like

P.S - if you’re not already using webhooks, but considering it, I published an open-source webhooks server for Asana on github a few months back.
It’s written in Node + Angular and should be really easy to modify.


Thanks @Eyal_Ronel!

@Myroslav_Opyr is right. When you select a project, I register a webhook for it and do a first generation of a static HTML page. Every time something happens on the project or its tasks, the webhook is called and the page is re-generated. I added a button to force the generation. The admin page on gives you the last update date. The same info is written inside the source of the page, as an HTML comment.

The HTML page is super fast to load (I am also using Cloud Flare as a cache service, allowing for faster delivery).

Webhooks may take a few seconds to fire, and the page generation can also take a few seconds.

Using the API every-time would be impossible for performance reasons, some projects take a few seconds to load entirely.


Here is a quick heads-up about the project:

  • I can confirm that synchronisation sometimes is not triggered on pages, I need to work on this.
  • You can now protect the generated page with a password! Keep in mind that I don’t work for the NSA or the CIA though, so keep your sensitive data away from three-dots or Asana!
  • You can now exclude a task or subtask from the generated page by starting its name with a slash. You can also hide a task notes with the same trick.

If you have any feature suggestion, feel free to contact me!

1 Like


Quick news about the project:

  • I believe the unstable synchronisation is gone. I worked on the management of Rate-Limit errors from the Asana API and that might have done the trick!
  • Board layouts are now supported in three-dots with a very basic design by default, just like the list, but fully customizable.
  • For an undefined period of time, any three-dots user is granted a Premium access! That will give you the opportunity to look at the Premium features more closely.

Have a great day.