680

October 16th, 2023 × #javascript#libraries#jquery#express#sass

Getting jQuery’d × Honourable Deaths of libraries We Don’t Use Anymore

In this episode Scott and Wes discuss various libraries and tools that have been replaced by standardized browser APIs and JavaScript features over the years, like jQuery, Express, Underscore, 960 Grid System, Sass, Socket.IO, Left Pad, etc.

or
Topic 0 00:00

Transcript

Scott Tolinski

Welcome to Syntax. On this Monday, hasty treat, we're gonna be talking about Getting jQuery, what that means. Oftentimes, for a long time, people ask to get a lot of features Added to the browser. Why can't we just have jQuery in the browser? Well, here we're here to talk about things that have been added to the platform to make it so that We don't need to use libraries or maybe as many or heavy of libraries as we did in the past. My name is Scott Talinski.

Scott Tolinski

I'm a developer from Denver. With me, as always, is Wes Bos. What's up, Wes?

Wes Bos

Not too much. We've been thinking about this episode for a while. And I initially had this episode named Express is Dead. Long live Hano JS.

Wes Bos

But The more I got into it, the more I was thinking about like there's a lot of not a lot, but there's there's several big things in web development that are no longer as highly used, no longer as popular. I'm not going to say dead. My own My whole course empire runs on Express, and I'm not going to move that anytime soon. But there's a lot of like tech, whereas like if I were starting something new today, I probably wouldn't pick that tech because browser primitives built ins are much better now. Standardization And those things are not. I'm not using them because they're bad. I'm using them because the standards are much better than when I chose that tech in the in the past. Totally. You know what's not gonna get jQuery though is

Scott Tolinski

error and exception handling because There's no way they can add that to the browser, so I think we're safe there. And if you need error and exception handling, you you wanna make sure that you can find all of your bugs if they're happening. Check out [email protected].

Scott Tolinski

We're proudly presented by Century over here at Syntax. So let's check it out. Let's talk about the things that have been Added to the browser. And in jQuery, honestly, that conversation was had so many times. Why can't we just add jQuery to the browser? Everybody is using jQuery, jQuery, jQuery.

Topic 1 02:33

jQuery added to browser

Scott Tolinski

And if you don't come from that world, you might not have actually been paying attention to know that, Well, it kind of was added to the browser just without the fancy dollar sign syntax.

Topic 2 02:46

browser compatibility

Scott Tolinski

Many of reasons why people use jQuery were for, 1, browser compatibility.

Topic 3 02:52

ease of DOM selection

Scott Tolinski

Mhmm. 2, ease of use in selecting DOM elements.

Scott Tolinski

Before jQuery existed, the means in which you could select DOM elements was not nearly as elegant as, get element by ID or or, you know, what what are the other selectors we now have for for getting down elements? I'm I'm blanking on them off the top of my head for something.

Wes Bos

Get elements by class name, get elements by tag name, get element by ID.

Topic 4 03:15

traverse DOM with siblings

Wes Bos

And that was that was Pretty much it. We also had this thing called XPath, which is pretty nifty, but it's very bizarre to write the selectors for XPass. So when jQuery came along, specifically their Sizzle library that was the selector engine inside of it, it was So much better to be able to specifically select things based on their class, based on multiple classes, based on a fuzzy match.

Wes Bos

And the fuzzy match was nice. Yeah. Also, like all of that wasn't just with jQuery. That was just the first part was just selecting the element stuff. Then we also had a lot of things around adding event listeners and event delegation and all kinds of

Topic 5 03:53

fuzzy matching selectors

Scott Tolinski

Like, there was animation stuff. Animation helpers too were were were huge. Yeah. And still today, you know, jquery's whole slide up and down, jump. Maneuvering for doing accordions is still better than what we have anywhere else, honestly.

Topic 6 04:09

animation helpers

Wes Bos

Yeah. Exactly. So Now we have a lot of these nice built ins. You can traverse the dom with next element sibling, previous element sibling, and It's just not necessary to do that type of thing. There's jQuery still extremely popular because there's a whole backlog of websites that are built with it, and It's not that big of a deal to move off of jQuery, but I think a lot of people get into trouble when they plugins that are based on jQuery. It's just not at that point. It's not worth trying to rewrite like a slider or something like that where there are libraries out there, but for a lot of people, it's like, well, You're going to spend all this time to migrate and it's going to be the exact same experience. Not worth it, you know, just the next one. We don't use that. Did you ever write your own jQuery plugins? Yeah. I had written a couple of them. I remember, like, having, like, major enlightenment When I realized what a jQuery plug in was, you could just like add it to the namespace and it accepts. It comes an element comes in and You can have an options object. I was like, Oh, wow. Like, so you mean that all this code that I was writing, I can just put that into a plug in and make it reusable. And I was still early dev,

Scott Tolinski

but that was like a major enlightenment a moment in my career realizing what those were. Yeah. That was a huge deal for me as well in that same way where I just remember being like, The these Jake worry plug ins that I had thought in my mind were these big, complex, scary things We're actually very simple, and they were easy to author. My my first one was called the DTF. It was down to fade, and it was a jquery plug in that just faded in, like, your elements on your page. So when your page loaded, the elements would fade in, and it had, like, options sequentially and stuff. It was very it was very,

Topic 7 05:49

realizing power of jQuery plugins

Wes Bos

very basic, but it was it was one of those things where you're just like, oh, yeah. Okay. This is all easier than I thought. Exactly 1 of the Sorry, 1 more thing I want to say about the jQuery thing, and this is going to be something that we'll be hearing throughout the episode is that The beauty of standardization is that you are no longer confined to a jQuery plug in. And it's just a DOM element, meaning that other like if you have something that can accept a DOM element right now, whether that is like a React hook or whether that is a web component or whether it's a Svelte plug in or whether it's an animation library.

Wes Bos

The fact that it's all just dumb elements at the end of the day is beautiful because then there's less glue that needs to be written. And we're starting to see that in Svelte land and web component land where,

Scott Tolinski

Okay. Maybe you don't necessarily need a specific plug in for this library. Maybe it can just be a DOM element. So let's move on from the jQuery reminiscing and start to talk about how this stuff was added to the browser, whether it was things from jQuery or not. And, actually, you know, one that we initially kind of left off before we even get into x express and some of that stuff, I wanna talk about Ajax request used to do Ajax through jQuery as, that was the means of fetching content from somewhere else. And it could be XML or whatever at that point in time. You know, we we weren't doing the whole fetch a a JSON from an API a whole lot.

Scott Tolinski

However, now fetch is not only here in the browser, but it's here on the server side. And we have a lovely mechanism for fetching just about anything

Topic 8 08:01

fetch API for requests

Wes Bos

creating requests via the fetch function. It's true. Like, I don't know if I could.

Wes Bos

Stuff. I definitely couldn't write an XML HTTP request. That was what we had before fetch, right? And everybody just used dollar.ajaxordollar.get because it was so much easier.

Wes Bos

Next 1 we have here is Express.

Wes Bos

So Express is the Node. Js server. It handles requests coming in data going back.

Topic 9 08:34

Express for server routing

Wes Bos

It handles routing and all of that good stuff around building an application. Right? And we've had Express 4 for a very, very long time, and Express 5 has been in beta for, I wanna say, probably

Scott Tolinski

what would you guess? How long has Express I've been in beta. I'm gonna be real with you. I have not looked to express in quite some time, so let me I I do not know. I I to be honest, I I don't even know the difference between version 4 and 5. That's how long it's been since I've looked at Express.

Wes Bos

Yeah.

Wes Bos

Express is kind of interesting because I think it's probably been like 3 or 4 years since it's been in beta, and I don't know if it will ever come out because Express for people that are using it. I'm using Express for it's literally good enough for absolutely every single thing that I want to do.

Topic 10 09:35

fetch API standardization

Wes Bos

And there's no features that I am missing. You know, sometimes there's nice little API improvements and whatnot, but If and when I do make a jump, it's not going to be from Express 4 to Express 5. It's going to be from Express 4 to Web standards, right? And what are the standards that are replacing Express? Well, like not all of Express is replaced by standards, but The standard in the browser and on the server is the the fetch API. So the fetch API introduces the request object, the response object, a headers object, web streams.

Wes Bos

And the beauty of that is again, it's Standard on the from the browser and on the server. It's standard across lots of different implementations.

Wes Bos

So whether you're in Deno, a webworker, Cloudflare Workers, BUN, Fastify, all that good stuff is they are all standardized requests and responses, meaning that You can take some sort of library that accepts a request and you can use it with the stuff that you're already using.

Scott Tolinski

