As a team of 6, we created and improved tools that make it easy to build streaming isomorphic web applications. When complete, these tools will have a significant impact web performance. As far as their mentors (Justin and Matthew) know, this will be the first isomorphic web framework that supports streaming.
Terms:
-
isomorphic web applications - Also known as universal web application, isomorphic web applications mean that the same web application and run both client-side and server side. These applications provide server-side rendering (SSR) of a web application, for quick initial performance, and then load the web application into the browser for fast subsequent performance.
-
server-side rendering (SSR) - Server side rendering means taking a JavaScript web app that can run in the browser, loading it in a server environement (typically NodeJS), and using it to produce an initial HTML response. This results in faster performance because the user can immediately see the content.
Where a traditional web app experience has multiple steps before a user sees meaningful content:
A server side rendered application user sees their content immediately:
-
streaming - A streaming application is able to make use of partial data or content as it gets it. Browsers are able to process an HTML response stream. For example, if the following HTML is sent to the browser, it is able to download
style.css
while it waits on the remaining content:<html> <head> <link rel="stylesheet" type="text/css" href="style.css"> </head> <body> <h1>Start of Content</h1> <ul> <!--- PENDING CONTENT -->