we'll be rolling out a fairly substantial change to how we render posts soon. we've tested it extensively and, while we don't anticipate any issues arising from this, sometimes Shit Happens. we'll be monitoring the deploy and are prepared to rollback if anything occurs.
technical details under the break for those interested
EDIT: all clear! thanks for using cohost!
hi everyone! jae's writing this, i'm gonna move to first person now.
i finally managed to catch one of my white whales of performance: Post Render Caching.
post rendering has been known by us to be one of the slowest parts of the website for a while. things like sanitization and postprocessing (custom emoji, mentions, etc) require iterating through a processed Abstract Syntax Tree (AST).
currently, we do this synchronously, which means it's a blocking operation and has the potential to cause performance issues for unrelated parts of the website. we have to do it synchronously because our previous attempts at asynchronous post rendering were miserable failures.
this change allows us to keep the final render step synchronous, to avoid any async render issues in react, but moves everything that generates the AST up to that point to an asynchronous process, which we can cache the output of. THIS MEANS we can cache the slow part, which was adjusted to be non-blocking, and do the faster part (turning the AST into react nodes) as needed.
that's it i think??? i'll answer questions in the comments too if you're curious.