The Hey. Before you get it going on, let me turn that question around to you and ask you, when do you think the fur because I have the answer here. Jeff. When do you think the 1st alpha was released of Express 5? And I'll I'll link up the, the PR. I'm gonna say Late 2019. You are off by about 5 years. It was, November of 2014.

Wes Bos

No way.

Scott Tolinski

Here's the, yep. Wow. Alpha one.

Scott Tolinski

The most recent alpha or the most recent beta one was 2022.

Scott Tolinski

So yeah.

Scott Tolinski

You're, if it if it's ever going to come out at all, man, if the first alpha release was 2014 the 1st beta release was 2022.

Wes Bos

That's a long time. Yeah. Yeah. And I don't know. Maybe it was They decided it was, like, too big of a a jump for people, and, like, like, Xero four has sync away support.

Wes Bos

And maybe people are just like, you know what? I'm not going to do that. It's smaller incremental upgrades to Express are maybe needed.

Wes Bos

But what else does Express give you? It gives you routing, you know, URL pattern matching. It gives you like convenience methods for sending JSON, like with fetch request response, sending JSON as a response from a endpoint is is kind of a pain because you have to set the headers to be JSON. You have to JSON stringify it yourself, and that's a lot more work than just saying res. Json and throwing it an object, and it will do the headers and the status codes and all that good stuff for you. So, but like that's not part of the web standard. You know, a server is not part of the web standard, at least not yet. Maybe it will at some point, but.

Topic 11 12:40

Hapi as Express replacement

Wes Bos

Lots of things, specifically Hano JS is my favorite by far.

Wes Bos

Take these standards and sort of fill in those features middleware, Routing, route matching, different get and post endpoints.

Wes Bos

And then they they just give you the request a response object, as well as a couple of convenience methods for doing things like replying with JSON or throwing an error that has All the error constructors sort of under the hood. Yeah.

Topic 12 12:55

Hapi uses request/response

Scott Tolinski

And not necessarily even a browser thing, but, you know, one of the The big reasons why many people aren't turning to something like Express nowadays is because we have all these meta frameworks.

Scott Tolinski

If you're using React, you know, why not use Next. Js and get a server for free or Svelte and you get SvelteKit for free? And And I don't know what all of the different ones you use, to be honest. I know SvelteKit uses something called Polka, which is a micro web Server.

Scott Tolinski

So fast, it makes you dance.

Scott Tolinski

Like the, dance.

Scott Tolinski

Here, I'll I'll paste it in the Polka. I thought I said polka. Polka.

Scott Tolinski

And this is, 50% 30 33 to 50% faster than Express.

Scott Tolinski

Ninety lines of code.

Scott Tolinski

So, yeah, seems like it's pretty small and uses the express middleware style of things. So, yeah,

Wes Bos

highly perform Express alternative. That's beautiful because, yeah, like if you aren't building a server from scratch with something like Hano, you're probably using routes in something like next or remix or SvelteKit.

Wes Bos

And again, all of those things are they're fairly standard, right? Like, I'll say, like, 95%.

Wes Bos

There's always some specific implementation to the framework where they add on properties to the request in the response And the like convenience methods of returning JSON might be a little bit different, but.

Wes Bos

Stuff. Even URL, like right URL params.

Wes Bos

All that stuff is a browser standard. So if you have a function in one of these frameworks. You can move it over to the other frameworks in probably a couple of minutes.

Wes Bos

Word. Next 1 we have here is Underscorejs, and I'll throw in Lodash with this as well.

Wes Bos

And this is not people always get like a little huffy when you talk about this type of thing.

Topic 13 15:08

Underscore/Lodash utilities

Wes Bos

And again, it's not because.

Wes Bos

You don't necessarily need it.

Wes Bos

You probably still will need to reach for some of the stuff that lives in Lodash or Just is one that we talk about a lot on the show.

Wes Bos

But most like common use cases of working with data, Working with objects, arrays and working with events, things like delegation and whatnot.

Wes Bos

Most Of those common use cases are so doable in vanilla JavaScript that you don't necessarily have to go off and reach for a library like we're getting groupby in JavaScript now. That was something I always reach for a library for because It was kind of annoying to have to write your own group buy in, in like a reduce. You can do it in a But there's always just like there's so much of like that overhead of checking if it's null and if it's not there, then create a key. And sometimes it's easier just to do it. Now we have object. Groupby and map. Groupby. I'm using it in the new syntax website. It had to polyfill it because it's not there yet. It's Not in any browsers yet, but you can polyfill it. No problem.

