Svelte Radio

Summary:
In this episode we sit down with Matias (patakdev) and Pete (pngwn) to talk about how Vite evolved into a framework agnostic build tool and what it has planned for the future.

Recorded on June 28th, 2024

Discussion:
  • Building and maintaining Vite
  • Vite vs Snowpack
  • Speeding up Vite with Rolldown
  • Vite's new Environment API
    • utilizing serverless APIs (Cloudflare D1, Key value etc.)
    • Rich Harris: Electron/Tauri
    • native mobile platforms?
  • ViteConf 2024 on October 3
Picks
  • Kevin: Sugar (TV show on Apple TV),
  • Pete (pngwn): Local first development story
  • Matias (patak): Svelte/Kit Tutorial, TutorialKit

Creators & Guests

Host
Kevin A. K.
Co-founder of Svelte Society 🌎 Organizer of Svelte Summit 🏔 Host of Svelte Radio 📻
Guest
Matias Capeletto (patak)
ViteJS core team
Guest
Pete (pngwn)
Svelte maintainer

What is Svelte Radio?

Things about Svelte. Sometimes weekly, sometimes not.

ready all right all right everyone welcome to another episode of Svelte

radio we're back it's it's actually the first in-person interview ever so with

that said I I'd like to welcome penguin Svelte maintainer would you like to say

some some words I am a penguin on the internet I maintainer of Svelte a

maintainer of Gradio and I am here in person with Kevin yeah very nice we're in

Budapest it's a we're at JSConf and it's great but we are very excited to have a

very nice guest here today it's patak dev on Twitter but that's not your real

name is it no I'm Mattias Capetto and yeah really really nice to be here and

in the first ever in person and yeah I'm a maintainer of beat and I work at

Staglitz where I get to do full-time open source I have been doing this for

like two years and a little bit more now I'm really excited to talk with you too

yeah very excited to have you on so you're pretty well known now in the in

the JavaScript ecosystem especially with V pretty much blowing up becoming like

the de facto thing in in the JavaScript ecosystem right so maybe maybe you can

tell us a bit about your background where what where did you start off as a

developer yeah I see my cat is known I can confirm you are not a cat yeah so I

started a long long time ago I study electronic engineer and my first open

source stuff was doing C++ like in like both libraries kind of thing very

different to the kind of collaboration we have between like all the frameworks

and everything now it was very like solo thing so and yeah like there was a lot

of water under the bridge but in the bus I think it's like three years already

since v2 I started to get into the game of doing open source again and beat was

just at the point where there was a lot to do and I got involved there in the

early community and once Evan created the big team because he needed to

refocus on on view I was one of the first that were doing things there so I

started being a team member and like trying to build up the team and helping

with the community and yeah that's kind of like the like how the origin story

she kind of like how I got to also known all of you because like in like the

origins of it is kind of like very tied to this well project also right yeah and

before we go into that maybe maybe we can tell people what V it is that's

that's a good question so at the beginning ever and you has a very hard

time describing what is what is beat but and his way to describe it is like go

test it go to beat the new in your browser you know they can start with

will open up and you just see HMR working for example and like you feel

the difference but it is a build tool and normally when like okay for you that

do as well normally you know that the browser doesn't run it but it's about

straight like you need there's a compiler yeah you need that a tool in

the middle that will compile all your as well as well files I share it a nice

bundle that you can put in the browser and yeah beat it's kind of like setting

an API for framework outdoors like I see our users are mainly frameworks like as

well right so like it says in like a good API and choosing what are the best

tools at any time to be able to do this the process of generating like a good

production app and give you the best experience during development and we

can't we can't like withhold more load so we in particular choose roll up

during build that that is another tie into the sound too rich yeah to reach

that started the raw project and then later on Lucas maintained now and yeah

we choose roll up even if it is JavaScript and not like rust or 90 of a

speed but that was the best most mature project at the time and it was extremely

flexible and during that time we have like a compatibility like playing

container that let us you're right you're plugging in in the same API during

dev and build and we use yes build where like a speed really matters that it's a

bundler right I mean go like it comes transpiler where I wait ice cream for

example very fast right so like yeah we use that tools and in and provide kind

of the best experience we can yep so so you mentioned like your your users are

the frameworks themselves so I it feels like to me as I'm not an expert on V I'm

not an expert on like the internals of svelte but it feels or any of any other

framework for that matter I I just used the frameworks but it feels like worst

every every modern framework is kind of using V it's it's really been like

growing fast and everyone is seems to be excited about it but so the the origin

stories of V like Evan you made it and then you said you joined you found it

kind of early was that it during like the version 1 or was it pre version 1 or

yeah so the reason is like this was 20 20 April 20 even like uploaded the first

bright ball wait it's not it's not older than than 20 20 or 20 20 years ago wow I

thought it was older like it feels it feels like it's been here been around

forever no no it was really fast the adoption right and so even during the

initial year that was like bit one as well as well it was already kind of

working on the replacement of supper like so yeah you were working on as well

