WorkFlowy Speedup: 4x Faster Loading

Image courtesy of Nathan E Photography
Image courtesy of Nathan E Photography

On Monday, a user with approximately 200K items in his WorkFlowy account emailed us a complaint. He said the load time for his account was killing him. We looked into seeing if we could speed things up, and found some major improvements. WorkFlowy now loads around 4 times more quickly . If you’re on a good internet connection and have a large account, you should now have a zippier experience.

17 Comments

  1. Thanks so much! I’m a pathology resident and I have a few books loaded up so I can streamline and annotate them. You guys are so awesome!

  2. Great news !
    Do you have any technical details as to what were those improvements you did ?
    Thanks !

  3. Thanks! Is there any chance of caching the contents like the Chrome desktop app does? Shouldn’t this be possible using HTML5 localStorage?

  4. Yes!!! I’d recently been getting annoyed with the load time (I too have a lot of stuff in WorkFlowy, and am adding more all the time) and I’m very happy with the improvement. Thanks!!!

  5. It’s definitely faster, but it’s still pretty slow. One idea I had for improving it further is that if I’m not loading workflowy.com but I’m loading some specific node in my tree, have it only requires the children of that node in order for the page to load. Then as soon as the page is rendering, request the rest of the data in the background. I can imagine this would be a bit hard to implement because you’d now need a loading thing for if a user tries to go up a level while that hasn’t loaded, but I think it would be worth it.

    1. Yeah, we definitely still need to improve load performance significantly for large account. There are a lot of potential approaches, including just creating an offline desktop app that’s good enough to become our standard application.

    2. Hmm, yeah.

      Although I disprefer that solution because my *other* big feature request (okay, aside from deadlines :P) is real-time collaboration.

      Have you guys seen ShareJS? Not directly useful if you don’t use Node, but still worth checking out Operational Transforms. http://sharejs.org/

    3. I would LOVE, and pay for, a native Windows desktop app, that works completely offline, with optional sync. I would like it to be able to use a local file that I can sync either via workflowy itself or DIY like dropbox.

      I like being able to access from mobile, sure, but 95% of my use is desktop and I want SPEED. 🙂

    4. Ah, I see that Malcolm has already mentioned Operational Transforms before I tweeted it to you earlier. I wonder if he saw the same HackerNews posts I did.

      I’m hoping to expand on that idea a bit.

      If you combine the tech/theory behind share.js with a local storage mechanism, you should be able to do some amazing things. – its basically the syncing mechanism behind google wave / realtime google docs editing but applied to arbitrary json objects. I imagine it would work well on reconciling offline edits with servers and also allow for real-time collaboration. There is a post about this exact thing on the google doc’s blog: http://googledocs.blogspot.com/2010/09/whats-different-about-new-google-docs_23.html

      You mention a proper desktop app… Why not leverage the advancements in Google chrome/android and implement some of the features they’ve shown in this years Chrome Dev Summit? https://developer.chrome.com/devsummit/sessions/making-web-apps-appy/ (part of a bigger set of talks: http://youtu.be/0b9ZE1V4uRk?t=56m ) This will let your webpage act more like a native app. Service Workers are looking like they’ll fix the offline bits in an effective way and should be comparable to how you managed your chrome app’s offline mode already…

      Once you have that kind of integration with android’s chrome, a proper desktop app transition would be less painful. I’m thinking the whole shebang should be able to integrate into a node-webkit package. Based on what greenheart games has done with steam-integration (opensource btw), you should be able to extend the standalone engine to integrate with other parts of the OS. Long term, this would allow for some interesting hooks into stuff like window’s 8’s charms or reaching out to outlook through the same mechanism that OneNote uses.

      Granted, this is a rather large “you could”, but I think there are some reasonable milestones and the process would be easily iterate-able while working toward these goals.

    5. I agree w Nicholas Perry, there is no need to build a desktop app, just improve the web version. I would love to also see some features seen in Evernote, like file attachments or embedded images, etc

  6. Will marking a node as complete rather than deleting it, slow your experience of using workflowy over time, I.e. When you have 5000 completed nodes?

    1. Is there some way to select all completed items or show only completed items? Then you could delete them or archive them somewhere (like a text document) before deleting them.

    2. Coincidentally, I noticed today that there is a way to show completed items when my weekly statistics popped up. It included a link to the items I completed in the past 7 days.

      In the search field, type in completed:7d and workflowy will show the items completed in the last 7 days. It shows all higher-level items as well, completed or not, but it could be used to find completed items you might want to delete. It also supports hours, such as completed:2h for the past 2 hours.

      It can also be combined with a NOT (minus sign) operator:
      -completed:2h completed:5d
      This would show items completed in the past 5 days minus the ones completed in the past 2 hours.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: