The Next Wave of Web Frameworks is BYOJS

Rate this content
Bookmark

Web application development has had many shifts over the lifetime of the web. From server-side applications with a sprinkle of JavaScript to Single Page Applications built entirely with JavaScript. Now we’re heading back to where many new web frameworks build for static first, with JavaScript added as needed. This talk covers building web applications with JavaScript through the lens of Astro, a static site generator where the choice of JavaScript framework is uniquely yours.

This talk has been presented at JSNation 2022, check out the latest edition of this JavaScript Conference.

FAQ

BYOJS stands for 'Bring Your Own JavaScript'. It refers to the next wave of web frameworks that allow developers to use their preferred JavaScript frameworks and integrate them into their web applications, enhancing flexibility and customization.

The Astro project is a static site generator that supports server-side rendering (SSR) and ships with zero JavaScript by default. It uses the islands architecture and partial hydration to enhance performance and user experience by loading JavaScript only when necessary.

Server-side rendering (SSR) benefits web applications by rendering page content on the server before it is sent to the client. This approach improves load times, enhances SEO by making content more accessible to search engines, and provides a faster initial page load, improving user experience.

Modern JavaScript frameworks often feature component-based architectures, support for server-side rendering, and integration with various build tools and APIs. They focus on improving performance, enhancing user experience, and providing robust options for state management and routing.

The islands architecture in web development refers to a method where different parts of a webpage (islands) are independently loaded and rendered. This approach allows for selective hydration, where only necessary JavaScript is loaded, improving page performance and interactivity.

Partial hydration is a technique used in web development where only critical parts of the webpage are hydrated with JavaScript initially. Additional interactivity is added as needed, which reduces the amount of JavaScript loaded upfront, enhancing page load times and overall performance.

The Jamstack architecture enhances web application development by decoupling the frontend from backend services using pre-rendered static pages and JavaScript for dynamic elements. This leads to faster load times, improved security, and easier scalability.

Brandon Roberts
Brandon Roberts
23 min
20 Jun, 2022

Comments

Sign in or register to post your comment.

Video Summary and Transcription

The next wave of web frameworks is BYOJS, covering the history and evolution of building web applications. The evolution of web frameworks and build systems includes popular choices like React, Angular, and Vue, as well as advanced build systems like Webpack and Rollup. The rise of performance measurement tools and the adoption of the Jamstack have led to improved web performance. The Jamstack architecture focuses on pre-rendering pages, decoupling APIs and services, and enhancing pages with JavaScript. Astro, a static site generator with SSR support, promotes the islands architecture and partial hydration.

1. Introduction to Web Frameworks

Short description:

The next wave of web frameworks is BYOJS. I'll cover the history and evolution of building web applications and the different stacks used. Then I'll talk about traditional server-side applications like PHP, classic ASP, .NET MVC, and Express. After that, I'll discuss client-side applications and the introduction of bundlers like Gulp, Browserify, and Require.js.

The next wave of web frameworks is BYOJS. Hi, my name is Brandon Roberts. You can follow me on Twitter at Brandon T Roberts, where I tweet out gifs, I talk about sports and I block people sometimes, so you can follow me there. I am a maintainer on the ngRx project which is a set of reactive libraries for Angular applications. I'm also a GDE, which just means I've been around the Angular community for a while and been able to contribute some cool things there. I'm also a developer experience engineer at App-Rite.

So for the agenda for this talk, I want to cover the history and evolution of building web applications and the different stacks that I've used over the years. I'll talk about the next wave of web frameworks and the sort of the meaning of BYOJS. And I'll talk about what that means through the lens of the Astro project.

So first I'll talk about the history and evolution of building web applications. As I mentioned before, this is from my point of view, which has been a number of years. Your mileage may vary here. So let's just get that out the way up front. But I think we'll have some similarities along the way. So let's get into some history for building web applications. We have traditional server-side applications, which we'll talk about, client-side applications, and more modern server-side applications before we get into the next wave.

