 Hello and welcome back to OpenJS World. This is a lightning talk about Dojo, a progressive modern TypeScript framework. You might have heard of Dojo before, but if you haven't checked it out in the past couple years, it's completely new framework. I'm Dylan, one of the original founders of the Dojo toolkit dating back to 2004, and I'm actively working with Dojo for nearly 16 years now. So I just want to quickly give a summary of where we're at with Dojo. The most recent release was version 7. So if you use Dojo toolkit before, there are some similarities, but almost everything is new rewritten from the ground up over several years with the Dojo 2 release coming out in 2018. So Dojo is in many ways a modern progressive reactive TypeScript first framework. And what that means is we started with a TypeScript and ES6 foundation as the basis for how we would design a modern framework and went from there. So we really focused on the ergonomics of using TypeScript APIs, having strict, strong type definitions for everything we do, and really just thinking about what's a natural way, not just for us to build a framework with TypeScript, but for users to work with it as well using TypeScript plus practices. It's reactive and that our components use a JSX or TSX syntax, and there are some similarities with React and other modern frameworks. We have gone to great lengths to align with and interrupt with emerging standards from intersection observers and resize observers to the forthcoming internationalization API, inert state on form components and so on. We like to describe modern Dojo as a batteries included lean framework. So the result is quite small, but we do give you a lot of the things you need to build a modern application without having to make hundreds of dependency tree decisions on which routing library do I use, which component system do I use, what build optimization tool do I use and so on. And the result of putting those things together is we can assume things about the framework that allow us to create something that's consistent and easy to use, and also results in really small modern applications. You know, typically a like a Hello World style Dojo application is about somewhere between 10 and 20 kilobytes GZIP, so it is quite tiny. We have a custom rendering engine for widgets and DOM nodes. It's based on, you know, the sort of virtual DOM pattern that we did quite a few optimizations to make it interesting. And we have a flexible approach to middleware to connect like resources or data or state to your application. We also have done quite a few things around custom elements also known as web components. So basically, if you create a component in Dojo or an application in Dojo, you can export it with zero configuration as a custom element for use in other applications. We have a test renderer that makes it really efficient and easy to test VDOM based Dojo components. We work with a very nice modern approach to state management. You might think it's like Redux, but it actually is quite a different structure for how we sort of separate operations processes and things like that. We have a nice CLI build tool. We have a very strong mantra of do the right thing by default. And so the idea is, yes, you could do better if you know better, but by default you shouldn't have to make 100 decisions before you're productive. We have code splitting that automatically works based on your routes or your configuration or both. And we have a conditional polyfill loading system. So evergreen browsers really don't load much at all, but older browsers that don't support those polyfills, particularly IE11 right now, which we still support, will load the dependencies as needed. We have out-of-the-box progressive web application support with just a couple lines of configuration. And similarly, we can do build time rendering to inline our HTML and CSS and generate fully static sites if that's appropriate for you. We have this concept of a dojo block, which allows us to execute node modules at build time and then local bundles at runtime. We have a comprehensive widget library that includes theming and dojo7 added a material theme for that. We have commands for creating applications and widget libraries, not just for creating an application. So those are different CLI-based tools for generating the scaffolding and infrastructure you need to either create an application or a widget library. And we have a new thing called dojo parade, which is sort of a way to generate a collection of widgets that you have in your application and or that we have in our framework, and then documentation about each of them. So that's sort of where we're at today with our recent version 7 release. And also a lot of the components are function-based widgets and we also added something known as dojo resources, which is a way to sort of make a component aware of a resource without having to do a bunch of extra boilerplate in your component. Up next for dojo, we're working on application level widgets, which is kind of like a mega widget for an application. For full design system support, we just released the dojo resources thing, so we want to make refinements to that. And we still haven't created a dev tools plugin yet for dojo, so we'd like to make that happen fairly soon. We also have a lot of resources, but if you're looking for dojo and you end up on dojo-toolkit.org, that's the old dojo. So find your way to dojo.io. There are a lot of community resources, such as documentation, examples. We're on code sandbox. We're also part of Versal, which used to be known as Zeit, in terms of if there's an automatic deploy to Versal with zero config if you want. And then widgets.dojo.io is our example of the dojo widget system inside of dojo parade, so you can see what components we have available and how to use them. Thanks for your time. And we also, at this conference, we have a session about how we got from old dojo-toolkit to new dojo. There's a dojo workshop available. There's also an intern workshop, which is a framework for testing that comes from the same team as dojo. Also an OpenJS Foundation project. And then we're also just available online anytime to help you get started with dojo. So thanks for your time.