Topic 14 16:26

Maps/Sets replace Underscore

Scott Tolinski

But what else do we have? Maps and sets take care of a lot of like the interesting data use cases. If you look at the the low or the underscore docs, which I haven't been here in quite a quite a little while, like, the lead off methods are each And that was such a the classic way of doing it is like I remember once I understood that, oh, you can use a library like Underscore at the time do all of those concepts, that's when I started really understanding JavaScript a little bit more. But then once that it got added obviously to the browser, stuff. So much easier.

Scott Tolinski

I mean, underscore was was everywhere. I mean, it was baked into so many of the libraries and and Tools that you use just because it was every single utility that we would want, now we get to have. This is

Wes Bos

it's amazing if you look at the collections. So So that's that's working with like arrays. Yep.

Scott Tolinski

How many of them have landed in JavaScript? How many of these are in

Wes Bos

JavaScript? Like like a pluck. If you have an array of objects and you want the people's names like that's a one liner like stooges.map Highly used library, and now we have I'm trying to look at the list. If there's anything in here I would still reach for, Shuffle is maybe one.

Wes Bos

Stuff. We don't have shuffle in in JavaScript, do we? I don't think so, but I've

Scott Tolinski

yeah. I don't know. I don't yeah. How often do you need to randomize an array? I think so many times now I would just go to, just Angus c just. But Yeah.

Scott Tolinski

Just Copy paste. Yeah. Copy paste. Right? You can see exactly how they do it. And partition,

Topic 15 18:17

Spread instead of Lodash

Wes Bos

split list into 2 arrays, one whose elements satisfy justify predicate and one whose elements do not satisfy the predicate. So you can list. But again, that would probably be a super duced, you know, like I'm not sure if I would install something for that. Yeah, that's amazing. But like Lodash has gone a little bit more in the direction of like Lodash does so much. They do a lot of like, event stuff, debounce.

Wes Bos

And what's the other one that I always mix up?

Scott Tolinski

Bubba, the debounce and

Wes Bos

just Throttle.

Scott Tolinski

Throttle. He bounces throttle. You saying that you couldn't remember it, it removed it from my brain. I could I could see it. I just could not say it. And also, like, spreads. That was a big one.

Wes Bos

Like Lodash had a lots of copying and data, you know, doing deep clones and whatnot. We still don't have deep clone in JavaScript. But if it's a top level clone, which is almost always what you want Yeah.

Scott Tolinski

You've got that. Another one is require JS, Which, it it feels like I remember when I first saw this landing page. So this landing page for acquire dotjs is it's got a target and an arrow. It's got these really great colors. I remember seeing this as a young JavaScript developer And just really truly thing feeling like, why would I ever need something like this? Why would I never ever need a module loader in JavaScript when I can just Copy and paste my code into a file and just have it working. It felt like such overkill, but this is JavaScript Essentially, modular script loading before we had, common JS, before we had, anything.

Scott Tolinski

And you can tell it's that you with use with Node, with use with jQuery, use with Dojo. The fact that they put Dojo as one of their 3 things here is is how to use.

Topic 16 20:14

RequireJS module loading

Scott Tolinski

To me, this was this was one of those ones that felt like truly the The beginning of the next level of JavaScript around the same time as, like, backbone or any of those things, and and it just felt like, Wow.

Scott Tolinski

This is a a whole new world where you're writing real software.

Scott Tolinski

However, you know, we we got those, features in Node first is common JS, and then we got those features now in the browser and everywhere as JavaScript modules or ESM, the import syntax that you know and love and have hopefully not had too many struggles with but probably have, you know, been upset by at some point here.

Wes Bos

Yeah. Next 1 we have here is Left Pad. This one is a bit of a history lesson and a bit of a funny story.

Wes Bos

So there is a module on NPM called Left Pad, which is Essentially, if you have a string, let's say I have Wes, right? And we have Scott, right? Scott has 4 letters.

Topic 17 21:15

Left Pad NPM breakage

Wes Bos

Wes has 3. I want it to be 6 letters, right? So you have to pad however many letters You need to get up to 6, right? That's what Left Pad does.

Wes Bos

And there was a very popular NPM package called Left Pad, and I think it was in 2016, the developer, 1 Friday afternoon, he just nuked it. He just took it off NPM. And at that point, you were allowed to do that. You're allowed to just delete packages on NPM. And it broke NPM itself. It broke React. I remember, like, Everybody was freaking out, and it was like a Friday afternoon and everybody's builds were breaking because the entire ecosystem was all dependent on this one, probably like 6 lines of code.

