Zeu 0:00 Okay. 0:02 So, welcome to our talk. 0:03 We are going to talk about npmX, a fast modern browser for the npm registry. 0:07 Sewo is going to join later and do more of the atmospheric part of the talk that you're going to be maybe more interested about. 0:16 And, yeah. 0:18 So, Sewo is a software engineer and like an unofficial DevRel for @proto. 0:24 And I'm amazed that I'm able to do this talk with her. 0:28 It is the kind of example that like These young people are doing open source in a way that I would have loved to do when I was young. 0:36 So, yeah, really, thank you, SEO. 0:40 And I'm an open source adventurer, like lately. 0:44 I'm a project steward of npmx together with Daniel, and I'm part of the team of other open source projects that you may have used, like Vite, Vitest. 0:52 I'm part of the E18y community. 0:54 We did Elk, a Mastodon client, when we tried to move there. 0:58 Whoo! 1:01 There is a lot of people from our core team here, like Bailey is here. 1:05 I think Bailey is part of every team in the Atmosphere, so thanks, Bailey, for taking care of our data for us and moving it around everywhere. 1:15 And Willow, I don't know if she's here, but yeah, Willow is very interesting because when we started NPMX, we saw that other like 3 projects were doing similar things. 1:26 This happens a lot when you have an idea that is ready. 1:30 We all share a lot of context, and people start to work in the same thing. 1:34 And the good thing is that we know each other. 1:37 We went, we talked it, and we decided to work together. 1:40 And npmx is here today because we didn't do 4 different alternatives to the browser for the npmjs.com browser. 1:49 But we all work together. 1:51 So thank you, Willow. 1:53 And James is also here, part also of the core team. 1:56 And he is leading E18e that I think you may have seen him working on improving the performance of every package in the ecosystem. 2:05 And the relationship between E18e and the npmX community is a great example of how we work not only internally, but also with other communities. 2:14 And later on, we are going to see a little bit about that. 2:17 And Daniel, say hi. 2:19 He would have loved to be here. 2:21 And yeah, we wanted to include him because he has started the project. 2:25 So for people that are not programmers, when we talk about packages, imagine if we would like to— for the app protocol that BlueSky app protocol handles, we would like to see the display name. 2:37 BlueSky app has a nice public API for each, but we normally don't start from scratch. 2:43 We use libraries that are distributed as packages. 2:47 In JavaScript, we will import it, a client from, for example, from Adcute, from Marie, and we can create a client for that service, and this lets us do like very comfortable with like type it, like functions, and get the, yeah, the display name in an easy way. 3:06 So packages let us build software collaboratively and depending on the work of amazing other people and don't start from scratch. 3:15 The package registry from the web, like JavaScript, is npm. 3:20 You will do npm install a kube-client to get this one in your project. 3:25 And in npmx, we actually have a dependency on Marie. 3:28 We are using her libraries. 3:30 So thanks, Marie. 3:32 Not only on Marie, but on a lot of really wonderful open source projects, all the Vite stack, Nuxt, Vue. 3:40 JS.org, like there is so many people. 3:43 We couldn't have built npmX without these in 2 months. 3:48 We are relying on all this, the work of a lot of people. 3:52 And in the case of npm, so this is the world's largest software registry. 3:57 This is a graph from GitHub releases not long ago. 4:00 If you take into account JavaScript and TypeScript together, it's like almost double of Python. 4:05 It's an amazing registry of the work of so many, so many people. 4:11 And it's a little bit hard to understand because it consists of 3 parts. 4:16 The registry is called npm and has that logo. 4:19 The CLI is called npm and has that logo. 4:21 And the website is called npmjs.com and has the same logo. 4:25 So people, when they think about npm, they think about all the things together. 4:29 But there are 3 different parts, you know, like the registry where all the tarballs are stored and they have like a public API that you can fetch. 4:37 The CLI is something, the command line interface that we use to interact with that registry, and the website allows us to browse, search, like do admin stuff. 4:48 So npm right now, it is in the hands of Microsoft, and yeah, they have not been adding a lot of features lately to it. 4:59 So other open source people and like projects have been trying to say maybe we should innovate a little bit. 5:06 And so on the registry side, you have JSR from the Deno folks, you have Volt that also were ex-NPM folks trying to see like what they could improve. 5:18 Like we could have like twice maybe as fast if we are able to modify the server and like make the CLI and the server together communicate in a little bit better way. 5:30 On the CLI, this has been for a long time. 5:33 Yarn first showed a lot of innovation, then pnpm. 5:38 In the Vite ecosystem on frontend, now pnpm is huge. 5:42 We are all using pnpm. 5:45 And on the website side, we have nothing. 5:50 Actually, there are some things. 5:52 For example, for the graphs, there is a lot of mini websites to do graph for the Node graphs, and they are like all Yarn, JSR, Bolt, all have their own little browsers, but there's nothing that is like we can put here. 6:07 And we actually need something there because I don't know if you see how the light in the room changes, but it only has light mode. 6:16 So for some of us, that is why we don't use it. 6:23 Also, if you see the little download, weekly downloads graph there, you can only see the last week. 6:28 You cannot explore the graph. 6:30 There is so much more that we could do here. 6:33 And the packages and all the relationships, it is a social endeavor. 6:38 We could see where are the maintainers. 6:41 Where are the— I don't know where they are, the maintainers here. 6:44 Where are the relationships between the different packages, all the graph of the different dependencies? 6:49 All these things are extremely important. 6:52 So Daniel sent to Bluesky this post on January 23rd saying that for reasons he would love to know what are the frustrations with the package registry. 7:04 And a lot of people responded. 7:06 It's like 50 replies. 7:08 9 hours later, he had a working prototype and he is starting to invite people to work with him. 7:15 Take it for himself only. 7:17 And in the first week, that resulted in 50 PRs in the first day. 7:23 So a lot of people were frustrated and wanted to actually change things. 7:28 We created a community chat and started to invite people through DMs and through BlueSky, like backposting in BlueSky a little bit, because we wanted to start intentionally growing the community. 7:43 One of those invites was to Zio because at the beginning, the first time that Daniel asked me if I would like to work with him, I say like, we should do something with that proto because that proto is awesome. 7:57 And so like this, I'm inviting Zio, Zio say yes, and we start working together. 8:04 And the second week At the end, we had 1K issues and PRs. 8:10 This is like one every 20 minutes around the clock. 8:13 That is kind of impressive. 8:15 And we ended up with 100 contributors that were invited through these open networking, the 1.5 SCAR stars, without real promotion. 8:25 It was like we didn't want to mention the name at the beginning. 8:29 People were saying, where is the link? 8:32 And yeah, you could find it. 8:33 If you really care, you could find it. 8:36 So we are back to the light thing. 8:39 And this resulted that if you go to any npm.com web page and you put an x at the beginning— we are recovering the x for something more important— you're going to get to dark mode. 8:55 So this is our browser for the npm registry. 8:59 And we are seeing like AdCute client here. 9:01 And like actually we can, I don't know, like we can go to AdCute. 9:09 So yeah, you can see a package and you see that there is a graph and you can see that. 9:16 Oh, hmm. 9:21 Okay, sorry. 9:23 Nice. 9:24 And this works actually. 9:27 OK. 9:27 Ah, OK. 9:29 That's very interesting. 9:31 It will be a little bit more difficult. 9:32 So yeah. 9:33 So we can go here. 9:35 And yeah, now in the graph, we can see a beautiful graph. 9:39 So yeah. 9:40 And you can see like everything. 9:48 Yeah. 9:51 The thing that we're building is not only a product. 9:53 We are also working together and constructing a massive team that is going to keep working on this project and in other things that maybe we want to change. 10:05 And we are also already organized it a little bit. 10:09 The front row that you see there are all the maintainers of our project. 10:15 These are the core team. 10:17 Of our project. 10:19 And actually, these are just roles, because there is resources that we need to keep together, but we are all peers and work together. 10:27 And I think that why this work— there is a lot of things. 10:31 Each of these things will be a talk, but I will go very fast through it. 10:35 But there is a coherent, consensual product vision, but we try to iterate fast knowing that the code is malleable and we can keep changing it, and we use versions so we can iterate in main, and then when it's ready, we release it. 10:50 Daniel is extremely good in doing that. 10:53 We lean in conventions in libraries like Nuxt that allow us to go extremely fast and don't discuss absolutely every little detail. 11:01 We empower people that care about accessibility, performance, tests. 11:05 If you care about any of these things, come to work with us. 11:09 We have a pragmatic path to a more open future. 11:12 Like, we protect our trust network. 11:14 We don't open everything directly. 11:16 Like, we are very intentional because we care about our people. 11:21 And we optimize for adoption. 11:22 And this may— people would not like it a little bit, but we actually meet users and contributors where they are. 11:29 And this means that we are using GitHub and Discord at this moment. 11:32 And yeah, people are not that happy. 11:34 But we would love long term to change that. 11:37 We are rooting for Tangle. 11:39 We are rooting for Rumi. 11:40 We are rooting for everything that you are building. 11:43 And when things are ready, we are going to be migrating there. 11:48 And when we work in community, we are by humans and for humans. 11:53 Our collaboration tools are community infrastructure. 11:57 We try to mix them. 11:58 Go to our Discord. 11:59 You will see it's full with Bluesky links. 12:03 Everyone that shares our values is welcome. 12:05 This is very important. 12:06 If you don't share our values, you can go build something else. 12:11 New contributors are peers to us, so as soon as you join and start contributing to the project, you're going to feel that you're one of us, and you have a voice, and you can change things, and if you want to work, you're going to— yeah, please go improve things. 12:29 We do governance through roles and no hierarchy. 12:32 Ideas are discussed in the open, but we have a lot of spaces of trust where we hash them out. 12:38 And this is like mapping real life. 12:40 You first discuss with your friends, with your colleagues, and then you go to the public. 12:45 This is important when you have these private spaces. 12:49 You're not taking things from the public and putting them there. 12:52 You're taking things from DMs. 12:53 And putting them up. 12:55 And we shape our line of space together. 12:57 We decide what tools we use together. 13:00 And this team is kind of like an ever-growing, healthy network of trust that we have been building since forever, like from Vite, Vitest. 13:10 People from the app proto community have been doing a lot of things that now we're doing together. 13:15 And this is very thrilling and very exciting. 13:17 So after all this, the second week, In the third week, we were not sleeping. 13:22 People were sleeping like 3 hours a day, and it was not healthy at all. 13:26 So we ended up deciding that we need to change that. 13:31 And we decided to take a vacation. 13:34 When the project was going exponential, we just stopped working for a week. 13:38 And we locked it, this code. 13:40 We stopped merging PRs for a week. 13:43 Some of us went to this mountain with the family and snowboard, and some other people stayed touching grass in ways they like to do, for example, programming other things because they cannot stop. 13:55 Luke, for example, did a nice browser extension that modifies the GitHub graph to have grass instead. 14:04 And when he did it, actually he did it differently, but our community told him, you know what, when you contribute a lot, it should have less grass. 14:13 And actually he did that, so the more you work, the tighter the grass is, and if you work too much, there will be brown patches. 14:23 When we add this feature to npmX, it's going to be this. 14:33 So, yeah, the 4 weeks went out, the vacation is out, and we have been working— Salma is working with us, she's an amazing outreacher. 14:42 And she prepared this idea of having our Alpha launch in 6 weeks with a lot of blog posts. 14:49 So from this one we did a web ring that we linked to 26 other blog posts. 14:55 She did one about how to make your first contribution to open source, so go read that if you want to do it. 15:00 Daniel talked about how it's a lot better to have a 10x team instead of a 10x developer. 15:08 I wrote about conversion communities because, again, like this worked because at the beginning there was already a network of trust between a lot of people. 15:17 Alex wrote a book about this month, so like if you want to really know what is going on, like you go check that one. 15:25 Grafieros, like he's the one doing the graphic magic, there is a library from Vue, and he talked about how you can improve, like how much the The library improves it, and this was also something that we saw with Elk. 15:36 Like, all the stack improved because the people doing the libraries are now users and can improve things. 15:43 Thank you for all the— yeah, for inviting us here. 15:47 And actually, like, the community have been so good from the beginning. 15:53 The Blue Sky team also was our first sponsor. 15:55 That is a nice piece of lore. 15:57 And we have already other sponsors like Vercel. 16:00 Voice Zero, Netlify, and Volt also, and we are talking with other companies that want to help us. 16:08 If you are a company and want to help us, please talk with us. 16:12 James wrote about collaborating with npmX. 16:16 Philippe, that works in Netlify, like talking about, yeah, how working— like he's a senior developer, has so much knowledge, but still these months These tools really helped him. 16:29 Paula, actually, I love this blog post. 16:32 You should go read it. 16:33 It was her first contribution to open source and how she overcome the imposter syndrome. 16:39 And now she's a very important part of our community. 16:41 She did so many features. 16:43 We are talking about doing a talk together maybe in another conference later in the year. 16:50 Storybook also, another good relationship. 16:52 That we— like they are already putting little things there. 16:57 I don't know if Jason is here, but we also launched it with a Code TV blog post, stream, that was really nice. 17:06 And so, yes, now we have an answer for that. 17:10 There is npmx. 17:18 One of the things about this collaboration that I was mentioning between other communities, if you go to FastGlobe, for example, this was a library that everybody used. 17:26 You can see that it has 94 million downloads. 17:29 So a lot of people will actually go and check the downloads and install it without thinking. 17:34 But if you see now in our UI, we have annotation from the people, the A18E. 17:42 They curate this model replacement annotation. 17:45 And it says that you may not need this dependency. 17:47 And if you click the link, you're going to see that it talks about replacement, like TinyGlobby, that is half the size. 17:54 And actually, it shows you how you have to replace it. 17:57 And this is very good because they were doing this work, and now they can rest a little bit, and other people can do it directly. 18:05 And yes, and we keep working on features. 18:08 Like for example, James had this idea. 18:11 Still not on the main. 18:14 But the idea of we can show so much information. 18:18 I think in the conference there was this idea of surfacing all this information in a good way. 18:23 And for example, Shane had this idea that between versions we can show how the install size, or if there is a license change. 18:30 And we can show the good things, the warnings, the red things, if for example a license would change to not be open source anymore. 18:39 And so, yeah, this is very important to us. 18:43 And I want to say that I didn't talk about— at Proto specifically so far, because we are first doing a website that is very useful for a lot of people. 18:53 And this website has a lot of opportunities to actually be a social website, because doing open source and all the packages is a social endeavor again. 19:03 And npmjs.com could do so much more in that regard. 19:07 So we are going to Zew. Patak 19:22 Thank you so much. 19:24 Do you want to be called Patak or Matthias? 19:28 Both are fine. 19:29 All right. 19:30 Another round of applause for Matthias for that wonderful presentation. 19:37 Seriously, npmX is such an amazing project and I'm so happy for Matias to invite me to work on it with him alongside a great number of community members. 19:52 So, one of the big pillars of npmX is really, really showcasing the community, right? 20:01 Open source is not just about code. 20:03 It is about the people who make the code work, who make it happen, to make it usable for anyone, right? 20:12 Tools not only for developers but for users, right? 20:16 And so when I got asked to be a part of this project, my main goal is to add social features, right? 20:24 And of course, we're here at Atmosphere Conf, and so the protocol we use is App Protocol. 20:31 And there are multiple reasons as to why we use the app protocol. 20:35 And the main one for me is how developer-friendly it is. 20:41 So— sorry, I'm just taking a look-see here. 20:46 So one of the core pillars of app protocol is data sovereignty, being able to own your data, being able to say that I made that data, that that data is mine, and being able to show that to other people. 21:00 The main way that our protocol does this is with the PDS, the personal data server. 21:07 And there are multiple ways of doing this. 21:10 First up is doing it self-hosted. 21:13 We're developers. 21:15 We like to, you know, have servers on our own, whether they be tiny Raspberry Pis in the corner of our room or $5 VPSs in the cloud somewhere. 21:26 Or even like beefy racks, you know. 21:28 I wish in the future I have a server rack in my home if I have the money for it, you know. 21:33 But having your own PDS doesn't need something that beefy, right? 21:40 Right now mine is currently at selfhosted.social, but you as developers— woo, self-hosted! 21:50 Yeah, big, big ups, big up. 21:53 But you as developers can easily spin one up using npm create pds. 21:59 Shout out to mk.gg. 22:02 I saw your— that's their handle. 22:05 I saw their presentation yesterday about this wonderful CLI they made that allows you to spin up Cirrus, the very lightweight PDS that you could just spin up on a Cloudflare worker, right? 22:23 Yeah, yeah, I'm getting a nod, I'm getting a thumbs up there. 22:26 But you don't have to self-host it yourself. 22:30 You can instead, as a user, be a part of a community. 22:35 So NPMX does have a community hosted server, kind of like Bluesky with its mushroom servers. 22:41 NPMX has the same thing where users can host their data with us. 22:45 NPMX. 22:46 That way you don't have to spin up your own server. 22:48 That's fine. 22:49 You can migrate into NPMX as well. 22:52 You can see here that Daniel Rowe and Patak already have their data on there. 22:59 And this PDS is not just anywhere. 23:01 It is actually only 3 hours away by train to Eurosky servers in Germany. 23:11 It is Really close. 23:12 So it is in Europe. 23:14 So if you're worried about your data being hosted in the US, don't worry. 23:18 If you're on NPMX, it is in— double checking— Germany. 23:25 So any regulations, GDPR, data compliance stuff, it is, you know, all there. 23:32 And once again, I want to give a big ups to the PDS czar of the project, Bailey Townshend. 23:40 He's here. 23:42 Seriously, we were literally talking, like, when I got into the project, we were like, okay, we're gonna implement add protocol. 23:53 All right, but with that in mind, like, we— some people, some users, they won't, you know, they aren't in the atmosphere yet. 24:00 They got to have, you know, a way to get into the into the atmosphere without going through Bluesky if they have any big hangups there. 24:08 So I literally DM'd Bailey once. 24:10 Like, literally, like, maybe a day or two later, the PDS is up. 24:15 So it's amazing. 24:17 And if you're here in person, that's what he looks like. 24:20 If you're online or even here and you're like, I don't know who Bailey is, you do. 24:25 Promise me. 24:27 Like, the pumpkin? 24:30 Is great branding. 24:32 Shout out Bailey. 24:33 Seriously, like I keep telling him, he needs like a pumpkin mask to wear in person so that you know it's him. 24:39 So yeah, once again, thank you so much Bailey for that. 24:42 Another big round of applause for him. 24:49 And to show how successful the PDS is in getting new users onto it, just a little bit here, we have a little over 300, probably even more now, 350 accounts on the server calling npmx.social their PDS home. 25:07 Like, seriously, like, they could take a look at the avatars on the screen. 25:11 There's so many, and that's just some of them. 25:15 And a lot of these people, if you actually take a look at their PDSs, they haven't done anything else. 25:20 Their first entry into the atmosphere is npmx, and that's One of the ways that I'm really proud of this project is we're getting developers into the atmosphere, slowly getting them acquainted with how wonderful this community is. 25:36 And with that in mind, you know, getting new developers in, right, and NPMX is a developer platform, we want to get new contributors up and running, right, like not only in the frontend or the backend of the code but getting them to make social features very easily. 25:52 And App Protocol makes that— yeah, I got it, don't worry. 25:57 I'll press the next button soon. 26:02 No worries. 26:04 So new contributors, you know, sometimes when you want to add social features, it could be like proprietary data in databases, then you'd need to have like secret keys to work with production data, live data, and it could be like very wonky, but you know, as we all know, data is just JSON, right? 26:27 Data like likes and packages and all that, they are shaped in a standardized lexicon so that anyone can just read it, you know, it's very straightforward, and to work with said data, to manipulate it, you use XRPC calls, which are basically just API fetch calls. 26:47 Like, if you know how to do curl, or if you know how to do await fetch on JavaScript, you can work with live data. 26:56 And because the data is public and manipulating data is— or querying data is just one fetch call away, a lot of services and infrastructure has already popped up that makes it much simpler to use, especially for new contributors and big projects like ours. 27:14 So another big shout-out to Fig Phil for Microcosm. 27:22 Woo! 27:22 Big ups, big ups. 27:27 Really one of the big pillars of the Atmosphere so far. 27:30 If you want to get records without going straight to the PDSs, you can use their services. 27:37 We use two mainly. 27:39 Slingshot we use to resolve data. 27:43 Sorry, looking at the time. 27:45 Resolving data, getting the mini-doc. 27:48 So that'll just be like the PDS, the DID, the handle, and as well as getting specific records very, very easily. 27:56 These are the two— sorry, I can't see. 27:59 These are the two API routes that we use. 28:05 Not only do we use Slingshot, we also use Constellation, a very useful tool and service that allows us to go through backlinks. 28:14 So we can go and query a package and to figure out how many people have liked it, like specifically individual data. 28:24 Sometimes you have multiple like records, right? 28:26 We just want to get to make sure that you only have the one person. 28:31 Per record as well as getting the backlinks. 28:35 We use Constellation for that. 28:37 And because of everything I've said so far, we've managed to implement our very first social feature, which, which are likes. 28:46 So you can see here, this is just a, this is a live demo of my profile page. 28:54 I only have 10 likes, but You can see here we have a— we have a little profile with my name, a little description. 29:02 I also added a website that you could go into. 29:07 And of course, you could see all of the packages that I have liked so far. 29:13 And of course, if you as a developer want to take a look at npmx and do all these likes and stuff, going to the Connect corner here, going down to the connect to Atmosphere bit here, you can log in very quickly. 29:29 There's also, like, a small description. 29:31 I'm pretty proud of that description. 29:33 You could create a new account, again, on our community-hosted PDS. 29:38 And there's also a connect with Bluesky if you want to use that as well. 29:42 So there's actually a lot of activity when it comes to likes when we released this feature. 29:51 So much so that since we started, npmx is one of, if not the biggest users of the Microcosm ecosystem. 30:02 So once again, I want to say thank you so much, Fig, Phil, Bad Example, which is a really bad handle. 30:08 It's a— you're a great example in the community for having this— these services up for us to use. 30:15 And of course, because the data is public, anybody can use them on any website they want. 30:21 A great example here is Blento, where you can connect any atmospheric data. 30:29 And if we scroll— oh, sorry, let me go all the way here. 30:32 And if we scroll all the way down on our Blento here, you can see there's so many contributors. 30:38 Geez Louise. 30:39 And we also have a leaderboard here. 30:43 So right now Svelte is at the top with almost Almost 200 likes, so shout out Team Orange, you're doing great. 30:52 Followed up by Nuxt, Vite, and Vue. 30:55 I think they're all green. 30:56 So Team Green also catching up. 30:59 So if you have a package, if you have a community, you know, show your support. 31:04 Tell people to like things on npmx, right? 31:09 Let me scroll. 31:11 Let me go this way. Zeu 31:12 Yeah. Patak 31:14 And now coding and virtue signaling with likes, that's not the only way you can be a part of an open source developer community. 31:24 Right? 31:25 You can be just talking about your favorite feature in a library. 31:31 You can congregate? 31:35 Coalesce? 31:37 Collect? 31:39 Different libraries and implementations of your protocol. 31:43 In this case, there's a bunch of PDS stuff. 31:45 Or not even coding related, you can be a designer. 31:49 Dame over here changed the blue sky thing to better ingredients, better pizza, Papa John's. 31:53 That was great. 31:56 Like, design is also a part of being in the open source community. 32:02 And so no matter where you are, in the web, being a part of the open source community, whether you're on code bases, right, like Entangled and GitHub contributing code, whether you're talking on Bluesky or Twitter, or if you have the money, contributing through Open Collective and Patreon, We want to surface your contributions as well because it's not just coders. 32:36 It's everyone. 32:37 And that's the goal with NPMX. 32:40 And so for the next slide here is a concept that community member Alex whipped up on Figma for a future of NPMX where you can scour the full network for what the project is doing and its community. 32:59 So you could see here. 33:01 It could be Blue Sky posts. 33:03 It could be GitHub patch notes. 33:06 It could even be the maintainers themselves just surfacing specific people. 33:10 So no matter if you're a maintainer, you're just a— you're a contributor, or you're just someone that, like, we need to give special thanks to, we want to shout you out. 33:21 And one of the ways that we're looking into this, into implementing this feature is keytrace. 33:27 It's a very promising product where you can connect many different accounts to your Atmosphere account. 33:35 In this case, I have here mine where it's my Atmosphere account, right? 33:40 My Proto account connected to my Tangled, to my GitHub, as well as just my website in general. 33:46 So you know that if you go to zia.dev, that is definitely me. 33:51 And so once again, I want to really, really stress that no matter who you are, you can be a part of the open source community. 34:00 So if you code, come and contribute code, right? 34:08 Engineer with us. 34:10 If you are a designer, make things pretty with everyone. 34:15 If you know any other languages, I only, like, you know, I really only know one, but some people can do like 10, amazing. 34:23 Translate, that's very, very important, right? 34:28 If you are really into accessibility, making sure everyone has access and everyone can use the tools that we build, you are also important as well. 34:37 And of course, if you have the money to keep the lights up, you are important too. 34:41 So if you are any one of these and NPMX has resonated with you, Please come build with us. 34:49 We are at npmx.dev. 34:52 If you want to take a look at the code, we are at repo.npmx.dev. 34:56 If you want to chat along, talk about anything and everything npmx, go to chat.npmx.dev. 35:02 That will go to the Discord. 35:05 And, of course, if you want to tag us on Bluesky and just, you know, talk online, we are at social.npmx. 35:14 With that in mind, I just want to say thank you once again to the atmospheric conference, Boris, Ted, Nick, for organizing this. 35:24 Everyone in this room who is so passionate about the atmosphere and the future that it brings that they're here in person. 35:32 And of course, people who are online watching remotely, no matter where you are, it is very wonderful. 35:39 So once again, I want to say thank you. 35:40 And before we wrap up, I want to bring on Matthias for final remarks. Zeu 35:44 That was great. 35:53 Yeah, I wanted to say thank you, but you did it so well. 35:55 So I just will say again, thank you so much. 35:58 Actually, these past days have shown us, like, make us very hopeful because you are not only building the technology that we need, you are living it. 36:09 And this is also what we need. 36:11 You are living in using the principles that you want to put into the technology. 36:17 So yeah, you make us very hopeful. 36:20 And I want to say that not only if you want to build with us in the sense of building like NPMX, but if you are building anything else, still let's talk. 36:30 Because there is always things that we can collaborate. 36:33 We can abstract libraries and use them together. 36:35 We can help Fik and give him the money to actually— like, yeah, we can do really a lot together. 36:45 So that's it. 36:48 Thanks a lot.