get at that point and you choose snowpack to to do that like you can tell

maybe a little bit of that time yeah so it was kind of an interesting time when

all of these kind of new bundle tools were starting to offer kind of like this

improved development experience but obviously like you say you know it was

in its infancy it's kind of you know it's hard to think now it's felt it has

actually been in development for several years now it was a long time before

there was any kind of release after announcing it but that time for bundlers

was you know it was a period of there was a lot of change there was a lot of

experimentation there was you know obviously we think now of you know feet

is really the only survivor but even at the time there was talk of then you know

there was snowpack in the beginning but even I think Parcel had a version that

kind of and there was talk of will that become the standard so there was a whole

conversation around this we initially chose snowpack because I think snowpack

was kind of framework agnostic before feet but then when you know the all of

the the roadmap I guess for feet to came out then it was like well we very much

kind of took a very intentional position of we are you know bundle agnostic and

then whichever one wins or which whichever one the community gets behind

whichever one the ecosystem kind of chooses we will kind of like move those

you know we'll move to that one which was why you know initially we didn't

expose the you know the bundle API as part of our API obviously that's changed

now now that kind of spelt kit is basically just a plug-in for beat but at

one point we wanted the flexibility to kind of to shift internally because

things were changing kind of so dramatically but I think it was you know

that that that decision to make beats not a view specific tool which is how it

started and then make it completely framework agnostic in in version two

which has unlocked all of these kind of use cases both you know in terms of

spelt cut obviously but even you know I started using it at work for I think it

was preact at first and stuff and for my own kind of our own custom architecture

that wasn't really possible in v1 so it was really that kind of watershed moment

with kind of v2 and I guess the assembly of the team as well it kind of felt like

a it wasn't you know Evans baby anymore it kind of felt like a legitimate kind

of cross framework platform with a genuine kind of desire to be cross

platform I guess at the time it's worth mentioning like WMR which was also

around the same time similar ideas around performance although obviously a

dramatically different kind of take but that was another thing that we kind of

thought of at the time it's like could you know is WMR kind of you know gonna

be useful is so it was you know just it's actually kind of first time I've

really looked back properly on that time but it was like a lot of stuff was

happening in there and there was a lot of churn when it came to bundlers but

now you know obviously gradually the whole ecosystem has moved you know to

veet and you know we've obviously had a very kind of close collaboration with

the veet team although it's kind of worth mentioning that you know the veet

team and the svelte team are you know in some cases the same people so it's a

call it a collaboration you're kind of collaborating with ourselves right yeah

yeah like it's very interesting that like around 30% I think of the team are

as well team members like your blue be Dominic G for example I don't know how

to pronounce great yeah yeah Gregor flizzer you know nobody knows they know

yeah so yeah it was interesting like one of the about that that part like one of

the first things that happened when everyone created a team is that we we

said okay like then we need representation from each framework so

like we invited some of the more active ones to be part of the team then like

you're came a little bit afterwards for example that like it was it was just

there was a lot of alignment and vid grow after v2 also because it was pushed

by the needs of all these frameworks like and svelte was like you you were

all working a lot on it and had like a lot of needs and and yeah like I knew

what is very interesting is that having this kind of users is like you have like

the best kind of I don't know like you they are mantainers they create a

beautiful issue and then like you say like oh how I will solve this and you

see like and there is a PR to solve it and I say like okay and then you merge

it and it's like I think this is why it was growing so fast and I think the in

the v2 one period that you that you mentioned I think it was worth

mentioning that all this project snowpack WMR first first I think that we

we could be talking about a snowpack like it would it will be fine like it's

just that between all of us we needed to choose one that that was idea but I also

felt during that initial time that it could be any of them and I think that

Evan did something very nice there in between bit one and b2 because it not

only like with the thing that he learned from doing bit one and the experience

that he had before with ucli that was based on webpack but also he he look it

into what WMR was doing right and what the snowpack was doing right and he took

some of the like best parts also I'm bringing it in the design in the roadmap

of v2 so I think that all that projects live in bit like that's it because the

universal rollout plugin API this idea that you write a plug-in and it works in

dev and build this came from WMR like it was Jason Miller the one that like had

the idea and like they implemented it yeah and that is like a very important

piece of the of the puzzle and then the SSR primitives that that we have that

came from as well kit when as well it was working with snowpack I don't know

if was rich or someone else in the team that like they developed with this idea

of the but like unbundled depth server doing SSR yeah and and this was

implemented as a solo module indeed and really allowed other frameworks later on

like first allow it as well get to move very easily because it was the same

idea now in this implement it like you're not maintaining for by you but

like implement it in court so like for you it was yeah nice I don't have to

maintain that anymore and and for the others like it really there was like an

explosion of like exploration in meta frameworks and that really helped it with

that yeah I'm curious actually I was chatting yesterday to someone about how

the be kind of like initial kind of phase of an open source framework often

kind of defines like the narrative of that framework so for example you know

to take an example of spelt you know spelt was very much from the beginning

