Bun Rust rewrite ⟡ Local First w/ Jazz ⟡ Remix 3 finally here ⌁ Syntax Weekly ⌁
Chapters7
Wes shares news that Bun is being rewritten in Rust, porting Zig code and achieving high test pass rates, prompting discussion about memory management and language choices.
Bun goes Rust, Remix 3 gets a bold, AI-infused refresh, and Jazz Tools hoglights local-first data for modern web apps.
Summary
Syntax Weekly’s first live show dives into three hot threads in web development. Wes, Scott, and CJ riff on Bun’s dramatic Rust rewrite and what that means for Zig-based memory management, test suites, and potential performance gains. They then unpack Remix 3’s ambitious rewrite that shifts away from React toward a vanilla-JS mindset with new tooling like Mix, plus the AI-forward vibes around documentation and agent files. Finally, Jazz Tools enters the scene as a local-first database with built‑in sync capabilities, offering a lightweight, end‑to‑end data layer that can run locally or in the cloud. The trio also touches on Inertia in Hono, real-time data with Spelt Kit, and the state of modern tooling like Zed, Warp, and the Amsterdam JS Nation show. It’s a whirlwind tour that blends hands-on experimentation with speculation about where the ecosystem is headed next. Expect candid takes on how these tools feel in practice, not just in theory, and practical notes for developers weighing comfort vs. cutting-edge capabilities.
Key Takeaways
- Bun’s port from Zig to Rust reportedly progressed to ~99% test-passing, with a full 1M+ lines of Zig code converted to Rust in under a week.
- Remix 3 is a complete rewrite that abandons React in favor of a vanillaJS-like approach, introducing a mix prop for styling and behavior customization.
- Jazz Tools offers a local-first database stack (SQLite-based) with an easy cloud/local sync model, enabling real-time or offline-first apps with minimal setup.
- AI-assisted tooling is becoming a practical reality in framework ecosystems, evidenced by AI-written code snippets and agent-based documentation strategies.
- Remix’s ship‑it vibe includes agent files/skills to guide AI tooling, highlighting a shift toward AI-friendly developer workflows.
- Inertia-based patterns in Hono provide a server-rendered-first experience with client-side navigation, aiming to blend SSR with SPA-style UX.
- Spelt Kit’s query.live introduces real-time data streams via remote functions, removing many traditional websockets/SSE headaches for live UI updates.
Who Is This For?
Frontend and full-stack developers curious about the latest in runtime ecosystems, database-first approaches, and AI-assisted tooling. Those evaluating Bun, Remix 3, and Jazz Tools will find practical takes on performance, DX, and deployment trade-offs.
Notable Quotes
""bun being rewritten in Rust uh relatively quickly and pretty unreal.""
—Wes kicks off the Bun Rust rewrite news with emphasis on speed and surprise.
""100% test passing which is absolutely unreal that you're able to do it. a million lines of Zig code ported to Rust that quickly.""
—Discussion of Bun’s port progress and testing milestone.
""Remix 3 is a complete rewrite and they forked React or like they're I don't know the details completely. Feel free to chime in if you do, but they are not using React. It's their own version of it.""
—CJ summarizes Remix 3’s core architectural shift.
""Jazz Tools nailed it. Local first software, the dream of actual local first data is very attainable with this""
—Scott extols Jazz Tools as a practical local-first solution.
""Query.live... real time data baked directly into spell kit without having to do anything beyond having a query.live""
—Wes highlights Spelt Kit’s real-time data capabilities.
Questions This Video Answers
- What makes Bun switch from Zig to Rust and is it a good idea for performance and memory management?
- How does Remix 3’s Mix prop affect styling and event handling compared to React?
- What is Jazz Tools and how does a local-first SQLite-based database with sync work in practice?
- Can Inertia be effectively used with Hono for SSR + client navigation?
- What are the benefits and drawbacks of real-time data streaming with Spelt Kit's query.live?
Bun Rust rewriteZig languageRemix 3Remix 3 Mix propAI-assisted developmentLocal-first databasesJazz ToolsSQLiteInertia with HonoInertia protocol alternatives (Hono)
Full Transcript
Hello everyone. Welcome into Syntax Weekly, our new weekly live show. Uh where we're gonna be hanging out, talking about webdev stuff. We got Scott and Wes with me here today. How you guys doing? Stoked. Doing good. Nice. Uh if you're watching live, let us know in the chat. This is our first time using this whole setup, so things could go wrong, but that's okay. We're here to figure it out. Um but yeah, say hello in the chat and uh we'll get into it. So, we've each brought one thing that we thought might be interesting, whether it's news or a new library or something like that.
And uh we're going to get into it. I I guess at some point we're going to ask for submissions from chat. That's going to happen, right? In some way. Yeah. Yeah. If you guys have something that you want us to take a look at, drop it in the chat and uh we'll pick one of them and share it out. I think in future streams we'll have a way for people to vote and all that stuff. Um, and all of the links that we'll be talking about in this episode will be available on the syntax daily dev site.
So, if you are a daily dev user, check us out. We'll be posting all of our links in the syntax squad over there. Nice. And I will mention, I guess, if you share it in the chat, some of the live streaming services don't let you share links. So, you just say the name of the thing that's interesting, whether it's news or a library or something, we'll we'll we'll find it. Yeah, we're uh we're good at hunting down that kind of stuff. This is fun, guys. We're live. We're live on the internet. Yeah, this is great.
I'm stoked to stoked to see it and uh stoked to get into our thing. Should we Should we do the first item now? Yeah, let's get into it. Wes has some very interesting news for us to talk about. Yeah, this is one that came sort of out of nowhere um and developed crazily over the weekend, which is bun being rewritten in Rust uh relatively quickly and pretty pretty unreal. So, um bun famously written in Zigg. It's a JavaScript runtime. It uses something called JavaScript core, which is the um JavaScript engine behind Safari, right? And it's we had Jared on the show a couple years ago and he talked about how awesome Zigg was and and everything and it seems like they've been having some issues with like memory management and um Seg faults and just like all the pains around that you know everybody see everybody posts like oh cloud code runs on bunt obviously they acquired them.
Um so last week like five days ago somebody noticed oh there is this like uh uh what is it called? Why am I a branch? There's a branch on the the bun repo that said like, "Hey, this is like we're going to try to port it from Zigg to Rust with uh with Claude, right?" And and the idea was is very similar to how like the TypeScript was moved from TypeScript TSC was moved from Typescript to Go where you simply just took every single file and converted it to the equivalent Rust file. you know, not changing how how it works, not changing anything, simply just like rewriting the actual syntax of it in Rust.
Um, and it went from this is just a test seeing if we can do this with AI. Everybody's overreacting to uh what five days later if we do them Russ rewrite this would be the last version version in Zigg Jared has been posting and and he says that they're like at like 99% or something like that uh test case passing which is absolutely unreal that you're able to do it. a million lines of Zig code ported to Rust that quickly. Wow. It It feels unexpected. Like I I you know, I guess I always got the vibe from Zigg that it was um kind of not necessarily shaky ground to build on, but definitely an an unusual choice, right?
And to see this is I don't know. Is it validating in that regard? Maybe. Well, like nobody had heard of Zigg before Bun came out and and said, "I'm writing a like a JavaScript I'm writing a no.js competitor in this language nobody has heard of." Um, and then here we are what, three, four years later. And uh, starting to feel, I guess, the cracks of that. Not that Zig is is not good, but the memory management and all of those like pain things are, I think, a lot easier to get around, right? Like Jared says, I am so tired of worrying about and spending lots of time fixing memory leaks and crashes um and stability issues.
It would be nice if the language provided more powerful tools pre preventing these things, right? You just want to move fast, add features, and then so much of his time is just spent on like bun just keeps crashing, bun is eating all my memory. I also love that somebody found this just by looking at what was it like git history? They found a branch and figured out that they were working on it. I mean, I guess that's that's the nature of like open source, but like it's super funny that that uh yeah, it wasn't even an announcement.
It was like, oh, we found that they're working on this. Somebody found out they're poking at it. And quite honestly, aside from the fact that it's like moving to Rust, I think this is unbelievable that you can do something like this in six days, you know, like it's not like, oh yeah, like I just I just renamed variables and the way that we declare things. No, like it's it's passing a lot of the tests. It's it's compiling. It's it's at a spot now where this is actually doable. Yeah, I see I see a chat on Twitch uh saying slop rewrite.
I mean, this this is the era of slop forks. Whether or not you want to call this slop, I mean, it was very like AI assisted. So um yeah, AI is involved. But yeah, but if you if you think about it, like bun was born before like the dawn of of like everything being written with AI. So like there's some serious engineering in there and that is kind of what was being ported, right? So like a lot of the design decisions and architecture was made by a human and then the the AI is the thing that kind of like translated it.
So translating. Yeah. Someone said like how is this different than Dino? because like Dino is written in Rust and he says it's never been about the language, right? It's all about the engineering and the approach and and whatnot uh of actually tackling this solving problems the design. It's not about the actual syntax that is written or like the actual Rust uh compiler. Well, it is about the Rust compiler because you you now hopefully it won't crash as often, but I guess we'll we'll see. And and bun I mean bun is unique for reasons beyond just being written in zig or being fast.
It has a lot of extra things in it that you know whether that they they added the SQLite uh stuff and what have they been adding recently? I feel like every single time I see something on bun they've added they're adding like a a native image transform which is quite honestly well needed. That's always such a huge pain of trying to just transform images inside of NodeJS. You need to like what's the one that we use in Node? Sharp. Sharp. you got to get sharp running and then oh it doesn't work in cle workers like that you know yeah that that not having to deal with sharp would be a nice life upgrade for sure I I will say that this is a very good candidate for this type of of rerun rewrite because bun has very few external dependencies and it has an absolutely massive set of of tests that you can test it against like that's ideal right I if if you this was like built on top of something else, you know, if they use some existing library like um Dino uses Tokyo, which is the async rust thing, um they specifically said don't use that in here.
If it was built on something, you'd have to also get all of those libraries ported over to Rust as well or figure out how to implement it in a a similar way. In this case, it's mostly just straight up code that that doesn't have any dependencies and has a huge thing that you can test against. I will say, man, uh slot slot forking in some regard or even just migrating things is slot migrating is something that AI is particularly good at. If you haven't, we did a show on it. Yeah, I know. I I recently last week uh the fuel.co site.
So fff how many there is there four fs in fuel.co three three uh this site um is written in a bunch of bespoke custom templates. Um it's using several different uh languages and styles based on the different tools. And I was like, you know what, if if we could just have this all in spelt kit, we could uh manage it better. We could update it more. We could add new tools more likely. And so I I took some time to uh re rewrite this with AI into speltkit and just porting each individual tool over and and really watching it obviously and uh approving everything.
It was actually a very easy experience. And now we don't have these custom template code and we have stuff that we could all work in to add new tools. So that way we can actually update this thing. Is this did you deploy this already? I have not deployed it. I wanted to Yes. Uh but locally it works beautifully. So it and it is the exact same. In fact, one of the things I had AI do was before you mark each tool as being complete, pull both of them up in an agent browser and confirm that they are exact exactly the same.
Um and yeah, it's fantastic. That's beautiful. Yeah. Like for stuff that doesn't have a test case, simply just run them in parallel, look at the output, look at the functionality. Uh AI is great at that as well. Yeah. Yeah. And this is this is the age of the the slot fork. But I will mention like in relevant news, uh Tanner uh recreated React. What is he calling? He's calling it a um a projection. Not a slot fork. A projection. Um cool name for that. Yes. And I I think it I think it fits. So the it's I think they called it redact but the idea was uh remove all the things from React that we don't really need for Tanstack or for certain websites or basically create a customizable build of React that only has the stuff we need.
And so it basically reimplemented React's API um and test suites were passing. I I think this is also the era of like how good are your test suites because like yes testes are passing but like where's all the gaps? Um yeah. Yeah. This is pretty neat. It's a like I guess a React fork, right? That's or at least is compatible. Hano has something like this as well, right? Where you can use all of the hooks and the basics of React, but it's not built in it in React itself. And they he also said like isn't that what Pact was?
And like Pact has sort of like strayed from the path of being a React drop in replacement and it is no longer that no that's no longer a thing. I will mention I guess I mean for end users of bun you don't have to even know that it was rewritten in Rust if if they ship it. Like if anything like the there's maybe less crashes, maybe it's a little faster. Um so end user you don't have to worry. That's probably why they didn't make a big deal out of it in still until somebody found the actual uh uh branch for it.
Um because it's kind of like totally in stealth. Imagine they just one day shipped it by the way we rewrote it in Rust. All right. I think that's that's all I got here for the bun thing. Anything else to add or should we get on to the next one? Yeah. So, just to update people, what we're doing here is we each brought a link to share. We each brought either a project, a post, or some bit of news to share. We're going to be sharing those. And uh if you have something you want us to check out, drop it in the comments, drop it in the chat.
Uh we will pick an audience submission for us to look at at the end. And again, all of the links that we'll be sharing will be available on the daily.dev syntax squad if you want to make sure you get those links later. Um, this show's also it's brought to you by Sentry. So, check out Sentry. Uh, we are currently building a live streaming tool that was supposed to go live today. Uh, but sadly, I'm going to be diving into my Sentry all for the rest of today because man, trying to launch your own tool in a couple of days right before your first live stream.
Definitely obscure library no one's ever heard of. You'll be hearing about it after today, so it won't be that obscure. Wes, yeah, to totally relevant. I'll add a few more things. Um, we're going to be live in person at Amsterdam uh JS Nation. JSNation Amsterdam. Yeah. So, jstation.com, you can get your tickets. The art the show that we're going to be doing is going to be free right before it, but if you're already attending the conference, we'd love to see you there. It's going to be on June 10th. We're working out the details, but be on the lookout for for links to RSVP.
It'll be at syntax.fmmeup to RSVP to it. Uh, it's not redirecting yet, but it probably will later today. Nice. Yes. And yes, and shout out to all the people watching live, too. I see a few a few familiar faces, but people also asking like, "Why haven't I been here before?" This is the first one. This is our first weekly stream. We're going to try to do it every Monday in the same way. So, thank you all for being here. Yeah, and we have a really interesting kind of bespoke setup here. So, if things are uh a little rocky, we're all still getting used to it.
So, uh man, we'll have to go in depth on what we end up doing for this because beyond just like the web tech that we're using, I think there's a lot of really fascinating things about the overlays in HTML, CSS, JavaScript are the the coolest part. The coolest part that no one is seeing currently. Yeah, just you wait. Yeah, wait just a second though. I think we can do Can't we do this? Yeah. See, there we have this overlay at least. Let's show the folks the broken one. It's pretty good. The one that says F.
Oh, there we go. Um, the ticker for some reason is having old data in it and we cannot figure out how to clear OBS's data cache for this browser. Makes no sense though. That's really cool though. Beautiful. And it's also it's buttery smooth. Like I was I was uh frames per second measuring it earlier today and it was at like like I was getting 120 frames a second on my MacBook. That's some good FPS right there. All right, CJ. What do you got? What do I got? Um a thing. Here we go. Just a second.
Or like we're in a work meeting. Can everyone see my screen? Yes. I'm talking about Remix 3. So, um I'll give you a little bit of backstory. You can look at their really cool landing page. Um and uh a AI is involved here as well, which which we'll get to. But, uh Remix, it was it is a full stack framework and uh the history of it is a weird and rocky one, right? You might have remember. It came out kind of as a competitor to Nex.js. um and is also like the full stack framework or was the full stack framework version of React Router, but then eventually Remix.run just became React Router.
So now if you're using React Router version 7, you're kind of using the lineage of Remix. But now Remix version 3, which was announced about a year ago, is a complete rewrite and they forked React or like they're I don't know the details completely. Feel free to chime in if you do, but they uh are not using React. It's their own version of it. I don't know if they forked it or they wrote it completely from scratch. Maybe they react. No, it's totally from scratch. It's the only thing that is the same as React is the fact that it uses JSX as the templating language.
But other than that, it's it's I wouldn't I wouldn't even use React in the same sentence as this. It's more of vanillajs framework. Yeah. And that's for me I'm trying to wrap my mind around it. So, first of all, they have a really cool landing page, which I'll show you. That's that's fun to look at. And then I I I built a site with it, which I'll show you. And like they're it feels like they're pushing you towards to just use AI to build with it because this is the age of AI. But what if I don't want to use AI?
What if I want to read the docs? I don't know. We'll get into that. Um their site super cool. Um I don't know how well it's coming across in terms of like FPS on stream because this is probably going to be like kill the bit rate. Like it looks good on stream. Yeah, it looks good on stream. In our backend tool, it does not look good. It looks like one FPS here. So, but I'm watching on YouTube. It looks pretty good. Yeah. So, they have a whole blog post about the the rebrand. Um, and so Tim Corino is the staff product designer and they kind of talked about the the lineage.
They shared some screenshots of their Figma files. Um, and the whole idea is like Remix is fast and and what one thing I really like is they came up with branding for all of the internal components, right? They have like this O logo and routing logo and data toolkit logo. Like all of these are custom designed by their design team um for all the internal components. And as you scroll the site, you get a new uh it's based on 3JS, a 3.js render. This is kind of like a model car kit parts thingy. Kind of interactive with the mouse.
It's super cool. Um and in terms of the the code itself, so yeah, no React. If you were to write this same component in React, you would probably have like an on click. you maybe have like a use effect or something like that or a use callback. They have this new prop called mix and this is where you can add styles but you can also add like custom events on elements. So this basically says like when this button is clicked copy to the clipboard. Um and then handle.update update I think is like their internal um uh state management uh type of thing or like not state management like you know keeps everything in sync their runtime of sorts.
Um so so you're going to see that handle.update in a few different places. Mix is interesting. I don't what what exactly is is mix doing here? Let's um you can pass multiple things. So in the example site that I wrote it the AI I didn't write the code. AI wrote the code and it's just passing in CSS styles to Mix. But I I mean I think we'd have to dive into like their docs and then there's like Remix UI. Yeah. And then I think the idea with mix is that it is is very composable. Uh, meaning that like it like with with React, if you want if you have like a hook that does something and then you want that hook functionality, but you you want to like extend it, it's it's kind of tricky, right?
You can put the hook in another hook, but it's kind of like a like a bit of a black box um to to edit that. the the whole a big one of the big ideas behind Remix is that you can add a whole bunch of stuff and sort of compose it into what you want, which is makes a lot of sense because like like Ryan and Michael were the guys that um brought us this whole idea of high order functions or composable components in React. Um and now they're sort of bringing that to us with just simply regular as functions in uh in this mix thing.
I didn't see that this included styles mixed in on the same thing as well. Well, you have access to the DOM node. It seems like, you know, it kind of reminds me of like spelt attach. I don't know if uh if it is just at a glance here where you have access to that DOM node. Am I crazy or are the remix docs not searchable? I'm trying to search these docs and I'm going to find the search box. I am going to get into that because I actually think they don't want you to look at the docs.
I think they I want to look at the docs. Me too. But I but I it's I will say this if any Remix person is watching, my initial impressions are I can't read the docs. I just have to ask AI and it will find it in the docs or it'll find it in the agent files. Um but I think like in that's also one of the things that they're leaning into is like in the age of everything being written by AI. Um they they're shipping with agent files and skills that basically will um tell AI how to work with this framework.
Um so that's a thing. But if I want to know what the heck Mix is beyond their flashy uh entry page here and I go to docs and I can't search for mix to see what the heck it is, how am I going to properly prompt my AI unless I'm passing in AI and being like you're not part of that. That's tell me how to use this. Let me spend some tokens. Tell me how to use this. Like I got eyes. I can read. So I am talking to Claude now and I'm going to ask it what the mix prop is in Remix 3 beta this codebase.
So let's let's get into the code a little bit because one of the things about the generated app is um it creates this agents file aagents.mmd. Yeah and then it also creates this aagents folder. But one thing you'll know is anthropic has not bought into agents yet. They want it to be called claude and like claude. Yeah. So I forgot about that and I'm using Claude to prompt it and it like couldn't find those things. U but eventually I uh eventually got it to look in the right spot. Yeah, your Claude file should only say please look at agents.md.
Yeah. So Claude is telling me uh mix is a JSX prop that applies styles created by CSS. So what's funny is it didn't read the docs. It just looked at the codebase and my codebase only applies styles. So this is actually wrong. So I think I think there there there needs some work needs to be done. I think um um there the because right now the docs website also is just API docs, right? I keep losing it. Here it is. Um it's not a guide. It doesn't tell you how to build an app or like how to assemble these things.
It's the API documentation for all of the internal components um that they wrote. So they have like an O component. They have a database component. Um they've got things for serverside requests and sessions. And then they have like a whole UI library as well. Um, but yeah, I will say this is beta. It's early days. Um, it's likely that better docs and searchability and things like that are coming. So yeah. Yeah, just give me a freaking search bar. That's it. That's all I ask for a search bar. The humans can skills. Or if you're expecting AI for this, then put an AI search, you know, AI doc thing.
I always like it when uh when apps have an AI docs. Oh, yeah. Sorry, someone's asking for a peace sign. Here's a peace sign. This is live, folks. Um, I always I always like a little AI search docs thing, you know, especially when the the text search isn't working as I'm expecting it. So, I don't know. Yeah, just give me at least that. Come on. But I have to show you something cool on the site. Um, if you do the Konami code. So, up down left right left right ba start, we get rainbow mode. Okay.
They could have spent the time they did to make this to put a search box in the docs. Yeah, that's our main feedback is search box. Okay, but um I'm almost done. I'll show you what I built. So, I I rebuilt a Hacker News client because I built this this same thing with SolidJS and with Nex.js to kind of compare them. And like I I like I said, I'm still wrapping my head around this framework because it's not it's nothing that I'm used to. But one thing I will say is it's no data is transferred like at all.
totally 188 kilobytes for an entire page load. And then as I navigate around the site, um there might be a a few extra downloads, but most of that is just the data itself, like the comments and the list of things like it's it just doesn't use that much data. So that's the one cool thing about it. The other thing is there's no it doesn't it's not based on V. There's no build process. Like when you deploy this, you just set node env to production and point a node server at it. There's no bundled files. Um the the production server just runs on top of your exact source code.
So like that's another cool aspect of it. Um I like that it's so DOM based. I I I feel like we're returning to the DOM here and I I love that. So yeah. Yeah. There's that's I think that's why AI is so good at it is because it's entirely DOM based. Um, variables are like state is simply just variables. Um, one thing I don't like is that you you have to manually render the updates yourself. So, you have to you have to run that what was it? Handler.update function to actually rerender it. Um, but I don't know.
I guess you could hook that up to like a like a watcher or signal or something like that and and and then just programmatically run the update when some values are done. I was I was at I just got went and got my remix CD. I was at the like remix announcement and I was I'm a big fan of it. We did a show of it. It makes a lot of sense. Like I feel like I after even just after spending like 10 minutes looking at the skills, not the docs because there are none. Um I feel like I could probably jump in and and build this.
I think the whole idea with the mix is that they're they're mixins. um very similar to the very first React do days where we had like react.createclass create class. Um, and those mix-ins can do things like uh add event listeners, listen for mount, listen for update, listen for unmount, right? We had component did update, component did mount. Um, and like that feels just like attached to me or the uh in spel there's attach. It used to be use uh west you remember use where you can basically add custom directives. That's really what it feels like to me.
I like it. Um I do like that they have an emphasis on UI patterns too baked in like cooked in UI thing. So um I I feel like that is the direction we all need to be moving the the like this. So the obviously this is like a JavaScript framework itself. Um but the last I heard the idea was that they would also have database off um UI components UI components that look good like basically the whole shebang. Is that what this has now with shipping? It does. I haven't played around with that. So, this Hacker News clone is purely talking to a Hacker News API.
I don't have a database of my own, but if you look in their docs, oh yeah, they have sections for it. And actually, one thing I'll show you in terms of docs is if you look at the agents files. So, these skill files with references talk about each these were the doc like I read these. I'm a human and I read these markdown files. Um because if you look at like data and validation um they uh it kind of looks like they reimplemented drizzle. So you you import table and column from remix/data table. This looks a whole lot like drizzle.
We're very familiar with this. And then same thing for um uh like connecting to the database. You have your your raw driver and then you pass that in to create database from remix data table. Um in terms of validation they reimplemented ZOD. So there is a uh email min length max length from remix data schema. And um again this was like a ZOD object. So I don't know how I feel about that. Like both this one MD file shows it like if I were building this app I would just use Zod and Drizzle because at this point they're pretty battle tested.
Uh but I'm sure they have the reasons. I think when you own the stack in this way, there's a lot more you can do in terms of like uh invalidation of data like automatically like if it knows about the data model, it's possible that like when going to the after you create something with a post request, it can automatically potentially uh invalidate that on the client because it's so intertwined. I don't know if it does that, but I could imagine it could do that because it's in control of everything. Um, so yeah, they have that.
They have off uh sessions. Yes, man. So, I think it was last year one of our predictions for Remix. I had two predictions. One was that they were going to build something that was like an AI first framework. And obviously, I think I think I nailed that. And the other one was that this is for Shopify because Shopify's got to be looking at the looking at uh like this programmatic web and like people want to like vibe stores, right? Or vibe software that can can sell stuff and I don't know if that is is entirely it.
I don't know if they're intentionally making this for Shopify, but certainly something with that is very vanilla JavaScript heavy is not reliant on other external packages and is a small enough surface area that will fit into like the context of an LLM and it can kick out stuff without having previous training on it. I think they they probably nailed that. I'm curious to see like who and what type of apps are start to be built with this. Yeah. And that's that's kind of where I'm at right now is like I'm I'm seeing the vision but I'm trying to understand it myself and because like as a developer I have to change the way I think about building an app entirely, right?
Like I'm not at least like as a JavaScript developer, I'm not building my stack from scratch. I'm not choosing all the libraries. I have to learn the ones that they want me to use. Um we don't have React on the front end anymore. So like there there's a lot to take in as a developer. But I think the using AI will help with that because AI is going to be writing most of the code, I guess, is is their intention. So yeah, I'm curious to see where this goes. Definitely. Yeah. Uh that Yeah, it's super interesting.
It's one of those things that I would love to dive into and have some time on. And it's just it almost feels like I just never have a free minute to check it out. That's like the the one thing that it's like it just keeps getting pushed down on my list of things specifically because it is a new framework and that that does take a bit more buy in I think than like thrown in a library somewhere or something. There's there's just so much stuff being released literally every single day and like right now like attention is what everybody wants.
Like that's why I get emails like six times a day from people offering me money to post about their thing. Oh, and I won't do it for everyone listening, but like everybody is building amazing stuff and nobody can get anybody to care because it's just attention is uh is so spread so spread thin right now. Yeah, I know. It's it's it is crazy. I the amount of emails I deleted today for AI tools that I'm probably never going to hear about ever again. Uh post that that email that I got. It's crazy. Yeah. Nice. That's all I got.
I've been talking too long. I got more code to show, but I think we can move on. All right. Okay. Yeah. Yeah. Sick. Cool. Well, again, folks, if you're just joining us, this is Syntax Weekly. We're going to be doing this weekly where we each share items, blog posts, tools, libraries, all kinds of stuff, stuff that we like, stuff that we're interested in. We're going to chat about it. Also, drop something that you want to hear us talk about down below in the chat and we will get to a user submitted link if we have one available.
Yeah. And this is live right now. It's happening. We're here. It's live. It's happening. We're available. Yes. Yeah. Um, subscri subscribe on YouTube if you haven't. Um, and like this video. We would appreciate that. Um, also mention we're going to be live in Amsterdam. So, if you go to jsnation.com, um, you can get tickets for JSNation, but we'll be live the day before JSNation. All three of us will be there in person. We'll do a live show. We'll have time to hang out. Free merch. It's going to be a good time. Yes, absolutely. Cool. Uh well, I guess I can get into it, guys, if you want me to uh to get ripping on mine.
Let's do it. Okay, let's do it. All right, let's share this bad boy. Oh, and uh we're going to be posting our links on the syntax daily dev uh squad here. So, we will have our links available here. That way, you can check out whatever we're talking about during our live show. So my link today is maybe predictable. It's a local first platform. Uh I love myself a local first platform, local data. Um not only that, uh sync engine, those types of things as well within my wheelhouse. And this one is Jazz at jazz.tools. And this thing rips.
Okay, so they're in alpha. This is the V2 for alpha. So, if you're into trying alpha software, this is uh you know I am uh this is something to to check out. I think this Jazz Tools nailed it. Uh so, for those of you who haven't been up on local first software or anything like that, a lot of these tools, they either require a lot of buy in and then uh host everything on their own servers or uh maybe they're too complex. Uh, I have a theory about local first software and that it's the problems that you're solving with a lot of this stuff are so complex and you have to be so smart to solve them that the people who put out the products aren't dumb enough to realize what the dumb people hit when they use them.
And then therefore everything feels like h this is too complex or this is too this isn't there there's too many edges, right? there's too many individual services. Um, and like one of the things I really liked about Zero, which is the uh sync platform that I like, is that you can have uh your own database, you have your sync layer, and then you have your site. The problem is is that you end up now you got to now I got to put three services somewhere. Now I got to worry about three three separate things. Now I got to um handle all the state changes between that.
Um, now I'm, you know, writing the code essentially that updates the server side and the client side when in reality I want something a little bit more like Firebase perhaps or uh things that feel a little bit more RPC like in that way, but Jazz really nailed a lot of those things. And by having the sync, the server, everything just kind of wrap up in a nice little package here. Um, like for instance, a nice small quality of light thing. You start a Jazz site and you don't specify a server address. It just spins one up for you and connects it.
Um, or it sets it to an ENV variable that will connect it. If you want to run it on your own, you can just run it on your own. You want to run it in the cloud, you can run it in their their cloud if you want. So, uh, they make it really easy to get going. Um, it's again bringing me back to the dream of Meteor that like it just works when you start it. Um, okay. Can I can I ask a question before you keep going because I'm I'm having a hard time understanding where this fits in and like what it is.
Is this a database? Is this a JavaScript library? Where where along the local first buy in is this thing? It's a database that syncs. It's the database that syncs. Um, it uses SQLite as the the database and it it's your OM, it's your sync layer, okay, it's it's the database, it's all of that stuff. And uh what's cool about jazz specifically that um other maybe libraries don't think about is that this is very true to real local first. So if you wanted to have only local data, no cloud sync, nothing, just only local, very possible.
You want to have local data, but then when you sign up for an account, it syncs that account information to the cloud. Super easy. Uh so it it really does feel like that dream of actual local first software is very attainable with this and it works well with just about all this stuff. There is no Vue.js JS library, but there is um works easily. Well, it says it works well with Vue and whatever, but if you go to the client Oh, no. I guess there is a Vue library. Maybe I didn't see this. Can I just pause?
Just technical tech. Okay. Okay. Technical. We couldn't see your screen until just now. Oh, okay. No, it's all good. My bad on that, folks. Uh there was a lot of stuff I was talking about that was on screen, like it's saying it's the database that syncs. Okay, good. cuz I was kind of like that's why I was asking what the hell is this Scott? Ah, it's all right. It's all good. Okay, so it works nicely. Really nice API. Um, you know, you just basically give it a provider. Uh, and you know, again, they have a uh an adapter for spelt view expo even.
So, it works well with React Native or just straight up TypeScript. You get super easy subscriptions. You can even control down to uh when you're like reading or writing data like do I want to wait for this to hit local? Do I want to wait for this to hit edge? Do I want to wait for this to hit the global database uh before resolving that promise? So you have a lot of control over all of that. The server is super easy to run. You're just running um you're either connecting to their cloud server or you're just running uh just straight up in node.
Super easy. Um, as far as concept goes, I mean, it's just straight up normal standard schema stuff. Uh, you write your schemas. There you go. You got migrations baked in here and, uh, you validate your schemas and and then from there it it's like, like I said, it feels like the dream of Meteor in many ways to me where you are just to and effect. Actually, let me show some real code. Um, this is permissions code. Okay, let's show. So, this is a fairly complex query with several reverse relations. So, nested and reverse relation. So, I'm saying, hey, give me the shows where the status is live.
Order them by when it starts at Oh, and include the this is a reverse relation uh ticker messages via show. Give me a reverse relationship of audience submissions via show. And of course, that is also going to have a reverse relation inside of it as well. And so again, this loads your local data super duper fast. Uh it will hit the edge. This tier global means it's going to wait for it to hit the network. And uh it's super cool. And uh yeah, I I really really like working in this. Another neat thing that I like about it is that they have docs for a permissions.
Whether that is just straight up only local first off or working with something like better o or a third party library. They have I believe it's uh is it work OS and better off are the two they have examples of um the better off one is just a like a better off plugin that connects in here and then spits out a better off schema. You can use better off you can use your oath all that stuff and it just works. Um it's really really good. Um I one thing I really like about this is that they've taken a lot of like Rails like ideas where uh it it just it there's magic in here.
Uh and and some people might not like magic, but there's enough of like magical little things in here. Like for instance, this ticker message messages via show this uh object property is created simply by having a schema that has a reference. So active lower, let's find a good one. Okay, so the show host table has a show host ref and then therefore I can then access the show host if I query the the show table show host via show like that is all generated just based on the fact that this is a show id with a reference of shows.
So really slick developer experience like really slick developer experience can you talk a bit? Yeah go sorry go ahead. Well I was I'm curious about the just the data store itself. So like this is running on a server somewhere to run the sync server and I guess you have a are you using SQLite or do you have an option to choose what your actual data store that it's syncing with is? Yeah data store SQLite. Uh I don't you don't have an option to choose uh but you can see there's an inspector here. So this is like the the live data.
Um so uh yeah you can you can access this data when it's running locally. Again it's just storing that you can change the storage location if you want or whatever or you can just use their default one which is living in a cache folder that you could nuke anytime you want. But it's a it's SQLite so you can just access it uh very easily. So like where are you hosting the sync server then? I'm ho the one that I am for this site the the live tools site I'm hosting that on their own server so their cloud server okay so they have a cloud server platform that's really easy you just connect to it or but you should be able to like it looks like it the sync layer is a rust binary that you can run via pmpnpm like node so you should be able to host run via pmpnpm like and it would have to be a longunning server, right?
Like not this wouldn't be in serverless functions, would it? Yeah, I think in general sync servers are always going to be longunning. Um I don't I don't know specifically if if that's possible or doable without it, but I would almost always run in a longunning host. But yeah, super easy. Yeah, you just run it via npx and it's up. which you probably could get this running in like a durable object um on Cloudflare, but I'm curious what the price of that would be to have it just running all the time or at least when it's needed.
Yeah. Yeah. I I don't know. This is the type of thing that'd be uh easy to host on something like Railway or any place that has straight up normal node hosting or anything like that if that's for your sync layer in your database. Or you can again just uh if you want to pay use their cloud platform is nice. Uh if you don't yeah then you can host it yourself relatively easy. I I found it to be really nice and and honestly I think uh one of the things I nailed in this is giving you control where you need it like for instance getting to choose when you're waiting on that data or or those type of things or even like permissions and that you get you get all the control you need but to get up and running it's like really really easy and minimal code really honestly it feels it feels like that that whole only give me what I need when I need it kind of thing.
Mhm. Yeah, I like it a lot. Can you I mean I I'm curious to see it compared to things. So you recently uh have done a lot of work with zero not zero config but like zero the other sync framework. Um and we we I see a chat mentioning can you compare it to convex? I don't know if you use convex but how would you say does it compare to some of these other sync tools or like full stack data type tools? Yeah. So, uh, comparison. So, okay. So, let's talk about Convex. So, Convex, they had a whole big blog post about how they were going local first and all this stuff and then they never did it.
Uh, and then I I like pinged them on their Discord a few months ago. It's like, hey, is this local first product ever coming out? And, uh, it didn't. And so, they've kind of, as far as I know, they have shifted away from wanting to do that. This does take a lot of lessons from Convex. Um, there are some things though I didn't necessarily love about Convex, uh, like the development flow of it personally, but the UI or the not the UI, the developer experience for fetching your data and off and those types of things feels very convex like.
I personally like this better because I like the local data piece. Um, and to me like con convex doesn't have enough of a cell for me. Um, like why would I pick up convex over something else where this does have that unique value proposition? Nice. And but similar de developer experience like strategies, right? They want these things to feel good like that. Nice. But I guess also compared to zero because the whole uh MAD CSS challenge platform was built with zero, right? Could you see yourself using Jazz to build the same thing? Yes, I could see Jazz to build the same thing.
The uh because they they really fit the uh the same the same niche in in that way. The thing that I liked about Zero and still like about Zero is that it can connect to any Postgress database. And if you are like you have a site is Postgress and you want to throw zero on top of it that's something you couldn't do with jazz right but if I'm building something from scratch then this scratches that same itch so to say uh and it just it's it's a little bit less effort um to do the same kind of thing.
So I could absolutely see the mad CSS stuff being built in this. Yeah. No, no, no weirdness there or issues there. Nice. Yeah, I I kind of like it's it's it's tricky because like you kind of just want to get it up and running right away and you want it to be a little bit more batteries included in in some cases, but then like other cases you do want to bring your own or um you may have an existing database. You may want to use Drizzle, right? Yeah. Yeah, I mean honestly this I I don't I I wouldn't need to use Drizzle with this because there's migrations baked in, the schema is baked in, the queries are baked in.
There's like nothing that I would need Drizzle for here. And the thing I like about that is it's one less piece that I have to manage, right? I don't have to manage my Postgress database. I don't have to manage a separate sync server. I don't have to manage an OM and an O library. I just have Jazz, my UI, and my O library if I want. And can you can you use Jazz on the server? Like this seems like like a real time client side thing. Oh, buddy. Yeah, so you can absolutely use it on the server.
Yeah, you can just you uh in fact that's how the O stuff works Wes is that I have essentially a server side route in my Saltkit app that is writing to the same database. So Okay. Okay. So if you wanted to query something just as a regular ass database, you know, no local first, no syncing, no websockets, just want to list things out, you have access. And even by default the uh the queries aren't reactive or subscriptions. You have to use the subscription to get you got to opt into that when you need it. Yeah.
You opt in the reactive data. Yeah. The um and I like I said like yeah this if you were to just do this the DB uh wear whatever like that is a non-reactive query. Um and then there's subscriptions if you want them. And then each of the different libraries whether this view spelt react whatever have their own like the react version of that is use all to do a subscription. The spelt is to use a new query subscription and the view version is also just a use all. Um so really nice ut yeah jazz tools.
Man, I I've been really uh this is the second thing jazzed. I'm jazzed on it. This is the second thing I've built with Jazz. Uh the first thing I built was our user studies website that we did for our date pickers video. So, uh I got I got two sites down with Jazz and I'm I'm I'm feeling jazzy for sure. Sick. Cool. You guys can sing earlier. Oh, you're doing jazz hands. Okay. I was Uh, do we have any any submissions, any user submissions? Is there anything you all would like us to check out? We have some stuff going on in the chat, but is there anything anyone would have like us to check out on this stream?
They can't. Yes, you can't you can't share links on YouTube, but if you just type the thing, we'll look it up. Like I'll mention earlier, someone uh said hono inertia. We could talk about that. I don't know if you guys have have heard of that. Um, someone's asking about the fluent agent harness. Not sure what that is. Um, actually, one cool thing that Jazz would I'm I'm sure actually I think Scott's already working on this is that it would be cool to have like a syntax autofam/submit. Um, and you could just pop your link in there and they would, you're working on that, right, Scott?
It exists. You can vote. Uh, but we are having some issues with the overlay. So people will be able to vote easily on what they want to see. Uh and we even have like a little overlay. Perfect use case for like real time OM database like this. Yeah, totally. Yes. Um cool. What else? How about we uh Yeah. So let let's uh what's the word? Rapid open source. Yeah, rapid fire. Um I'm going to pull up a few tabs and then I'll share my screen. Um okay. Fluid agent harness is not pulling up anything useful to me.
fluid. That's what it's called. They they shared a link. Flu. F lu E. Flu framework. Flu. Oh, okay. The agent harness framework. Uh, this is, I believe, from is this from uh Fred? Who's this from? Yeah. From Astro team, I think. So, Okay. So, I'm sharing my screen. Um, I don't know much about Zed, but you have used Zed, right, Scott? Are you still using Zed? I use Zed a lot. Yeah. Oh, they just reached 1.0. Yeah, I like Zed a lot. Zed is great. Uh, and there are things I love about Zed and things I like less about Zed.
For instance, the like autocomplete order. If you're doing like emit does their choice of the CSS property before the emit completion. So I f like especially for mad CSS I found myself autocompleting a lot of things um poorly. The developer extension thing submitting and updating your extensions is all done through GitHub uh subreos and stuff and I found that to be a pain in the butt. Uh, but the app itself is it it runs really smooth. And if you're looking for an editor that doesn't use up as much CPU, Zed is certainly that I I really like the way it looks and I like the way it feels and I can configure it to be as good as VS Code.
But I will say I have been using VS Code again as my primary text editor lately. So, um I think when mad CSS happened and I got I frustrated with that CSS property stuff, I just went back to VS Code and I've kind of stuck there. But that's kind of how I operate. Anyways, you know, one thing in VS Code is the highlighting of nested CSS has not been a thing for like it's been broken and like kind of half done for years and I've been shephering it. We donated to people who could work on it.
Um, and it finally was merged. So, I we'll probably see nested CSS syntax highlighting in VS Code in the next probably month or so. I am so excited. I've It's been I've been like working on that issue. Been like any updates? What's going on? Pinging the people making some noise about it for like two years. Yeah. So, for instance, here I opened up Zed and I typed in MB for people who uh use EMTT. That would typically be a margin bottom, but margin bottom is like the 10th thing on the list of autocompletes. Uh the first one it chooses to do is mix blend mode.
Like, okay, how often am I using mix blend mode compared to margin bottom? So, uh I would love for them to figure that part of it out. But that is a a great editor and like I said, I really like the UI. Uh cool things about this is it's built in um what what is their GPUi? GPUi which is a rust framework for doing uh GPU based uh UIs. So it doesn't use web tech for UIs. It uses Rust and I have found that to be very nice. I was looking into this. I was building a Rust based desktop app.
I used a thing called euey but you turned me onto this GPU u GPUi which is their framework for that they built for so that they could build zed. Yeah. The zed folks are also really sharp too. a really great uh team of devs over there. So, I I have faith that this thing is just going to continue to get better and again I I do really like it. Maybe I'll get back into using it. Yeah, I'll give it a try. It's one point. Let's talk about warp is now open source. So, warp famously the like terminal that is was very good experience and it got some like hate cuz you had to sign in early on and unfortunately I don't think they've shaken that thing and and I remember talking to Zach like probably like a year ago and he's like I think the terminal is going to be the place where we like work with agents you know like I don't think we need to be an editor IDE And I was just like, "No chance." Like there's no chance that you're going to move out of the editor.
Um, and like he called it, man. Like everybody's working in these tools that are not idees anymore. And and Warp's kind of gone in that direction of trying to like force it into being not just a terminal, but like an agent agentic experience. You know, you can use cloud code with it. They have their own thing called Oz. Um, but one interesting thing they did was they've opensourced all of Warp. Um, because they're saying that like the actual writing of the code is no longer the hard part about building Warp. It's simply figuring out and writing the specifications for what should be built.
Um, and they want to open that up to the community to sort of chime in, which I absolutely love this approach because there's so many times that I'm like so into a specific part of a product and it's hard to get the people that work there to even understand or care about what it is that you're doing. And I if somebody cares so much, like the one thing I hate about Warp is the update button. It just puts this huge ugly update now button on the top right hand corner of Warp. And it drives me nuts.
And I already went in there and looked and somebody has already submitted a proposal to like change that in some way or at least be able to dismiss it. Um, and probably because they they don't necessarily care about that or like the tabs the tabs in in Warp suck. You know, the design in Warp is not very good. It's not very customizable. Um, and somebody that maybe knows what they're doing and cares enough about it can kind of sort of chime in with that. I know people are going to be asking like, oh, use like ghostt or um what what's the other one?
Wes term. Uh, I can't shake the like I love the like AI autocomplete and like the actual interface for typing inside of Warp. You know, you can use your regular keyboard shortcuts, you can click where you want it to go, you can highlight and backspace. It's like an actual text editor and and then also it will like suggest things like if you type in something incorrectly it'll be like hey do you want to run this command given the context of what folder you're in and what just happened and like all of these beautiful things. It's like autocomplete is is no longer a thing.
I want the AI ghost text that pops up. Yeah, I I I agree with you. The thing I don't like about Warp is the blocks UI. Yeah. Um, if I can you turn off the blocks UI? If I could turn that off, I would I love the blocks UI, but um, hold on. Let me see if I can blocks. Let me look. You don't have any blocks. What do you mean I don't have any blocks? Blocks. Show and jump. Show block dividers. Yeah, I don't want blocks. I want to be able to select blocks. I don't want them to exist.
Oh, I like I love the blocks because you can search inside of a block and and you can copy the output of a block. Like this is a block right here. ls-l oh people can't see what you're showing was a I shared the I think you shared your browser share entire I almost never want to search inside of a block I want to search inside of a my in term like a whole no I want to like I want to search inside of what just happened the output of whatever just happened I want to search inside it especially when you're like streaming stuff I don't want to search the last run of this.
I want to search this run if that makes sense. This thing right here, like I click on the block and it like gives me this awful color gradient on it. Like I hate that, right? Why does yours do that? Mine doesn't give a weird crazy gradient. That's probably my theme, but then my theme when you go to like build your themes, I don't even where are the themes? They're somewhere in here. Anyways, when you go and like build the theme in Warp, they give you like three or four color inputs and they try to derive the colors of the rest of it from there and it just doesn't look good.
I just want a lot more control over like the the padding. I've been been looking at um Aaron Francis's solo term, which seems seems way better. Um I think it's a fantastic little product that he's working on. So, I've been dipping in using that every now and then. Um, but the the AI autocomplete. Someone else has got to figure that out. Yeah. I think for Aaron's uh solo term was like trying to solve the uh the issue of sunscreen. Uh of agents kind of spinning up infinite dev processes and those things getting lost. I haven't I I don't know if that it has solved that issue or not, but I I thought that was enticing.
it simply the problem of and and Warp has tried to solve this with their SI site tabs is like I want one terminal tab open for my agent. I want a second one open for like my just lsing and and moving around npm installing stuff and like I just want them like linked together. Um or like I want to be able to like go back to that and have those three or four things and I want logs, you know, like this this sort of solves that and I think it's a great UI for it. Yeah.
Aaron Erin's got a good eye for this stuff. Yeah. Sick. Guys, what else do we want to talk about? Folks, we are just chatting about projects right now. We each brought three things earlier in the show that we are sharing. Now, we're just kind of uh checking out stuff that people have shared with us in the chat. Yeah. I'll also mention shout out daily.dev. I'm sharing my screen right now. This is where all the links are going to be from what we shared. So, uh, Scott talked about Wes or Scott talked about jazz earlier. You can click on that.
Wes, you need to submit your link. Um, I talked about remix. We just talked about warp. So, all of the the links are available here. Shout out daily.dev. Uh, they kind of pushed us to start live streaming. Not they didn't know that they did, but we can thank them for the fact that for the fact that we're live right now. We got our stuff in order and we're live. Um, I can talk about for some time. I can talk about Inertia and Hono. I don't know if you guys are even interested in this. I'll do a two minute spiel.
Two minute spiel. Yeah. So, um, if you're not familiar, uh, Inertia is a protocol. I I believe it's used by Laravel and a few other frameworks for how the front end can communicate with the back end. And, uh, they have a whole protocol of of like data format where you have like components and props and basically um, it's really built for back-end frameworks that aren't JS that need to communicate with the JS front end. Mhm. Uh but recently Yusuke, the creator of Hono, uh created an inertia uh middleware so that you can basically you can now have client rendered routes from your hono app.
Um so the I'll show you the example code like so you write hono code that looks like this where you specify your routes. Uh but then when you do render this uh will actually do like a client side render if this page is being visited from the client side right so the initial page load will be a server side render just like it normally would if you click between your app uh inertia is smart enough to be like oh the user's already loaded the app we're actually going to replace the sh not just replace the the center of it and do like a client side navigation so it's a way of doing a a full stack hono app where you can have client components that are hono.jsx um but you get like single page application type behavior as well and like the server will simply just figure out do I need to render the HTML or do I need to simply just send like the props that that are updating right exactly so I'll show the example site here so we visit the homepage um it has to request like home.tsx tsx and that's going to respond with like a whole like bundle and things like that.
But if we click to the users page, uh we can see this inertia request um that actually responded with this data, right? And then this data was used on the client side to then render the page. Uh but if we go directly to the user's page, um the data is embedded because that was a serverside render. So there's no extra request there or anything like that. So it basically you write code that looks like it's all SSR but then it figures out how to do single page application navigation in between. That's void is is uh going to be like this as well.
They they said um it's heavily inspired by inertia where it's all it's it's all server you know all server all time. You can opt into like doing stuff in the client, but by default it all is queried and then the the inertial like um router will simply just send the props over the wire and then update itself. And it's it's interesting how similar in some ideas this is to like remix because like Hono has had their own uh JSX runtime for a long time and so this code looks like React but it's not. It doesn't actually load React on the page.
it uh hono has their own JSX uh runtime. So um the interesting thing is like if you want to build a full stack app in this way you only have to install Hono you don't have a bunch of other dependencies. Um, I will say like you can't use things from the React ecosystem because those depend on React. But at the same time, as these things start to get built into the framework itself, maybe you don't need extra stuff. But yeah, I don't know. It's it's another approach. And yeah, I'm not sure. It's another one of those things I've never really checked out.
It's Canadian, is it? Yeah, Stony in the chat says, "The magic of Laravel finally rubbing off on the the JS ecosystem." Yeah, I know. I still in there. I do believe Adonis.js is based on top of inertia as well. Um, this is the the full stack um framework for Java. It's supposed to be like the Rails or the Laravel of JavaScript. I haven't built anything with it. I keep hearing about it though. I just never built anything with it. Yeah. Yeah. Yeah. Okay, cool. Is there anything else we want to share here, guys? I think it's all I got.
I was just thinking like like real quick like I'm pretty sure Hano has reimplemented most of the React hooks in their JSX implementation. They have. Yeah. Yeah. They have like use state and stuff. So, in in many cases, you probably could use existing um Yeah, they've right here hooks compatible with React, right? use state, use effect, use ref, use callback, use uh start transition, etc., etc. There's probably 50 of them, so it's pretty close uh implementation of React. So, especially like AI can probably write code that looks a lot like React, but it just uses the Hano implementation.
This is the one thing that has been killing me with Hano is that I always used to reach for Hano and then I needed some client side thing and then I ended up having like an API server and then another V server, you know, like and then I was running two things and then I realized ah I should probably have a framework and it just kind of got out of hand. I just want like one start command and for it to just work. So this is exactly what I've been wanting. Exactly. Yeah. Oh, I have one.
Oh, what? Go for I got one small thing uh that uh may have gone underneath the radar a little bit. Kit added live remote functions. So, they added a query.live for accessing real time data from the server. So basically uh if you haven't used spelt remote functions, you're basically writing essentially like a serverside function and then being able to use that function in your client side code very safely uh for both modifying and querying data. And with query.live you can now do real time data baked directly into spelt kit uh without having to do anything beyond having a query.live live uh on the remote function and then you import that function, you get it here and now that is a reactive data store.
Um there's even a uh reconnect property as well. So I think it really interesting that they baked this in here. Uh I don't know too how many other frameworks have a like a real-time data that's function. Oh, that's amazing really because if if you think about, oh, I want to implement live data from the server to my client, then you're looking at websockets or server sent events, which it probably uses server sent events. If I'm looking at the example here, I it doesn't say what it uses, but you have to that's like an implementation detail.
In this case, you just simply use the data. Um, you can just loop over it and uh it will be updated in real time like there. Yeah, maybe we don't need jazz Scott. Yeah, this is a different different problem that this is solving. But I I for real time data. Yeah, absolutely. Real time data this rips. And I I think what's cool about this is that for a long time people have been like build in websockets into spellkit. Build it in. And instead of just giving you like a a websocket uh URL or something like that, it's like this is such a nicer more ergonomic thing than having the user have to care about whether that is server events or websockets or whatever.
It's just query.live and then you get access to the data live. So, shout out to the spelt team for just I I feel like everything they add is like this. Um Paulo says this is also not using websocket. Paulo, tell us what it's using because I believe you worked on serent events. Likely. Well, I don't know. I mean, I'll be honest. I wasn't listening. Wes, maybe you said this, but um this is cool because I think the API itself looks cool. You don't have to worry about creating a new websocket connection or listening for events or creating a server sent event like event emitter thing like the code just like they did with remote functions.
Now you do the same thing with live data but you just yield the response. So that's that's it's just one way, right? Like this is not like a you wouldn't build a chat room in this, but this is probably for things like streaming AI completions as the thing is being um generated, then you can just kick it out the other other end, right? You want to be able to show what it is that the LLM is generating as it's being generated. You don't want to sit there and wait for it to be finished. Otherwise, it's it's annoying.
Yeah. Yeah. Pello says it's just a request. Get request, but that's that's SSSE, right? If you just leave the get request open. Yeah, it's probably not polling. Yes, it's got to be server sent events or the new I there's a proposal for like a new streaming standard as well. It could be web streams, right? Maybe. Who knows? There's lots of ways to do live stuff in the browser. What's the difference between server sent events and polling? Polling is is a like requests in in the browser are stateless or requests in HTTP are stateless, right? You send a send a request, you get a response.
You send a request, you get a response. A server sent event, you um you send a request and then you essentially are the request will tell you that it's server sent events and you can sort of like listen and get data. Um, the request stays open for as long as there are things. There's there's like a time limit. I think it's like 10 minutes or or 20 minutes or something like that, but you'll just get little pieces of data sent to you from the server as it's made available and as it's sent off from the server.
And then like a websocket's a little bit different where that would be like a two-way street where data can be sent back and forth. Two-way street. Yes. All right, folks. Anything else before we get out of here? I have a bunch of stuff to share before we get out of here. Um like if if you want to pull up my screen share, Randy. Also, shout out to Randy who's been scene switching this whole time. You guys have been enjoying the fruits of his labor. Um but yeah, check out daily.dev. We super appreciate them for uh pushing us to go live stream.
All the links we shared today are going to be in our syntax squad. So definitely join the syntax squad as well. I'll share the link in the chat. uh you're watch if you're watching on YouTube and you're not subscribed. Please subscribe. We release two podcasts a week. Uh videos every Friday. I release videos every now and then as well. Watch us on YouTube. Uh when you're done watching this, go listen to Syntax. We have recent episodes syntax. Go listen to Syntax. And if you want to see us in person, head to jsnation.com. We're doing a live event on June 10th, so the day before JSNation.
Um but they're helping us out. It's going to be in the area where you pick up your badge. Uh, but a full live show. We'll all be there in person. We'd love to meet you. We'll have like a networking thing and like free swag and stuff like that. It'll be great. Anything else we should shout out or say while we have everyone's attention? That's it. Peace. That's it. Later, guys.
More from Syntax
Get daily recaps from
Syntax
AI-powered summaries delivered to your inbox. Save hours every week while staying fully informed.