So for traditional server-side applications, let's talk about some of those. There's PHP, which is still a favorite amongst developers. There's also another old-school pick is classic ASP, which is similar to PHP, but using more of a .NET-like syntax. There's also .NET MVC, which is another framework from Microsoft used to build web applications with a more clearly defined separation between model, view, and controller. Express also came along as a way to serve an HTML application using various templating languages. Of course, there are many others that came along the way. These server-side frameworks did all the processing on the server and just returned the HTML. If there was any JavaScript functionality on the pages that we were building, it was more or less sprinkled in as inline scripts or lightly bundled JavaScript files concatenated together. This was usually done using the well-known jQuery library back in the day.

Now we get into client-side applications. When more JavaScript was being introduced into these applications, we started seeing more bundlers get involved in the process to optimize the process of shipping JavaScript to the users. Open source tools such as Gulp, which is a toolkit that uses a streaming build system. There's also Browserify, which is one of the early tools that allowed developers to use Node.js style modules and compile and use them in the browser. Require.js, which is a module and file loader system that also uses Node.js style imports.

2. Evolution of Web Frameworks and Build Systems

Short description:

And system.js, backbone, Ember, AngularJS, Angular, React, and Vue are some of the web frameworks that have emerged. In the React space, Next.js and Remix are popular choices. Angular Universal and Nuxt are used for server-side rendering in the Angular and Vue spaces. Webpack and Rollup are advanced build systems, while Lerna and NX are tools for monorepo development. The shift towards shipping JavaScript applications has led to the rise of performance measurement tools and the adoption of the jam stack. Tools like web.dev provide metrics for measuring page load speed.

And system.js, where it used standard ES modules that could be loaded in the browser. And with the evolution of web applications being built for clientside applications, more web frameworks came along the way. backbone, which was an early MVC framework for building client side applications. There's Ember, which heavily leans on conventions and integrations for building web apps. There was AngularJS that integrated in with existing HTML with things such as directives. Angular, its successor, which targeted more general applications. React, introduced in 2013, which really changed the way we thought about building UIs in JavaScript. And there's Vue that has come along and paved its own way as a tool to build web applications. And of course there are many other web frameworks that have come along in this space.

So for modern server side applications that were built in JavaScript, in the React space we have ones like Next.js, which is the largest React framework to date for building applications. And newcomers to this space such as Remix, which kind of combines some of the things from client and server together in a more cohesive way. In the Angular space we have things such as Universal. Angular Universal to render client side apps on the server. And for Vue we have tools like Nuxt and there are other ones in this space also.