trying to solve a very specific need that rich had and you know if you take

something like solid solid was very much kind of attacking things from that kind

of performance kind of angle and it's and it's often the case that the kind of

narrative that appears around a tool it's very difficult to shift that

narrative later and however V did shift the narrative because V started as you

know Evans kind of amazing you know next generation development you know tooling

for view so the fact that you know you know Evan and the rest of the team were

able to kind of to shift that narrative to being more open and more cross

platform is pretty impressive and you think that was kind of just because of

how intentional that process was going from you know version one to version two

yeah that's interesting I always saw that everyone wanted from the beginning

for V to be a tool that was more cross-platform like the react plugin for

example I seen that predates V2 like not not maybe the react playing but like

react support yeah yeah because at that point I don't think you could compete

with other tools like a snowpack or like if you will not have that then I think

that the main problem was that like without the universal roll up again API

like without the right architecture that V2 have it was really hard to make a

tool really framework agnostic so like I think it was let's say possible but

there was a lot of hacks in core maybe saying if you do this something else you

know like so I think the idea was there it was just that V2 was really the one

that executed completely yeah so that was V1 to V2 but what's the current

version of it like with five like and yeah how many hours yeah what is

interesting there from the period of V2 that really changed it like with one

from V2 V1 never existed really because it was in RC and everyone

decided okay no we are not going to release it right and then it V2

appear and V2 is the first release that was like 2021 in around February and

from then on once the team was formed and we started to have more users as

bulkhead switch it from snowpack to VIT then later on I think that that

particular moment was really important like kind of like the tipping point for

others to really say okay right is like the ecosystem is choosing VIT and and

then Astro ended up switching also from a snowpack to VIT they were the

creators of a snowpack so that was a incredible moment because they took it

very well and I think they made the right decision seeing how much Astro has

grown in the in the past too and it was very important for the whole ecosystem

because they brought all that knowledge that they had from a snowpack and we

seem to get a lot of PRs for from everyone in the team there and then

later on they went to to hire Jorn all right right that to work also like as a

bit maintainer because they need so like it it really worked it out well and yeah

like during all that first year we we were mainly polishing and making it

stable and like yeah say no to a lot of like requests for new APIs and saying to

people like look go make a plugin for that so that we can keep core like

slowly and try to support all these like power users like meta frameworks that

were appearing so we released it v3 I think it was around I think October or

something and from then on like we test appear for example right December that

that year we had very that was very big pain point with jest because the ESM

story was not working they didn't have anything transformers so it was was

really hard to tell people yeah like go with VIT is awesome but you want to test

your app yeah that doesn't work that tiny part that you usually want to do

that doesn't work so and one there was an interesting like bit meeting that

like it was like okay maybe we need to do it and I said like a like I I put it

I think I wrote a message like in the chat like we test just that like I put

the name the name and Anthony said like oh who wrote with this and he went to

MPM and it was free now now I had taken the test not a perfect he took it and

then like that night or a few nights afterwards like there was and that was

also a really interesting example of like all this community and like of

framework collaborating in bit flock it to the new discord that we created for

Vitesse and I know so they were again people from like the the community and

others that make sure that Vitesse work it well even before we open-source it

the thing right that work it well in all the frameworks and then like after three

months that there were some other maintenance awesome people that took

over like even shut out to bladder measure met for all the work that he's

doing there and like arty Hiroshi also later and like it went up and like it

worked it everywhere like right and that was that was really interesting and yeah

from it kind of like kept evolving with a lot of new plugins this this the

rapidly playing API again shut out to to reach for creating such a beautiful API

and Lucas for like maintaining and extending that because it really allow

it for like very wide collaboration like that they're starting to be project like

bit plug-in PWA and then if you want a PWA you just put that plug-in in your

pipeline and then that's it and of course there's a lot of work evolving to

that plane but of course for the user it feels like magic that's that's in

interesting like other than then like front-end frameworks like are there

other that you would you would consider users of it that that you wouldn't

expect like someone like me who's mainly just a front-end developer I would just

expect front-end frameworks to use V but are there other yeah so ecosystem they

use it so I mainly I think that the collaboration is with frameworks because

like that is the most also active part that's right around us also so it feels

that we are building it together but there is a lot of people using beat

without the framework yeah like if you just are doing like an SPA and like need

something simple maybe you don't need like a whole full stack framework right

like SSR and you see the stats and there is a lot of usage right I don't know

like a lot more bit like in react usage compared to like the frameworks that are

doing like remix or these other frameworks gotcha using beat so they are

final users also yeah and and there is also tools so we test is using beat to

test make sense yeah so that is and it's very interesting because now like the

engine of it is that is with note is moving inside of it and then like it's

going to simplify with this so it's also upstream in things like this later we

can talk a little bit about bit environment be able that that is the

basis of with environment API is like did not and like also other tools like

storybook for example yeah they or tools like playwright they created component

testing for example like every every time that you need to process something

that is framework related for example like beat is very useful because you

