Help us test our new post rendering engine!

:information_source: as of Tuesday Feb 23, this code is now merged into Discourse master.

How was your January? I spent mine building a new branch of Discourse which replaces our post rendering with a hand-tuned virtual-dom implementation, to get around some pathological performance issues in Ember.

What does that mean? Well it means that viewing a topic should be faster here on meta. note: this branch is only on meta, not master! you will not deploy it to your installs unless you go out of your way to do so!

How much faster? Our latest benchmarks show:

  • 5x faster on Desktop
  • 5x faster on high end Android devices such as Nexus 6P
  • 7-8x faster on older Android devices such as the Nexus 7 mini tablet.

Of course, we don’t get all this performance for nothing. The code had to be re-written mostly from scratch (hence it taking over a month) and right now plugins affecting posts don’t work.

When you re-write so much code from scratch you are bound to introduce many regressions, so I apologize in advance for the bugs we need to hunt down. The good news is I also added over a hundred new tests in the process, so we are much better covered than we were before against regressions in this code.

How can you help:

  1. Please report bugs ASAP that you see on Meta, including steps to reproduce them. I will be fixing them as fast as I can.

  2. Don’t report plugins such as polls not working. We know and will be fixing them shortly before introducing a plugin upgrade path.

  3. Offer feedback: is it faster / slower on your device than before? Does it feel good or glitchy in any way?

Thanks in advance! You guys are always awesome at helping with this kind of thing!

Fixed

  • Keyboard linking and bookmarking was broken
  • Read icon was not fading
  • Posts were not marking as read when there were small post actions
  • Quickly hitting the back button would break
  • Repeatedly entering and leaving topic would show a JS error:
  • Loading spinner + post placeholders not showing up when scrolling down
  • Closed message not showing who closed it
  • Like button is displaying on your own posts
  • Reply as Linked topic not fading nor quoting selected text
  • Deleted posts at the end of a topic are not showing up.
  • Clicking like is a little janky
  • Badge page was broken due to missing component
  • Scrolling up is not working
  • Can’t click the avatar of who closed a post
  • Mobile formatting was messed up
  • Reply indicator supression broken
  • j/k then tab not focusing properly
  • Image lightboxes are screwy
  • Syntax highlighting not working
  • Weird scrolling position with back button in Chrome
  • Deleted small actions didn’t have the proper class
  • Improved like animation
  • Double hairline during time gaps
  • Dates were not updating automatically
  • Clear Bookmarks wasn’t update the UI
  • Deleting posts were causing placeholders to appear via message bus
  • Jumping to new posts was broken, as was highlighting the new post.
  • Couldn’t jump to small post actions (like closed)
  • Emoji were being rendered incorrectly in the post gutter
  • On mobile, some elements were overlapping each other
  • Likes will update count before the promise resolves
  • Whisper icon needed some padding
  • Anonymous users could see the flag button
  • Regression with the UX not showing up when selecting posts
  • Deleting posts now marks them as deleted rather than removing from the stream
  • Notifying a user wasn’t refreshing the UX
  • Jumping to far away posts via embedding was broken
  • Inbound / outbound css classes were missing on right gutter links
  • Who liked was not updating
  • Posts were not cloaked as you scrolled through a long topic, resulting in crashes
  • YouTube videos would stop (or start) playing on cloak
  • cloaking was too aggressive
  • cloaked miscalculated the height of posts slightly causing bouncing
44 Likes