Modern JavaScript applications also brought the need for more advanced build systems. And so some of these systems just made it easier to bundle JavaScript to ship to the client. And this also made shipping clients full client side applications a lot easier. Webpack probably being the most notable to date, which is with its rich set of plugins and customizability as roll up, which is a module bundle for JavaScript that compiles small pieces of code into something into more larger bundles such as a library or an application. Is also V that has come and taken the web landscape a storm with its speed and extensibility through plugins, and it also builds on top of roll up and is built in a different language, but it's used for building JavaScript applications. If you're in the monorepo space, there's tools like Lerna, which kind of orchestrates build tools, and it's been around for a number of years and tools like in X that have modernized open source monorepo development. And there are others in this space also that have come along as build system or tools to help developers ship web applications. Because at the end of the day, we just want to get back to shipping code and shipping applications to users and providing good user experiences. So next up, I'll talk about the next wave of web frameworks and ways to ship JavaScript, ship applications with JavaScript that have come along. So we can start with the why we have the shift in traditional server side applications to shipping only or the majority of applications using JavaScript and getting some of the new tools that are out there. One thing that really came along was the idea of our tools that let you measure performance for web applications and give you more insight into that process. There's also the rise of the jam stack, which is looking into what the definition of that is and how the different tools in that space. In what we call, what I'm calling at least for this talk, the static first or HTML first web. We have tools that measure how quickly and how long it takes for a page to load. There are also lots of well known tools out there. I'm using web.dev as a reference for the metrics that we use to measure this.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Building Better Websites with Remix
React Summit Remote Edition 2021React Summit Remote Edition 2021
33 min
Building Better Websites with Remix
Top Content
Remix is a web framework built on React Router that focuses on web fundamentals, accessibility, performance, and flexibility. It delivers real HTML and SEO benefits, and allows for automatic updating of meta tags and styles. It provides features like login functionality, session management, and error handling. Remix is a server-rendered framework that can enhance sites with JavaScript but doesn't require it for basic functionality. It aims to create quality HTML-driven documents and is flexible for use with different web technologies and stacks.
Speeding Up Your React App With Less JavaScript
React Summit 2023React Summit 2023
32 min
Speeding Up Your React App With Less JavaScript
Top Content
Watch video: Speeding Up Your React App With Less JavaScript
Mishko, the creator of Angular and AngularJS, discusses the challenges of website performance and JavaScript hydration. He explains the differences between client-side and server-side rendering and introduces Quik as a solution for efficient component hydration. Mishko demonstrates examples of state management and intercommunication using Quik. He highlights the performance benefits of using Quik with React and emphasizes the importance of reducing JavaScript size for better performance. Finally, he mentions the use of QUIC in both MPA and SPA applications for improved startup performance.
Full Stack Documentation
JSNation 2022JSNation 2022
28 min
Full Stack Documentation
Top Content
The Talk discusses the shift to full-stack frameworks and the challenges of full-stack documentation. It highlights the power of interactive tutorials and the importance of user testing in software development. The Talk also introduces learn.svelte.dev, a platform for learning full-stack tools, and discusses the roadmap for SvelteKit and its documentation.
SolidJS: Why All the Suspense?
JSNation 2023JSNation 2023
28 min
SolidJS: Why All the Suspense?
Top Content
Suspense is a mechanism for orchestrating asynchronous state changes in JavaScript frameworks. It ensures async consistency in UIs and helps avoid trust erosion and inconsistencies. Suspense boundaries are used to hoist data fetching and create consistency zones based on the user interface. They can handle loading states of multiple resources and control state loading in applications. Suspense can be used for transitions, providing a smoother user experience and allowing prioritization of important content.
From GraphQL Zero to GraphQL Hero with RedwoodJS
GraphQL Galaxy 2021GraphQL Galaxy 2021
32 min
From GraphQL Zero to GraphQL Hero with RedwoodJS
Top Content
Tom Pressenwurter introduces Redwood.js, a full stack app framework for building GraphQL APIs easily and maintainably. He demonstrates a Redwood.js application with a React-based front end and a Node.js API. Redwood.js offers a simplified folder structure and schema for organizing the application. It provides easy data manipulation and CRUD operations through GraphQL functions. Redwood.js allows for easy implementation of new queries and directives, including authentication and limiting access to data. It is a stable and production-ready framework that integrates well with other front-end technologies.
RedwoodJS: The Full-Stack React App Framework of Your Dreams
React Summit Remote Edition 2021React Summit Remote Edition 2021
43 min
RedwoodJS: The Full-Stack React App Framework of Your Dreams
Top Content
Redwood JS is a full stack React app framework that simplifies development and testing. It uses a directory structure to organize code and provides easy data fetching with cells. Redwood eliminates boilerplate and integrates Jest and Storybook. It supports pre-rendering and provides solutions for authentication and deployment. Redwood is a cross-client framework that allows for building web and mobile applications without duplicating work.

Workshops on related topic