have the plugin pipeline there for you so like for a storybook is awesome that

a lot of framework has chosen this this a standard like let's say like this I

don't want to call it a standard like this plugin API because now they have to

only support that yeah I am excuse me I it's kind of interest in the kind of

gradual adoption of kind of veets or that V plug-in pipeline like you say

because at work we use a variety of different tools but we basically kind of

use V for a kind of all of them you know we have front-end and we're not using a

framework but we're using Svelte which obviously V to the natural choice

partly just for the dev experience but as well you know the nice API is but

then we also use playwright and then sure if you're doing full and when

testing you just build your application it's fine but if you want you know those

tests that you can't perform you know in a mocked you know browser environment in

node you need a real browser then we can use the kind of the playwright component

testing and we can just use our existing V config and all the existing custom

plugins that we have and then if we need to bundle a library which we also need to

do we can just use V again because we can reuse a lot of our existing kind of

we don't need V particularly in that context we could just reuse rollup but

we're using V for everything else we may as well just kind of carry on using

V you know and even if you just need to compile a simple script from you know

typescript to regular JavaScript because typescript is not going to run in node

why install another dependency so that you can do that on the command line when

you could just you know a quick a quick config for you know V or even no

config for V potentially if it's gonna vanilla enough because it's a batteries

included tool and I actually had a conversation with someone a few days ago

about in many ways the the blasting legacy and we'll talk more about

obviously the the environment API which is going to be a huge huge thing but I

think one of the most important things that Vita's done is kind of popularized

ESM like you chosen ESM as its kind of you know target the primitive that it

wants to work with in all kinds of scenarios and the rollup plug-in API

because even you know if there's a new tool in a few years or something having

these kind of this buy-in for such a you know it is such a simple kind of

flexible relatively intuitive API that it's you know it's complex enough to

give you what you need but it's simple enough that you're not frightened of

writing a one-off plugin and so I think those two things are the kind of the

lasting legacies so far for obviously you know I'm talking about this about

Vita's if it's like died or something but it's yeah but it's you know even

like it that as a legacy moving forwards is like it's a great thing to have

popularized we've got a great ecosystem now of these rollup compatible plugins

in a lot of cases and obviously the popularization of ESM and I think that's

like a aside from the specifics you know there's all the specifics that is one of

the great things yeah and I was thinking actually like around like a year or two

of those that like I wouldn't mind if there will be a better tool that beat

even even someone else will maintain it like that will no work but like that's

what is important is what you said like that I hope that now we have said okay

this displaying API this is this is it like like the web you know like it's

kind of like we settle down into this is a good API for for like sharing around

the framework game so in the next the next tool if they are going to use the

same API it will be very easy to to migrate to that one so like maybe it is

more perform or not like they have other kind of trade-off that are interesting

nowadays I think that I saw that that could happen because every tool like

goes up and down you know like I may be could happen in three years or something

now that we may can talk about for down a little bit yeah that that it looks now

that there is a possibility for like beat like to write that wave and then

has another way by now after right after right down just to give more context so

VIT has as we said before like always use it roll up during built like you

could you could sing that VIT is just a opinionated configuration for roll up

right you're right and during Deb we were using like a compatible roll up

thing and then you seen he has built to make things very fast but he has built

is not flexible like like roll up you know right and so even now like started

a new project and there is a team working on this that's called roll down

and the idea is that it's going to be a re implementation of roll up that is

going to be roll up API compatible but write it in native in trust so and the

scope is bigger than just roll up because we want to also be able to

replace yes build with it yeah because having these two different tools to

transpile was always a little bit like difficult for example one of the

contribution you're indeed is like in our we pre bundle dependencies and when

we pre bundle dependencies you don't want to like I seen like as well

components are not normally pre bundle yeah like when you deploy a library for

example so you need to be able to we do that with ES build like that the

privately and to teach years real to how to deal with the spell components like

we need turns extensions like and right like things that just to configure ES

build so like when you use like bit plugging as belt actually checks this

kind of like years build plugins also to make the whole thing work and I saw

always having like two different things that has two different set of bugs maybe

like a different way to configure some like things so the idea of having only

one tool there that will be used for everything it's really really feels like

we can simplify and remove a lot of like pain points make even build and they're

closer that this was one of the main things that like the tractors that say

against these kind of new tools were saying I don't want you to change so

much the way that that works but it was like yeah and and the problem is that we

need that like we're ready to do it like because we don't mean if I like but

people accept that but I they did they were still wanted to feel that they were

like bundling like more like webpack and a bit is really different like it's

bundled during that but I think it's it proved to be a very good trade-off like

if done right and if we have enough people like fixing all the bugs to make

sure that they've been built is the same that is like our one of our main

priorities in the project is making sure that they've been built is the same yeah

but yeah if if you have that then then this is quite a nice trade-off to have

because now you can have like a very snappy yeah so roll down obviously

isn't done yet right no no yes but it's already able to bundle things oh nice

it's alive it's a lie like it's open source that you can go to like they need

