TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Treating performance as a product: The technical story of Asana’s rewrite

135 pointsby pspeter3almost 8 years ago

24 comments

spolloalmost 8 years ago
I can't believe they are patting themselves on the back for performance. I'm running a brand new macbook pro, latest chrome, fiber internet AND asana fully cached. It still is a 6 second initial page load and then every single UI interaction is slow, slow, slow. My entire companies biggest pain point with asana is how insanely slow it is for a simple product.
评论 #15126081 未加载
评论 #15126101 未加载
评论 #15126116 未加载
评论 #15129316 未加载
评论 #15127305 未加载
评论 #15137300 未加载
评论 #15130525 未加载
twobyfouralmost 8 years ago
Is this already in production? Because until a few months ago, Asana's network performance was crap. Now it's just mildly bad, but the UI has become almost unusably slow.
评论 #15125901 未加载
pier25almost 8 years ago
The problem we face at my company is that it&#x27;s very difficult to get people to use these kind of tools.<p>My team is remote so we use slack and other apps all the time, but getting customer service or other depts to use a simple chat is difficult. Implementing something like Asana or Basecamp is impossible.<p>How did you implement those tools in your company?
评论 #15130118 未加载
评论 #15132395 未加载
评论 #15129497 未加载
dqvalmost 8 years ago
If anyone from Asana is out there, the fonts on your site look &#x2F;very&#x2F; weird on my machine - Debian 9.1, Chrome 60.0.3112.78. <a href="https:&#x2F;&#x2F;my.mixtape.moe&#x2F;qpziak.png" rel="nofollow">https:&#x2F;&#x2F;my.mixtape.moe&#x2F;qpziak.png</a>
评论 #15127637 未加载
评论 #15127849 未加载
osteelealmost 8 years ago
Here&#x27;s a video of the Laszlo Webtop Calendar <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=97KLyHzpkro" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=97KLyHzpkro</a>, from 2008. This was written in a hybrid of XML and our own dialect of JavaScript, that compiled either to Flash byte code, or to a subset of JavaScript compatible with major browsers. (JavaScript in 2008 was nowhere near as healthy as it is now.)<p>The reason I mention this, apart from the similar time frame and similar-ish functionality, is “They named the framework Luna (after Dustin’s cat).” The Laszlo company and framework were named after our Peter&#x27;s cat. (The cat, in turn, was named after László Moholy-Nagy.)
评论 #15127406 未加载
pspeter3almost 8 years ago
Hi, I&#x27;m Phips and I&#x27;m one of the engineers behind Luna2. Please let me know if you have any questions!
评论 #15126347 未加载
rkwasnyalmost 8 years ago
After using Asana&#x2F;JIRA&#x2F;Service now for some time I switched to simple issue tracking in self-hosted Gitea.<p>No javascript framework to load, page loads are measured in milliseconds. It maybe has 10% of functionality but it &quot;just works&quot;(tm)
romanovtexasalmost 8 years ago
It&#x27;s kinda surprising how frequently rewrites occur across tech companies; considering rewrites can essentially stop the development of any new features in the product. I was recently part of one such huge rewrite, albeit it was truly necessary since we were porting from a 1970s COBOL based Mainframe to a Java based Middleware solution. This rewrite itself caused blocked any other development projects for the last 6 months and sucked in a lot of resources.<p>Isn&#x27;t sticking to a stable tech stack that helps run production smoothly and let the developers have their peace of mind better? Rewrites might be essential, but only in the cases where your technology is seriously ancient.<p>Is this only due to the crazy front-end and JS frameworks world or am I missing something else here?
评论 #15131690 未加载
BIackSwanalmost 8 years ago
Question out of curiosity. Since Asana has started using react - are you using route based chunking&#x2F;code splitting[1] to significantly speed up page load times?<p>We have started using it for some pages (with some complex UI flows) and it has sped up the page load times by an order of magnitude. Makes the first interaction super snappy while the other stuff loads in the background.<p>[1] - <a href="https:&#x2F;&#x2F;medium.com&#x2F;@addyosmani&#x2F;progressive-web-apps-with-react-js-part-2-page-load-performance-33b932d97cf2" rel="nofollow">https:&#x2F;&#x2F;medium.com&#x2F;@addyosmani&#x2F;progressive-web-apps-with-rea...</a>
评论 #15126864 未加载
otterproalmost 8 years ago
The slow loading speed was definitely the primary reason that I stopped using Asana. I just tried Asana today on Firefox, and it felt faster than before, or at least the perception of it was faster.<p>I hope that they work to optimize the iOS app as well. I know the op is about web and not iOS app, but iOS app is just painfully slow, and takes awhile to load a simple page with 1 single task! My other gripe is that it won&#x27;t work in off-line mode, when I don&#x27;t have internet access. Anyway, being slow really ruins the user experience.
评论 #15127675 未加载
dirtyauraalmost 8 years ago
A great writeup! A lot of startups face the situation that you need to do significant architectural changes to pay the technical debt and re-enable development speed, or improve the performance and scalability of the service. At the same time, stopping feature development altogether for months is impossible.<p>Incremental rewrite is often the only way to go. I liked how you approached the rewrite with adapters. I&#x27;d be very interested if somebody would collect these kind of &quot;rewrite war stories&quot; to a book form and maybe synthesize common patterns from the stories.
评论 #15129919 未加载
评论 #15126176 未加载
pcxalmost 8 years ago
I wish Asana had better support for Sprint cycles. Otherwise, I just love using it. The only task management tool I&#x27;ve actually ever liked. I&#x27;ve tried several popular ones - primarily Trello, JIRA, Basecamp &amp; GitHub Issues. Kudos for the rewrite, hope you folks continue improving it!
评论 #15126192 未加载
评论 #15126316 未加载
jwilliamsalmost 8 years ago
&quot;The final principle was simple over easy.&quot;<p>This is a great principle and really good to see in this article.<p>Usually when I&#x27;ve seen rewrites it <i>goes the other way</i>. There is some simplistic component that gets rewritten in some new language&#x2F;framework&#x2F;etc and end up being much more complicated.
评论 #15126852 未加载
评论 #15129528 未加载
aaronbrethorstalmost 8 years ago
&quot;[B]uilding a native application for each platform was untenable for our size at the time. As a result, we...developed an in house versions (sic) of Firebase, RxJS, and React.&quot;<p>Something tells me that shipping a macOS app, a Windows app, and a decent web client would&#x27;ve been easier than what they did. So what&#x27;s the real story? Did the scope of the project keep getting bigger, and they stayed the course due to loss aversion?
评论 #15127664 未加载
mystrugglealmost 8 years ago
Something is not right about asana. This article is so filled with buzzwords and meaningless &quot;values&quot;, &quot;principles&quot; that I want to puke. Even in this industry, I&#x27;ve never heard anyone talk like this, except when I attended an asana hiring info session a few months ago.
评论 #15129515 未加载
andralmost 8 years ago
I did a quick Inspect in Chrome and noticed that instead of doing request&#x2F;response, the server is sending a list of everything that has changed since the last request (or at least it appears so). Do you care to talk more about your client&#x2F;server API design?
评论 #15129972 未加载
sitkackalmost 8 years ago
Bad performance is a misfeature. Performance as a product would have to either put you below the limits of perception -or- 10x faster than the closest competition.
deathtrader666almost 8 years ago
Just wondering what are your team&#x27;s thoughts on Elm?
评论 #15126055 未加载
rmrfrmrfalmost 8 years ago
Looks like a paragraph is repeated in the article.
valuearbalmost 8 years ago
Is the UI still terrible? That&#x27;s why I dropped it.
latchkeyalmost 8 years ago
Just use Pivotal Tracker and be done with it.
hitgeekalmost 8 years ago
i haven&#x27;t used asana in a couple years.<p>I just signed up for a new account, and it seemed pretty snappy. I might give it a try again.
grwthckrmstralmost 8 years ago
I like Google keep. It&#x27;s fast :P
hasenjalmost 8 years ago
&gt; When we started development in 2009, few rich web applications existed. And with so few examples, there were no best practices to follow.<p>I think what you need is not best practices. You need principles.<p>If you take performance as a matter of principle from the get go, you will never ever ship a slow product.<p>Most startups nowadays seem to value design more than performance. They even value the design of their landing page more than they value the design of the actual product.<p>Another thing they seem to value is _perceived_ ease of development, at the <i>expense</i> of performance.<p>I say perceived because, in my experience, what you may perceive initially as a productivity boost ends up becoming a productivity burden as the code size grows.