Building WebApps That Light Up the Internet with QwikCity
JSNation 2023JSNation 2023
170 min
Building WebApps That Light Up the Internet with QwikCity
Featured WorkshopFree
Miško Hevery
Miško Hevery
Building instant-on web applications at scale have been elusive. Real-world sites need tracking, analytics, and complex user interfaces and interactions. We always start with the best intentions but end up with a less-than-ideal site.
QwikCity is a new meta-framework that allows you to build large-scale applications with constant startup-up performance. We will look at how to build a QwikCity application and what makes it unique. The workshop will show you how to set up a QwikCitp project. How routing works with layout. The demo application will fetch data and present it to the user in an editable form. And finally, how one can use authentication. All of the basic parts for any large-scale applications.
Along the way, we will also look at what makes Qwik unique, and how resumability enables constant startup performance no matter the application complexity.
Back to the Roots With Remix
React Summit 2023React Summit 2023
106 min
Back to the Roots With Remix
Featured Workshop
Alex Korzhikov
Pavlik Kiselev
2 authors
The modern web would be different without rich client-side applications supported by powerful frameworks: React, Angular, Vue, Lit, and many others. These frameworks rely on client-side JavaScript, which is their core. However, there are other approaches to rendering. One of them (quite old, by the way) is server-side rendering entirely without JavaScript. Let's find out if this is a good idea and how Remix can help us with it?
Prerequisites- Good understanding of JavaScript or TypeScript- It would help to have experience with React, Redux, Node.js and writing FrontEnd and BackEnd applications- Preinstall Node.js, npm- We prefer to use VSCode, but also cloud IDEs such as codesandbox (other IDEs are also ok)
Crash course into Astro and Storyblok
React Day Berlin 2023React Day Berlin 2023
119 min
Crash course into Astro and Storyblok
WorkshopFree
Arisa Fukuzaki
Arisa Fukuzaki
Headless architecture has gained immense popularity in recent years for its ability to decouple the frontend and backend, empowering developers to create engaging, interactive, and scalable web applications. 
In this workshop, we will quickly take a dive into the Headless World and Architecture. 
Additionally, we will build a blog website super quickly using Storyblok, a headless CMS that offers a real-time preview feature with nestable component approach, and Astro (3.0) which is already creating a buzz with the new app directory. 
- Master headless CMS fundamentals- Master an Astro & headless CMS approach- Use Atomic design in your Astro & Storyblok application- Creating pages, adding content and understanding how the dynamic routing works with headless
Web Accessibility in JavaScript Apps
React Summit 2022React Summit 2022
161 min
Web Accessibility in JavaScript Apps
Workshop
Sandrina Pereira
Sandrina Pereira
Often we see JavaScript damaging the accessibility of a website. In this workshop, you’ll learn how to avoid common mistakes and how to use JS in your favor to actually enhance the accessibility of your web apps!
In this workshop we’ll explore multiple real-world examples with accessibility no-nos, and you'll learn how to make them work for people using a mouse or a keyboard. You’ll also learn how screen readers are used, and I'll show you that there's no reason to be afraid of using one!
Join me and let me show you how accessibility doesn't limit your solutions or skills. On the contrary, it will make them more inclusive!
By the end, you will:- Understand WCAG principles and how they're organized- Know common cases where JavaScript is essential to accessibility- Create inclusive links, buttons and toggleble elements- Use live regions for errors and loading states- Integrate accessibility into your team workflow right away- Realize that creating accessible websites isn’t as hard as it sounds ;)
Let AI Be Your Docs
JSNation 2024JSNation 2024
69 min
Let AI Be Your Docs
Workshop
Jesse Hall
Jesse Hall
Join our dynamic workshop to craft an AI-powered documentation portal. Learn to integrate OpenAI's ChatGPT with Next.js 14, Tailwind CSS, and cutting-edge tech to deliver instant code solutions and summaries. This hands-on session will equip you with the knowledge to revolutionize how users interact with documentation, turning tedious searches into efficient, intelligent discovery.
Key Takeaways:
- Practical experience in creating an AI-driven documentation site.- Understanding the integration of AI into user experiences.- Hands-on skills with the latest web development technologies.- Strategies for deploying and maintaining intelligent documentation resources.
Table of contents:- Introduction to AI in Documentation- Setting Up the Environment- Building the Documentation Structure- Integrating ChatGPT for Interactive Docs