help also it's a huge undertaking yeah like you can go download like you need

to learn rust so that is also a trade-off there yeah but at that expense

you'll get a very very fast tool yeah I was gonna say like other than making it

making it so that it's the same on dev and production it's also making it

faster at the same time so yeah it's like an extra nice feature of better

performance yeah exactly and more more during build like because during dev is

we were already fast using yes yeah there are possibilities to speed up even

more like longer term because it like roll down maybe can get a little bit

bigger in a scope maybe like the this compatibility layer that we have in that

mode to like offer like a roll-up compatible API it could be implemented

by roll down directly right so like maybe roll down will be used we already

will be using need for like certain things like what we use here is built

now it's like strapping strapping the types for example mm-hmm but it could be

that we do more things and then we have this important analysis planning for

example that like that's transformations of your code to modify the imports

because the browser doesn't understand what you write normally I gave the file

system you know like we need to modify the URL to something that the browser

can request back to the server and this transformation right now are done in

JavaScript and maybe for these core plugins if we have like the plug-in runner in

rust it makes sense for at least some of them to also live in rust yeah and then

we can speed up the dev server too when you say it will speed up build I'm

curious do you have like an idea of how much faster it would be or is it very

much just it will probably be faster I don't want to just say marketing like

no yeah I don't really know but it's it's it's like kind of the difference

between yes built and and just like roll up you know like it is like significant

like I don't know like it's like a order of magnitude or something but like like

at this point I think that they are at the level of years built that that is

quite quite huge like this is why it bit work it in the first place because we

had like that the speed and we had a lot of people asking like actually I saw

that one point that we will go in the other direction that at one point we

will do bundling in build with es build because this was the other option you

know like if es build gets a little bit more flexible or like people get

comfortable writing all plugins or something maybe we can offer that mode

for certain big apps but it looks like it's going to be the other way around

and about the roadmap how it looks right now is that once roll down is able to do

this pre bundling then we can replace es build with it with roll down keeping

roll up during build still it's just like replacing that part and then later

on at one point it could replace roll up and then at one point that we could have

this other like more integration in depth this like we need to see how is

going to be integrated like there's a lot of applications using roll up right

now so like I I think it will be kind of always it's not that it's replace it and

you don't cannot use throw up anymore like it's I think it will be like kind

of okay you can use roll down and then you can opt in into roll up maybe

right I think yeah all right so let's also talk a bit about this new

environment stuff that's been because that's a new thing that's coming or is

it already out like what's the what's the deal here what is it even let's

start there it's coming it's coming so like the the story of that is like when

next three was integrating with beat and now they have like beat by default so

they went into another completely road different than it as well it has these

like beat as a plug-in scene that we can discuss also and like the next team

created nitro that is their way to do adapters like yeah boy to any platform

and service and nitro like this abstraction for servers didn't work well

with SSL module they needed to create something like using more like lower

level tools in beat that is that this thing is called beat node this was like

how to connect us the chip and it is like that that that is why Anthony fool

was able to build we test so quickly is because he worked it on with node before

and that is the engine of the test so like he grab it beat note put it even in

the mono repo because like in the individual repo is where we'd note has

been living and yeah it's a way to like run using the beat pipeline what you say

like that I know process and what this was very interesting about them this

this this way that knacks a structure thing is that they got HMR like in SSR

like like real HMR and proper source maps like because they were they were

they were like in the way they were running it was working a lot better so

actually there is an issue all issue from rich Harris asking beat to have

proper HMR API during SSR like them and proper source map also but like and so

we wanted we discussed with Vladimir like he was maintaining he railroad beat

note and we discussed it with him he joined the big team also and he worked

it for like a long time to port with note into as a feature in in vid core

apart from HMR and apart from like better source map during SSR the the

other big feature that discuss is that it creates kind of like you know like

the browser will be a client for the bit server so like it will like ask for the

request and and like ask for the different modules and do proper HMR the

way we do SSR low module is it's just some like caching layer that that we

have like but it's not real HMR and with note had this idea of having like a

little client in the server client like thing that's like a module runner that

will be the one running the modules that is separated from the server and this

module runner will end up like acting like the browser like I'd ask for the

module and then the module is processed inside of the bit server and then the

bit server answer back with the module and then that will generate other like

asking more modules and that like like get the whole model tree and what what's

interesting about that separation is that then you don't need to do SSR in

the same node process you could have that and put it in a worker thread or

put it inside mini flare that is the way to like emulate worker D in locally like

if you want to run in clover for example or I don't know like or barcel or

Netlify could have their own environments like they in the same way

so that that was like very interesting for people like clover like so they got

involved and and we really see that like that's called runtime API in 5.1

hydrogen from Shopify is using that in production I think right now it was like

double experimental label it has a like we say don't use it we are going to

change it like we are releasing this for feedback on it like it it really shows

that this is something that they they really need and and the problem was that

we develop with this feature a little bit like out of the main API because it

was a little bit easier and because it's very scary to change this API now that