Wes Bos

And it was all Everything came crashing down. I'm pretty sure as Brian LaRue stepped in and really grabbed the name on NPM and published it, republished it just to get everybody's bills back and running. But now you're no longer allowed to delete something off of NPM, which is Some people don't like, but also that's the house of cards we've built here, which is hilarious that the entire like Like how much damage did that 1 guy do by simply just deleting 6 lines of code? So now obviously we have that in string. Pad start.

Wes Bos

Or you can pass it however many characters you need that thing to be. It's really popular in terminal applications because if you need to indent something

Topic 18 22:58

String pad instead of Left Pad

Scott Tolinski

Whenever I I saw that happen, and I was just like, everybody's using this. It feels like why why am I not using this if everybody's using it? But it it's just I I'm not the type of person who has had this type of situations where I needed it.

Scott Tolinski

Another huge one was, hey, grid systems.

Scott Tolinski

You know, we used to have to import a massive library to do a grid system. You know, everybody used Bootstrap, but before Bootstrap Existed. There was 9, 9 60 GS. Let's see how many kilobytes 9 60 GS is. Let's see. The big old download button, let's Click that. The zipped version of it is 4.2 megabytes, but there's no way that that's the size of the CSS.

Topic 19 23:33

960 Grid System

Scott Tolinski

The actual CSS.

Wes Bos

Yeah. It's about 10 kilobytes. It came with, like, all the Photoshop grids. Yeah. It's actually kinda nice that you can And they had sketch sheets that you could print off.

Wes Bos

Dude, I loved that. We gotta have we gotta have Nathan on on the podcast, actually, because this was

Scott Tolinski

Next level. This is next level, and this is you know, those of you who who use Tailwind know, the way you define Where your item existed in a grid, you'd give something a container and how many columns it had with a container underscore, let's say 12.

Scott Tolinski

Then if you want a grid column to start at the left side and go from 1 and span 7, you do grid underscore seven, and it would span that length.

Scott Tolinski

And then there were some other helper classes like alpha and omega.

Scott Tolinski

And this has allowed you to have a grid system. You could also So build your own custom grid system with this.

Scott Tolinski

And then we got things like Bootstrap that had a grid system. There was all sorts I I remember very clearly, Many times using a grid system. But nowadays, hey. Why do you need a grid system with full of classes, full of grids, Where you can build your own custom grids that are not only, like, a full on nice grid system when you need to use it, But can be fully responsive even with just one line of CSS, making it truly custom.

Scott Tolinski

And now with subgrid, you can have that grid populate down into children and do all these really awesome alignments And everything without having to import a ton of CSS to do it. Yeah. I remember when

Topic 20 25:23

CSS Grid instead of 960

Wes Bos

Flexbox and Grid came out, there was a big rush to make, like, the next Grid system grid system, you know, like all these in CSS. And I think we sort of realized over over the while, like you don't need a grid system for your grid system. You don't need like some CSS on top of it.

Wes Bos

It's it's pretty good on its own. My favorite grid system was Susie,

Scott Tolinski

which was a SaaS based grid system Because you could just do some really nice and easy functions to do all of your grids. That was by Miriam Suzanne who we've had on the show before. That was such a a really nice thing because it took your grid system out of classes. We no longer have to rely on dumping a bunch of Classes in our CSS to do a grid system. You can do it right there in the CSS with Susie, so that was a nice thing for me. Next up, Sass and Less and all those

Wes Bos

frameworks. Obviously, CSS nesting variables. I think we've talked about this till we're blue in the face on the podcast in the past, but Those things are mostly not necessary. There's still a couple of use cases here and there for Sass, and we did a whole show on that. If you want to go back and listen episode 603 on

Topic 21 26:28

Sass/Less preprocessing

Scott Tolinski

can vanilla CSS replace Sass yet? Yeah. And there was Compass too, which was an addition on to Sass the the last 2 days. For doing sprites? Yeah. Oh, yeah. Next up is socket dot I o. I never got too much into you know, evolved past socket.io? Yeah. Socket.io was was still popping. Wes, do you wanna talk about how WebSockets, You know, evolved past socket. Io? Yeah, socket. Io was like

Topic 22 27:15

WebSockets replacing Socket.IO

Wes Bos

