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