there is so many people using it but we ended up seeing that that will not work

so at the end environment API is basically like okay like let's let's go

like full with it like what what it will look if we actually integrate these new

capabilities but directly as a like integrated API into it and then the idea

is that you will no longer have only like the client and SSR environment but

you could create any number of environments your application have now

meta frameworks are getting more complex maybe you have three environments maybe

you have like the client maybe you have like a node server and maybe you have

some edge server that serves in the middle and that was not possible to

model during that before but now you maybe you could you could say like okay

my meta framework is not going to have to it's going to have three different

environments and each of them will have their own module graph because they will

have like separate bundles that they are doing for it and this is environment

yeah like we we are going to provide these capabilities there it's going to

be an extension of the hooks API of the plug-in so instead of just having a

simple SSR boolean because before it was only two true or false that was all and

now instead of that there is going to be like a these dot environment in the

context and have all the information you need for the environment in there yeah

and so I guess an example of this for you know especially for the Svelte

community would be you know you mentioned Cloudflare and you know

recently a lot of work has gone into the Cloudflare adapter for Svelte kits and

you know the challenges around you know we had we had a whole conversation we've

been having a whole conversation for a long time about what happened what about

dev because dev has always just been node with Svelte kit it was never you

know it's never anything else like that and you would deploy to Cloudflare or

you know your workers or whatever but how do you kind of make use of the

various API's you know if you're just kind of if you're not using any of those

built-in API's you know the platform API's you can kind of you can kind of

get away with it but if you if you do want to use the key value store or well

I mean there's a whole whole number of cloud for API's now and then you just

couldn't do it so then recently there's a whole effort and you know we are now

using kind of like mini flare this kind of you know work a D kind of environment

so that you can there's all kinds of mocks for various things but the problem

is there as well as you know from cloud for those points of view is they then

need to do that for every single framework you know every single tool

that has some kind of Cloudflare adapter type thing whereas you know these

environments can be reused you know so you can kind of package up an

environment and then and so I guess install you know publish it to NPM and

then when you know remix or you know Nuxt or Svelte kit need to use this use

this environment they can import it they can implement it in some way but the

point is it will always it will kind of be there for dev so we don't you don't

need to add additional API on the kind of the framework side like we did in

Svelte kit to get this kind of really cohesive and again going back to what

you were saying before you know a symmetrical dev build environment again

so it's gonna be amazing for those kinds of use cases as well yeah yeah and and

again like this is what will you ask it about if this is done or not it's not

but there is there is a bit six branch that we started long ago working on this

because it is really different from the work that we have been doing with bit

three bit four bit five like we took a lot of pride during that time on not

changing the API and like giving frameworks a very stable base so mostly

maturing and improving performance so I shut out to Dominic either like with

creating VIT ecosystem CI later on like Svelte also adopted and like other

people also adopted and this this tool like really allow it's us to know if we

are going to break someone or not before we release and we were like our measures

in VIT have been always very like painless that's right it was like our

main objective and this one in particular it's a little bit scary

because of that so what what we decided that we will do is that we need to go if

we wouldn't because we are going to change things we need to go slow with

this we are we really need to avoid any kind of like moment by Python 2 to 3

these kind of things the ecosystem is too large for that so we are going to

release v6 as known with trying not to have any breaking change yeah and and we

don't even go into promote this API a lot in the sense of like plug-in authors

maybe shouldn't start using it right away because for example like if you

want to use it like you can use these dot environment in your hooks but these

are the moment will not be there in bit 5 right so if you start using it then

you have to do a mayor for your own plugin and maybe you need to support

both version for a while gotcha and so yeah the idea will be that we launch

trying to keep the same thing that we did before but these are like under the

hood the these new API's are there under the hood they are like instead of one

mix it graph between client and SSR modules there is going to be like

separate separate graph right each environment but like all the API's the

old API's are still work like there is like some proxy layer that will find and

maybe generate on the flight and know that looks like before but inside the

data is different yeah and maybe after six months like as usual like frameworks

and users will adopt the new mayor very quickly if we do the job right and then

at one point we say like okay almost everyone is a bit six then now like we

do a big push to let's update all the plugins yeah frameworks kind of start

using this because almost everything there maybe you need to add a

experimental underscore like three times this yeah I think you're still going to

release it then and they're experimental we had a lot of feedback array to be

honest and like I heard reach in your last vlog right yeah saying that he also

is excited about like playing with it for for adapters for the same same thing

like he mentioned something that is interesting also is that in the in the

victim we always said that vid was browser only and so like all the use

cases are people the user had about I want to use vid for electron I want to

use vid for Tory or like these others uses they they hack it their way and

they did it but this was not something that the project explicitly said this is

like a use case that we are supporting and encouraging and and right now with

environment it looks like this is again like the V Team is like a lot of people

so they still there will be discussion in the same way like with that was as

well but I I think that there is an opportunity now that we have the

environment extraction to let people say okay my client environment is not the

