Hey all!
I have been using Typst for close to two years now, and I love the control I get over a document. As such, whenever there is an opportunity to use Typst in a group setting, I push my friends/peers to give it a shot. Together, we have written group lab reports, memos, conference papers, and even posters within the Typst WebApp. Throughout all these experiences, I keep hitting a major paint point: disrupted live-previews.
When multiple users are simultaneously editing a project, the preview becomes unreliable. Often someone is making adjustments to styling or scripting a function that ends up generating a series of errors (missing arguments, delimiters, etc.), in turn pausing the preview. While this is less of an issue while writing text, this can become especially frustrating while adjusting styling for formatting that cannot be fully realized by looking solely at the source. This forces users to constantly switch mental contexts, imagining how their code changes will appear without immediate visual confirmation, slowing the design process and increasing the chance of errors.
Admittedly, this behavior is an inherent limitation of how computers process code and a major contributor to the software industry’s use of primarily asynchronous collaborative solutions like Git. Conversely, Typst advertises itself as document writing tool, and as such is subject to the same live-editing standards as tools like Google Docs. The live editing is there, but the second the live-preview is lost, the illusion is broken. Users looking at the preview become confused why their text editor is no longer working, only to drag their eyes to across the editor and realize the document is simply no longer compiling.
I recognize there are no easy solutions to this issue, which, by its nature, is primarily perceived as a problem when measured against the standards of traditional writing tools. One might be tempted to suggest evaluating only text when errors are present, but I recognize implementing such a feature would be largely time consuming, if even possible.
One work around is to separate your content into unique .typ
files that you then #include
in main.typ
. While users then have the option to view their sections in isolation, you lose the ability to see the content in context and with the proper formatting/styling (assuming you are only applying styling in main.typ
).
Perhaps then the only reasonable system-side solution is to change the way that we as users interact with the preview and editing windows to encourage users to pay more attention to the editing window instead of the preview, or better alerting the user when the document is no longer compiling.
I’m curious to hear if others have experienced similar frustrations with live-preview and/or other challenges during collaborative sessions. Please share your thoughts and any workarounds you’ve discovered below!