This project is archived. Its data is read-only.

HTML Streaming

This is the place to discuss how HTML Streaming can be applied at GitLab.

What is Streaming

Introduction to Streaming video

Talk notes (internal)

Presentation folder

Live Vue Worker Streaming example, (source)

GitLab Proof of Concept

Slow-motion HTML Streaming recording example

Screen_Recording_2023-01-26_at_16.37.41

Talk References:

  • https://httparchive.org/reports/state-of-javascript
  • https://developers.google.com/web/updates/2019/02/rendering-on-the-web?hl=en
  • https://tech.ebayinc.com/engineering/async-fragments-rediscovering-progressive-html-rendering-with-marko/
  • https://mxstbr.com/thoughts/streaming-ssr/
  • https://blog.codinghorror.com/the-lost-art-of-progressive-html-rendering/
  • https://jakearchibald.com/2016/fun-hacks-faster-content/
  • https://www.builder.io/blog/from-static-to-interactive-why-resumability-is-the-best-alternative-to-hydration
  • https://vuejs.org/api/ssr.html#rendertosimplestream

Potential candidates for Streaming

  • Merge requests
    • Overview
    • Changes
  • File (blob) view
  • Blame view

Everyone's welcome to suggest their own candidates in the discussion. 😀

Implementation

To be discussed...

Current blockers

  • DOM-reliant libraries
    • dompurify
  • Sharing window.gon: user settings, translations, etc...

SSR approach

  • Requires a server, discussed in gitlab-org/gitlab#215365

WebWorkers approach

  • Vue 3.2 requirement
Edited Jan 30, 2023 by Stanislav Lashmanov
Assignee Loading
Time tracking Loading