browser now my client environment is Tory so like a Tory will provide a Tory

environment and that will set configure everything so the client is that and

during dev and during build they will do what they need to do like they have the

hooks now to get into and properly offer a good experience I think it's it sounds

kind of similar to something that I'm sure it's not similar very similar but

it's it kind of sounds like something that's happening in the there's in the

elixir ecosystem there's a project called live view native that lets you

basically write Swift UI and whatever the Android version is I don't remember

Kotlin yeah I think like as a template so you can compile elixir to Swift UI

and Kotlin well I guess you're writing Swift UI so so it's it's doing something

well it's it's it's basically enabling the the the ability to like reach more

platforms in this in the elixir case it would be the native like iOS and Android

and I guess like so so now maybe down the road could we see like native

targets in the sense of iOS and Android for V as well there are people working

on like reg native integrated for example and yeah like this this could

also be like a interesting use case of that like I think it will require like a

kind of shift in in our mind as a team let's say like yeah we want to we want

to support this more use cases right that is very interesting because it's a

trade-off like I think that V was able to grow in the way it grow because it

had a very clear scope and we were saying like okay V is this tool like it

is not like we say many times to people like like that's a valid use case but

you can keep using other tools because V is not for that right and but and

that was important but I think the team now is mature enough and like there is

always also a lot more users and like frameworks obviously want to push the

limits a little bit more and I think not only the V team but like the V team

contributors the community all the framework working together I think we

are at a point where we could start sharing a little bit more and this idea

for example of okay now we have like three adapters abstraction so like thank

you know as well you have one Astro has another one Nitro is another one that

other frameworks like an analog use and solid starts is using also the night one

and so like we have like these three different and this is why clover is

pushing to oh I like it would be nice if there is like they are sharing this so

that we also only need to care maintaining one instead and so I think

it makes sense that we we keep talking we keep doing the same thing that we

have been doing now like trying to keep saying what from everything that we are

doing is common and that's then like trying to put it on in a plug-in if

possible obviously but if not maybe we need to extend core a little bit right

right okay so that's that's the latest in in V let's let's talk community and

V conf nice so when is when is V conf happening become this year is going to

be October 3 everybody is invited I actually like it was very nice to meet

you in person because I I say this but I want to say it also in in the recording

because when we started doing the first bit come this a little bit of history

they're like once Eddie Simon the CEO of a stuck with like hire me like one of

the first discussion we had was like right what do you think about doing a

big conference and I said like what and and more or less because actually like

Dominique I think was one of the people that already mentioned before like hey

it would be nice to do a meet up or something like that they were like there

was some movement in the community but like we definitely didn't have the

resources of like or like the idea that once yeah I one of the things that I did

when I started working full-time is that okay I have more time and then like there

was like the market inside of a study that could help also this kind of thing

so we did become and that that was a very interesting moment the first bit

curve because a lot it really showcased it how wide the ecosystem have become I

think it put it at the spotlight like we we talk it with every team like and so

like Rich Harris did like as belt they keep and talk and then like Ryan

Carneacho was there doing the solid talk and like Oh Evan yeah I was doing like

a talk about well he did that talk about beat but then like Daniel Roy was with

Knox and Anthony Fu and like so many other like yeah containers also

containers in the ecosystem I go to there I think it was like 40 talks or

something yeah it was a 24-hour marathon it was it was long but it was a lot of

sleep because we wanted we wanted to do this thing about like reaching out all

the all the world they say like no matter where you get up then you can see

the 12 hour of content because it's 12 hour repeated and when we were

organizing all the things like we were saying how we do it and like as well so

meet was one of the things that we had they're very high in our mind because

like we really enjoyed like the the vibe and the way for example we use this

court to do the the the conference because we seen that it's very good at

all that activity remains in the community yeah they're on like there is

new people coming for because of the conference and then they stay and like

we really like that and we did that because as well some it was right right

like there you were having like discussions while you were watching the

talks also and it was like so lively like there's very discord in general

like I think like it it was also not only for the conference but like it was

also a very heavy influence when we did the beat discord right because like your

discord has always been extremely lively right like there is a lot of very

helpful discussions and I don't know if the vibe feels like right to me so yeah

thank you for now I'm happy you copied it a bunch of stuff if you like took

inspiration or whatever that's that's great it's interesting you mentioned the

the issue of wanting to to have it be available for everyone on the around the

world it's something I've experimented with like so I'm in I'm in Stockholm

right so I'm in Europe and that's one time zone but then there are a bunch of

folks in the US and then there are a lot of people in Asia so how do you how do

you make it work like you could do what what you guys did and just like do 24

hours of course but I yeah yeah no two-day conference no so so I've

experimented with like oh when when in the afternoon do I like like hit the

most people in the world to see it and then also you want to be be able to like

have the the speakers be there when their talk is going on and that's another

problem because you have speakers from all around the world so you need to kind

of time it so so it has to be in a certain order at lots of lots of fun

problems to solve yeah we have like these 12 hours and it's repeated twice