an implementation of WebSockets that fell back to polling and had a bunch of features on top of it. But as WebSockets evolved, as we got them both in the browser and in the client, stuff. We don't necessarily need those things anymore.

Wes Bos

Like a lot of the things we talk about today, there still are some useful features doing things like rooms where you can, like, have a room of people who you can broadcast to and and whatnot. But Sakurai Oh! Died like a valiant death. Stuff. If I if I were to say, hey, because

Scott Tolinski

we don't necessarily need it like a lot of things on this list. Yeah. I think the only time I use socket. Io was in a Code Cool course. CodeSkull is a really, really great learning resource back in the day. And and along the lines of the CSS stuff, there is really too many things to list For all of the new features, whether it is, you know, we used to have to do images for border radius and things like that, but like Coupon or a scalable the Inman Flash replacement for replacing your fonts.

Scott Tolinski

We can just use web fonts. I mean, there's a countless list of of things that we used to have to reach for.

Scott Tolinski

In in that case, Flash to do replacements of fonts or images replacing fonts. You can now just use web fonts. Do you know who made Socket. Io? I don't.

Wes Bos

Is it TJ Holotruck? No. Surprisingly not. It was, a Guillermo from Vercel. Oh, nice. Yeah. And there's this, Like amazing video from JSConf 2011 of him sort of explaining it and whatnot.

Wes Bos

And it's kind of funny to look back at it. He's been involved in so many really amazing

Scott Tolinski

JavaScript projects.

Wes Bos

Honestly, why Vercel does so well is that it's Guillermo has been a dev at the forefront a lot of this JavaScript stuff from day 1. You know, like, I wonder what else what other

Scott Tolinski

libraries did he build? MooTools? He well, no. Not MooTools. He looks like I'm just looking at his, oh, stuff. Mongoose? He he was involved in MooTools a lot. Yeah. Slacking? What's Slack? Going way back in his GitHub history here. But yeah.

Wes Bos

Oh, Slackin was public Slack organizations before Discord.

Wes Bos

Cool.

Wes Bos

We have Siffern. This is just a funny one. As before we had web fonts, you could use Siffern to replace them with Flash. I remember that would blew people's minds. How to get that custom font. And it's not an image, you know? Yeah. And then I thought we'll talk real quick about

Scott Tolinski

what do you think Will be the next things that get Jake Gray'd. You know, I think the next thing that everybody who's been listening to the show for a little bit will think of stuff. Will be date libraries, date anything involving dates. For a long time, it was like moment. Js was the one, and then date f n s came out because It was an ESM based, and you could pluck out just the stuff you need instead of loading this massive library for it.

Scott Tolinski

But The new temporal date library for JavaScript well, it's not a library. The new date feature for JavaScript is going to be Really, the thing that is going to transform how we write dates and times in JavaScript.

Topic 23 30:17

Temporal replacing date libs

Scott Tolinski

And in fact, I've used it before via polyfill, And it is quite simply lovely. You don't need date f n s anymore. So also, I think we're starting to see rumbles of getting observables

Topic 24 30:43

Observables being standardized

Wes Bos

in JavaScript. So maybe something like RxJS and libraries that are based on observables will go by the wayside because we have them.

Scott Tolinski

There's also a, signals

Wes Bos

Oh, yes. Signals. Yep.

Scott Tolinski

Is it it's possible that it could come to the browser. And in fact, You know, I think that was one of the reasons why Svelte has decided to move to signals is, hey. You know, you don't have to ship all that code for your your entire reactivity

Wes Bos

system if signals end up being part of the browser. Right? Yeah. All right, that's it. Shout out to everybody who worked on these libraries and whatnot. I thought we'd give them not an I don't even know what to call it, not an honorable death, but stuff. Just it's beautiful that we don't need these things and they were worked on for so long. Now we have them in the browser and on the server. Yeah. I I it is

Scott Tolinski

stuff. But slowly and surely, all of the things that we know and use and love, we had to go to user land for will be available at our fingertips us having to install something. There it goes, just in the browser, in the engine. Love it. Alright. Peace.

Scott Tolinski

Head on over to syntax.fm for a full archive of all of our shows. And don't forget to subscribe in your podcast player or drop a review if you like this show.

Share

Play / pause the audio
Minimize / expand the player
Mute / unmute the audio
Seek backward 30 seconds
Seek forward 30 seconds
Increase playback rate
Decrease playback rate
Show / hide this window