Built It and They Will Comeart 1

Progressive Web Apps

Where WebAssembly meets platform independent applications. It's like opening the door and letting in a masked creature wearing HTML/CSS/JS costume but not needing to be seen on a browser viewport. APIs with smarter ports mixed with custom components and shadow DOMs. It's like Electron, but with the whole atom.

WebAssembly doesn't need to interact with a DOM, thus no need to bother to wake up a browser window. It 'assembles' it's self via JavaScript interop. Progressive Web Apps (PWA) display on the users home screen.

At this point the discussion goes hyperbolic. There is a lot going on so it's up to you to search it out now that you have been introduced. But one aspect I've been working on is the custom components idea that can enhance any website that is expansive enough to stumble over its own feet from multiple functionality that unintentionally uses the same variable and function naming and therefore, blows up.

I've skirted around this problem in the past by building separate CSS files specific to some feature like a modal, card, or button styling and then just calling that CSS on a specific HTML page but you still have to use ID and class names that signal element on that HTML page like .card-title in the CSS where just .title might be called on other pages from a global CSS file. And doing this, makes your pages match up with this specific CSS and act like a component. Custom components take this desirable use-case and weaponizes it. The browsers now support designing your own elements and the DOM structure to support the component and then link it to the main DOM but isolate any duplicate or out-of-scope variable names. Sound complicated... Yep, it is.

What makes this work is defining a Class that extends the structured methods already built into JavaScript. The class structure ensures isolate scope and provides an avenue for JavaScript to attached a 'shadow DOM' to the main DOM and maintain the isolated namespace. Sounds like there was busy head-scratching sessions at the JavaScript conferences lately. Anyway, it works. Check out the many Crash Courses on YouTube to get a sense of what's going on here.