so yeah because can be yeah they can come to one of them but yeah like it it's a

very interesting conference I I really advise like that people get into the

discord when when the conference is there because the the speakers are not

only the speakers like that it is the big discord during that day is a place

where a lot of different communities get together so like during it as well talk

you will have like this well this girl for a moment came to visit yeah this girl

you know and then like the during the astro talk like the whole astro is

there talking and then I get it's I think it's really like fun interesting

and and I I love that it had highlights this collaboration and this spirit and

you you have like in like I don't know like you're in four hours maybe like the

the the tracks about the frameworks and you see every framework one after the

other yeah and and you see that people are like let's say like you don't feel

like that competing like yeah like my friend where is best or whatever yeah

and it's it's a lot more about like oh that's that's cool like they are in a

cool thing we should we should also do that and and it's not only that is

because you don't only say like oh we should also do that and then start to

like copy the thing it's more like oh that's a good idea let's move on it in

some way or exactly like yeah would you like to do a plugin for that so like we

can share it and this is like also a place for not only for people like

users in general but also even for maintainers to to connect yeah all right

I think we're getting close to the end here is there anything that we've we've

not talked about that we should talk about I think we've covered most of yeah

I want to do another shout out just to everyone involved like all the team

members of the contributors the people that help in the community the people

that do triaging yeah like really open source is a game of so so many people so

like just a shout out to everyone that is helping in any way yeah absolutely

all right so let's let's move into the pics section I can start so I I've

recently been watching a TV show called sugar on Apple TV plus it's a it's a

private investigator that is trying to track down someone in Hollywood and it's

the main characters is Colin Farrell I think it's called I should know who

Colin Farrell is I think but yeah but yeah it's a very good show Apple TV in

general Apple TV plus in general has a lot of high quality TV shows that people

are often sleeping on like they because most people don't have Apple TV plus I

think most people just have Netflix or or one of the other ones Disney probably

etc but yeah that's my pick I'm going to pick a kind of more of a trend that I've

seen recently I've seen a lot of people talking about kind of like local first

applications and privacy first applications obviously with the big kind

of AI booms and stuff privacy has become a very kind of like hot topic but there

has been kind of a trend now of having kind of applications that maybe they're

local first and then they can can maybe sync with the network so you're using

losing you're using some kind of embedded databases in fact there's a

whole this whole movements this whole conference is dedicated to these ideas

and it's a I think it's a really healthy trend this idea that we can have these

really wonderful local experiences that we can you you know or essentially it's

almost like progressive enhancement at a macro level you know it's like we start

local and we kind of enhance things with maybe some API calls maybe some data

synchronization so that you switch to another device you're getting the same

experience so I'm kind of really excited by this idea and I'm hoping that we can

start you know maybe you know we talking about all these different environments

now maybe we're talking about all these different kinds of levels of

integrations maybe local is in various contexts is is a thing that we can start

developing applications for yeah interesting yeah I would choose one also

to give a shout out again to as well kids as well in general but it is about

the tutorial that you like so rich rich Harry's and like I seem like penguin when

you were involved at the beginning and other people like so you created this

awesome tutorial for a spell kit like following the same thing that you had

for like the normal is about and I was studying penguin that like when the

first time I learned about as well it was using that tutorial and I think it had a

very big influence in people in people picking up yes because it made it feel

so easy to do yeah and and then like yeah so you use it web container API that

to be able to run as well kit in the browser and do the same and then because

you did it you show that that is awesome and then I'm with our has I'm with our

dot-dev using our really nice and then Anthony fool streaming himself doing the

full the full like tutorial for Knox all right actually like opening like even

the dispel one and seeing like how you're doing things and like oh nice

yeah it's a really nice stream and later on now like establish have been working

also in a sink called tutorial kit so if you go tutorial kit dot-dev or p.m. p.m.

create tutorial that will also give you that and and it's also like yeah it's

shut out to like all of you that like because it's kind of the same is the

idea is that you you will get this up but you don't have to make it right yeah

write the content don't write the hard part multiple times for everything yeah

so I think that is that is interesting I need another one of the trends like you

we were talking about like these things that starts in a community and is spread

because it's a good idea yeah that's a great pic I love the I love interactive

tutorials in general like it I think it was what made me like actually tries

felt because every time I've so when I found felt in 2019 I I remember the

website and I remembered like trying it on on the tutorial like but I found it

on Hacker News and on Hacker News you see all these frameworks showing up and

but you hardly ever like actually try them you just open the landing page and

you're like oh this looks interesting I'll try it later but if you have an

interactive tutorial it's very easy to just go in and just try one thing and

then you're like oh this feels very good like I'll actually have to try it

properly but yeah all right I think that's it Patak thank you for for

joining us for joining me and penguin or Pete thank you thank you for maybe I

doxed you now sorry thank you for joining us well thank thank you yeah

whatever you want yeah absolutely I will definitely invite you back on all right

and with that said thank you to all the listeners and we will you will hear us

next week again