Jon Meyers === Jon: ~, that's happening. What are you building with Super base? What's the Uh~ Chris: ~Um, I'm building a mobile app, so I'm doing the whole React native stuff some, so I have like kids, so I'm trying to build a kids app for them, and then we'll see where it goes. So I'm hiring like designers and stuff. I was like, I got, I'm gonna take this seriously. I'm going all out. We'll see. We'll see how it goes.~ ~Mm-hmm.~ Jon: ~yeah. How about that? Is that a little bit?~ Chris: ~Uh, yeah, it's not bad. I mean, it's a little bit low, but I can hear 'em. I don't know if it's too low for you though, on the recording.~ Jon: ~Yeah, yeah. Test, test, test. Sorry. Uh, yeah. On my end, like the wave forms, it looks like Kate is clipping and quite loud. So maybe, uh,~ Chris: ~I think we're I, me and you. Me. And you have good levels, it seems. Yeah.~ Jon: ~Yeah.~ Chris: ~You're the loud one.~ Jon: ~Okay. How about we go in between the two? Is this a good, healthy waveform? Maybe I'll just turn it down just a little bit. All right, there we go. Is that, is that~ Chris: ~That looks good. Yeah, that looks a lot better.~ Jon: ~All right.~ Chris: ~Test, test, test, test, test. Hello? Hello.~ Jon: ~Actually, just quickly before we start, is there a, um, did you want me to put headphones on? Are you guys hearing what's coming back through the speakers at all or is it fine?~ Chris: ~Sounds good to me.~ Jon: ~Yeah. Awesome.~ Chris: ~All right, let's do the spiel. All right. Sorry, I'm gonna take a sip of water real quick.~ Jon: ~do this. I believe in~ Chris: ~my, uh, let me get my makeup on. All right. Here we go. You ready? I'm ready. All right, cool.~ [00:00:00] Hello and welcome to Pod Rocket, the podcast brought to you by Log Rocket. Log Rocket helps software teams improve user experience with session replay, error tracking, and product analytics. Try it free@logrocket.com. My name's Kirson. With us today is John Myers, dev developer advocate at Superb Base. John, welcome back to Pod Rocket. John was on Pod Rocket back in 2022. Tell us about yourself and your role for those who may have missed that episode. Jon: Hey Chris. Thanks for having me. ~Uh,~ as you said, my name is John Meyers. I'm a developer advocate from Superba. ~Um,~ and so I dabble in a few things across the company, ~but,~ but focus mainly on content creation. ~Um,~ and so I usually make lots of YouTube tutorials, egghead videos, blogs, things like that. ~Um,~ but most of my examples are usually showing how to use super base with next JS or remix. They're ~sort of my two, uh,~ my two web frameworks of choice. ~Um, yeah. And ~so that's, that's, that's what I do. Chris: ~Awesome. Perfect. Yeah, like we were saying before, I was,~ I use super based now and I, I love the product, but it looks ~like, like a,~ like a couple weeks ago, ~looks like~ you all had a launch week, like around April 10th through 14th. It looks like you [00:01:00] actually launched quite a few things. So I kinda wanna just run down through the list. ~Um,~ obviously you're familiar with these, but ~uh,~ for those that aren't,~ um,~ get ready for a load of information, really great features. ~Um,~ so first I wanna talk about, ~uh,~ the open source logging server. ~Um,~ can you tell us a little bit how that works? Jon: Yeah, so firstly, launch week is like ~a,~ a crazy time at Superba. We do it every ~like~ three or four months where ~we,~ we release a new feature every single day of the week. And so it ends up just being this crazy time where we're basically, ~uh,~ yelling on social media. A whole week and getting everyone very excited. ~Uh,~ and it's also just a very insane time internally at super base because usually things, ~uh,~ I mean they're, they're mostly ready, but there's definitely things that are being committed to as they go out the door, ~uh,~ which is a lot of fun. ~And so, yeah,~ the first, the first day, ~um,~ the big focus was super base logs. ~And so, um,~ this was where we open sourced log flare, which is what we use for. Logging at Superba. So Log Flare was a separate company that was acquired by Super Base a bit over a year ago. ~Um,~ and it's used for all things logging at Superba. So,~ um,~ what we did was take that and open source it as its own separate package, so now you can run it as [00:02:00] its own. Separate hosted thing anywhere you want. ~Um,~ but probably the more exciting part is that it's now included in local development. ~Um,~ and so you can run, ~uh,~ all of your queries and everything locally, ~uh,~ and get some really good debugging, ~uh,~ cuz anything you can solve locally doesn't go out to production. So that's a good thing. Chris: ~Yeah. That's awesome. I,~ I also ~like, just like~ love the whole open source approach with everything. It's super, super awesome to see and let you guys ~kind of~ prioritize that stuff. ~Um,~ the next one is interesting. We have the, ~um,~ super based edge runtime, self-hosted dino functions. ~Uh,~ seems like Edge is like all the, all their edge right now. Can you ~kind of~ tell us about ~like~ what edge functions are, ~um,~ how to self post edge functions and just pretty much everything about them. Jon: Yeah, for sure. So yeah, edge functions are very exciting. That's something that I'm probably most excited about at the moment. ~Um,~ and so edge functions are serverless functions that run at the edge. ~Um,~ and so the edge is like a collection of CDN nodes distributed all over the world. ~Um,~ and so the idea is that you are running the logic of your application as close as you possibly can to your [00:03:00] users. Geographical location. So I'm here in Australia. This is probably why I'm most passionate about it cuz I'm here in Melbourne, Australia and it's very far away from US West and US East, which is where most of the, ~uh,~ most of the internet is hosted. ~Um,~ and so by having, ~uh,~ an. By having edge functions running closer to me, I can maybe go to Sydney or one of the other, ~uh,~ cities in Australia, ~uh,~ to get that response from the server rather than going all the way across to US East or US West. ~Um, and so, yeah,~ so edge functions just allow us to move as much computing as we can, as close to users as possible. ~Um,~ and so with. Us open sourcing the super base edge runtime. ~Um, it allows us to, uh, or~ it allows you to run that, ~uh,~ edge runtime as its own separate package again, so you can host it anywhere. ~Uh,~ it's written in rust, which is very, very fast. ~Um,~ but we've packaged it up as a dock image so it can basically be hosted. Anywhere that DACA can, so I guess anywhere. ~Uh, ~and so alongside with the blog post and things that I'm sure will link to, ~uh,~ for each of these, ~uh,~ we have put together a guide for how to self-host, ~uh,~ [00:04:00] Dino functions using the super base edge runtime, ~uh,~ on fly.io, which is very exciting. Chris: Awesome. I'm curious why, ~um,~ why Dino and what is the future of the super base edge runtime? Jon: ~Yeah. So, uh,~ Dino is obviously incredibly fast. ~Uh, it's,~ it's a great growing ecosystem. ~Like,~ it's just, yeah, it's amazing all the cool stuff that, that they're building there in the community around it. ~Uh,~ it's also secure by default, and so obviously that's a big deal when you are dealing with databases ~and,~ and people's data and things. ~Um, and so, yeah.~ Dino is an awesome choice. ~Uh,~ but the building, the super base edge runtime allows us to ~kind of~ replicate all of the cool stuff that's coming out of Dino. So things like,~ uh,~ they just recently launched Atomic KV storage, ~uh,~ which is ~sort of~ the best of both worlds of ~like, uh, Kind of~ in memory ~really,~ really fast casing, ~uh,~ and then ~like~ the power of databases and making things atomic. ~And, uh, yeah,~ without going too much into that, they're building lots of cool stuff. And so we can replicate all that cool stuff, but then we can also implement our own stuff on top of that, so we're not just restricted to what, ~uh,~ Dino ~is,~ is launching. ~So this is similar, I guess, with super base, uh, like this is a collection of open source tools that wrap around a Postgres database.~ ~So you could use. PostGrest, uh, which is like our REST API that sits on top of a Postgres database. You could run that yourself and, um, and just have a rest API sitting over your, your Postgres database. Or you could use go through directly for orth, or you could use S3 directly for, for storage. But by using, uh, by being in the super base ecosystem, uh, hang on, just let, sorry.~ ~Let me have some~ Chris: ~time. My turn too. Here you go. Ah, rewind.~ Jon: ~Yeah. All right. We'll go back to, uh, yeah, similar to how you could run this stuff, blah, blah, blah. So similar to how Well,~ so Super Base is just a [00:05:00] collection of open source tools that wrap around a Postgres database. ~Um,~ and so you have things like Postgres, which we're using as an API wrapper over your, your Postgres database. We have go through, which is what we use for orth. We have s3, which is what we use for storage. You could use all of these things directly, but being in the super base ecosystem means that you get access to all of those other things. And so every part of that, Piece can know like who the user is that's actually requesting this thing. So by having all of that tied together in the same ecosystem, it makes it much more powerful. ~Um,~ and so that's ~kind of~ why we are building our own edge run time so that we can more closely integrate that into the super base ecosystem and make it even more awesome. Chris: ~Dude. That's awesome.~ Yeah. Big fan of Dino. That's, that's, That's great. ~Um,~ the next thing I wanna talk about, which is I find super, super awesome, is for super based storage, B3 of zoomable uploads now with support up to 50 gigabytes, which is insane. ~Um, can you kind of tell us like Yeah, yeah.~ Can you tell us like what a zoomable uploads are and then just ~kind of~ discuss the features of storage E three. Jon: ~Yeah, for sure.~ [00:06:00] So presumable uploads allow you to resume and upload. ~Uh,~ and so this can be, ~uh,~ the reason that you might wanna do this is if you have like for. Say,~ uh,~ bad internet or something like that. ~Um, if,~ if your internet connection is choppy on a mobile device or something like that, ~uh,~ zoomable uploads allows you to continue uploading a file ~where you,~ where you left off, rather than needing to, ~um, sort of~ start from the beginning. Another example would be ~if,~ if a user like closes the browser window before an upload completes, that's another common use case. ~Um,~ and ~so, uh,~ by implementing reusable. Sorry, presumable uploads. ~Um,~ we are able to pick back up where they left off. So if they were like 90% finished, they can just do that last 10%. ~Um,~ and so this is possible because we've, ~uh,~ implemented Tuss, which is an open source protocol for presumable uploads. ~Um,~ this allows us to do multi chunk. File uploads, ~um,~ which also allows us to, to increase the size of the file, uploads up to 50 gig. ~Um,~ but it also means that, ~um,~ multiple people can ~like,~ contribute to uploading a file so one person could upload. ~You know,~ the first 20% and then someone else could take over [00:07:00] uploading the next chunk of the file or the next series of chunks of the file. ~Um,~ and so only one person will be able to upload each chunk successfully, but they can ~kind of~ share that load, which is, ~uh,~ very cool. And so some of the new features in storage, v3, ~uh, um,~ more image transformation options. So we can now do quality filters. ~Um,~ which is very cool. ~Uh,~ we now support WebP, which is something people have been asking for a lot. ~Um,~ we've built a njs loader, so you can use super based storage directly with Njs, ~um,~ which yeah, makes all that stuff much easier. ~Um,~ pre-signed upload URLs are another big one that people have been asking ~for,~ for a long time. So previously you could only do, ~uh,~ pre-signed. Download URLs. ~Um,~ and so now you can make the upload process a lot more secure as well. ~Um,~ and also just a lot more, ~uh,~ like size and file type limits over a bucket. ~Um,~ and so yeah, we have a lot more control over that. Again, because it's in the super base ecosystem. Chris: ~Awesome.~ Yeah, for me, the pre-signed up upload URLs is like a, a huge one for me. So ~that's, that's,~ that's awesome. ~Um,~ the other one, so for the next feature I wanna talk about, this is something I feel [00:08:00] like many people use is, ~uh,~ especially me, is the super base off. So like single sign on mobile. ~Um,~ service side support. Can you ~kind of~ talk about the new features of super base off? Jon: Yeah, so Orth is definitely, ~uh,~ one of the most highly used parts of super base. Turns out implementing orth on your own, not very simple. And, ~uh,~ even if you do implement it yourself, having that confidence in what you've built versus what someone else has built, ~uh,~ I dunno, maybe that's a bad attitude to just ~like,~ outsource all of ~the,~ the difficult stuff or just trust an external company rather than, ~uh,~ what you've built. But, People tend to, ~uh,~ struggle with implementing their own orth. And so a lot of what we, ~uh,~ work on is by making a ~very,~ very good, ~uh, very,~ very easy to use orth solution. ~Um,~ and so one of the things that we've added to that is single signon using SAML 2.0. ~Um,~ and so this allows us to, ~uh,~ build enterprise apps. ~Um,~ and so you can, ~uh,~ build. Either ~like~ an entire company enterprise app that you're actually, ~you know,~ giving out to consumers. But the probably more practical version is you can now build like cool internal tooling at work [00:09:00] and use the security of single signon through, ~uh,~ your workplace. ~So,~ Yeah, that one's very exciting. ~Um,~ we've also launched Pixie, which is, ~um,~ a new, ~uh,~ protocol or P P K C E is how you spell that, but it's pronounced pixie, apparently, ~uh,~ is how you, ~uh,~ is a, ~um,~ a protocol for server side authentication. ~Um,~ and so this will. Allow us to greatly simplify doing like server rendered, ~uh,~ authentication, which is usually a bit of ~a,~ a sticking point when people first get started with super base or any kind of ~uh,~ web framework that kind of mixes some client stuff and some server stuff like, All web frameworks at the moment. ~Uh,~ another big one that we've launched is a, ~uh,~ native Apple login with iOS. So this is the first of many things that we're gonna be building ~kind of~ natively for mobile. ~Um,~ but yeah, lots of exciting things coming to super bas o or just come to super baso. Chris: Yeah, that's awesome. I think like just being able to just implement authentication. Within like [00:10:00] less than an hour or so, at least for me, in my case, using Sybase is just like something I've always wanted. I think like ~for,~ for me personally, ~like,~ or anyone that's been doing inching for a while, no one wants to do off themselves. So when you have ~like~ someone like Sybase or Firebase or whatever, ha, what have you, ~um,~ being able to offload that to like experts, ~um,~ in my opinion is just like a win. And the whole like Native Apple login. Like I'm already using that. I think that's ~like,~ I actually didn't even know that was a new feature cause I just came into it and I was like, oh, it's here. I'm gonna use it. So ~that's,~ that's amazing. ~Um,~ so for the next thing I wanna talk about, it looks like it has ~like~ quite a lot of things going on inside, ~uh,~ is super based Studio 2.0. So this looks like, ~um,~ there's quite a lot, bunch of things in here, so you can ~kind of~ tell us about that. Jon: Yeah, so super based studio ~kind of~ wraps up a whole bunch of little kind of quality of life fixes and things that, ~uh,~ kind of small improvements to the dashboard, ~um,~ or super base studio, which is what you ~kind of~ use to manage ~your,~ your super base project. ~Um,~ and so we've. Implemented a whole bunch of stuff to just make ~like, um,~ setting a value from another column, like from a related table, ~um,~ more. [00:11:00] Simple to do in the dashboard. ~Um,~ but some of the bigger highlight features are, ~um,~ we've implemented super base clippy, ~uh,~ which is ~our,~ our ai ~uh,~ helper, our AI assistant. ~Uh,~ we have now embedded that in, ~uh,~ the superb based projects themselves. And ~so, uh,~ superb based clippy now knows about the structure of your database, not the data. Obviously that would be, Not cool, but, ~uh,~ super base AI now knows about, ~um,~ the structure of your tables and things in your database. So now you can ask clippy questions, ~um,~ and it can give you answers based on the actual structure of your database. So in the context of your actual super base project, it can give you answers to your questions, which is, ~uh,~ the first of many very cool AI things we're dabbling with at the moment. ~Uh,~ the other one is, ~um,~ graphical is another. ~Um,~ Big thing that we have implemented into, ~uh,~ super Base Studio 2.0. And ~so, uh,~ this isn't, I don't think we talk about this enough, but there's actually a whole GraphQL server, ~uh,~ running alongside your super base instance. And ~it's,~ it's auto generating all of your type definitions and resolvers as the [00:12:00] structure of your database changes. And so if you add a new table, it will automatically create the types and also thers for that. ~Um,~ and so one of the steps towards making that a little more. Well known is we've embedded graphical into, ~um,~ your super base project. And so you can ~kind of, uh,~ inspect your schema and build out your queries and mutations again, right from the context of your super base project. Chris: I actually did not know that. So you're telling me that I can just actually use graph queries to interact with my whole data layer? Oh. Jon: that's right. Chris: That's awesome. I had no, no idea about that. That's amazing. Um, Jon: this is what,~ uh,~ the majority of people say. And so we definitely need to change that. We've ~kind of~ been doing a lot of like quiet work on this in the background and making sure it's really, ~uh,~ solid before, ~uh, sort of~ talking about it too much publicly. ~Um,~ but yeah, this is built on an extension that we actually, ~uh,~ built at Super Bay. So this is another really cool thing about super base. You mentioned at the start having everything like open source by default. ~Um,~ Something that I, I've, am, ~uh,~ really enjoy about working at [00:13:00] Superba is that we tend to like, have a problem we need to solve, and then rather than just ~kind of~ solving it internally and just being like, use super base and you can also solve this problem, we tend to break that out into its own open source package, or in this case its own separate Postgres. Extension. ~Um,~ and so PG GraphQL is a, an extension that you can install on any, ~uh,~ Postgres instance and, ~uh,~ get this, all of this GraphQL server auto-generated stuff for you. ~Um,~ and then we just include that extension in your super base project to make it easy to use with super base. I think that's just like an awesome attitude to, ~uh,~ open source and, ~uh,~ yeah, making sure everyone has access to all the cool tooling. Chris: ~Yeah. That's amazing. I know, like, I think one other thing that came out, I'm not sure. Um, sorry. We'll, rewinding, rewind 10 seconds. Hold on. Okay.~ Jon: ~All right. Take a sip of water.~ Chris: ~Yeah. I'm gonna do a sip of water. So what I, um,~ Jon: ~breath.~ Chris: ~One other thing. Um, so like~ one other thing that I saw on the list was Cascade Deletes. ~Um,~ was that something that's new with this whole launch week as well? Jon: Yeah, so Cascade deletes have always been possible, like writing raw SQL l ~Um,~ but that was another thing that we embedded into, ~uh,~ or added to the, ~um,~ super base studio so that you can do that ~really,~ really easily in your [00:14:00] dashboard. So when you are creating a new column, ~uh,~ that is a, ~uh,~ that references another table, ~um,~ you can set up cascade deletes so that if you delete, ~uh,~ the. Record in the foreign table. The other table, ~uh, like~ let's give a better example of this. So let's say we have a collection of posts and then those posts are written by a user. And so if you delete that user, does it make sense for you to still have all of their posts? Cascade Deletes allows you to say, ~well,~ when I delete the user, I want to also delete all of their blog posts. And so you can ~kind of,~ rather than. What's called orphaning rose or killing off the parents of the, ~uh, of,~ of the records. You can set up cascade deletes where you, ~um,~ when you delete that parent record, you can also go and delete anything that references it. Chris: For me, I thought that was like a super great feature cuz ~like~ if I'm adding like my own like test data, it's like I just one click on a button, I can basically clean up all that data as I'm just ~kind of like, um,~ iterating on my data model. And I thought that feature was just like a superpower. ~Um,~ so when I saw that kind of nestled into the menus, [00:15:00] I was like, is this serious? That's, so then when I tried it and it worked, ~um,~ it completely blew me away. ~Um,~ so ~I,~ I really just wanted to just ~like~ bring that up because I thought that was just an experience I've never had with any other tools. ~Um,~ and it can be quite painful to have to manually delete or manually write your own cascade stuff. ~So, so that, that's super awesome.~ Jon: Or when you go to delete something and it says you can't delete that because there's all this other stuff that references it. It's really nice being able to ~like~ set up those relationships properly so that you can say, ~well,~ if this thing doesn't exist, it doesn't make sense for these other things to exist. Chris: ~Exactly. It's,~ it's a super awesome DX For sure. ~Or developer experience. Um, so the next thing I want to kind of dive into is the community highlights. Um, do you kind of want to go over anything there in specific there?~ Jon: ~Yeah, so PG Vector was, uh, actually, maybe, maybe we should take this back. Uh, I'm just, I should probably clarify what is, um, what is a community, uh,~ Chris: ~So, off, off, or off the record, is community highlights more? Is it just basically people that are an open source that you kind of set partnerships with in general and kind of just try to do like kind of collaborations, I guess?~ Jon: ~yeah, highlighting things that are building with super base or integrations that we've, um, we've built with other companies. Uh, how about we say, do you wanna give it to me again? And just rather than saying the community highlights, just say like, is there anything else you're excited about that the community is~ Chris: ~Yeah. Absolutely. Absolutely. Okay.~ Jon: ~there's PG Vector. The, the reason, again, off the record, don't, don't release this, uh, PG vector, which I wanna talk about, which links to like super base AI stuff. Um, is, uh, It's, it, I, it wasn't built like specifically for us, it was just, it just happened to be built as a Postgres extension. And then we've kind of, um, built some more stuff on top of that.~ ~And so I don't wanna say that they built it for Superba or that it was part of launch week or anything~ Chris: ~Gotcha. Gotcha.~ Jon: ~wanna ask if there's anything, uh, that the community's building that we're excited about or whatever,~ Chris: ~Yeah, sure. All right, let's do it. Okay. Clap my hands. All right, cool.~ So is there anything going on in the community that you're really excited about at the moment? Jon: Yeah, so PG Vector has been a massive thing. ~Uh,~ so this is a Postgres extension that's been built just for Postgres, ~um,~ but it allows vector types to be stored in Postgres as well as like nearest neighbor search.~ If,~ if you're familiar with any AI stuff, that's about as much AI stuff as I'm familiar with. ~Uh,~ but basically this unlocks storing. Like chat, g p t embeddings, ~um,~ and can be used with other open AI packages, ~um,~ [00:16:00] to basically build your own applications on top of chat G P T. And so this is, ~uh,~ what we have used for, ~um,~ building super base AI or, or clippy. ~Um,~ Both in our documentation, so you can ask our documentation, ~um,~ natural language questions, and ~it can,~ it can give you those resources. And as I mentioned before, that's now embedded in projects. And so you can ask your super based project about, ~uh,~ things that, ~uh,~ like how to write a role level security policy to lock down the post table, for example. ~Um,~ and so yeah, PG Vector is an awesome extension. ~Um,~ another thing that we've ~kind of~ been, ~uh,~ working on ~with.~ ~Some people at aws, um, is, or they, they built a new extension that allows you to, uh, to an extension for extensions, essentially, um, called tl. All right, rewind this. What is it called? Let me just quickly Google a thing. I know my job. I know how to do my job. I know stuff.~ Chris: ~I don't know anything. It's okay.~ Jon: ~Uh, what was it called? It is called no, P G T L E. All right. And that is a trusted, trusted language extension.~ Chris: ~That's a mouthful.~ Jon: ~Oh, yeah. All right, here we go. Jumping back in.~ Chris: ~Mm-hmm.~ Jon: ~thing we've been working on, um,~ with the people at AWS is, ~um,~ a new trusted language extension thing that makes it basically, ~uh,~ easier to build extensions for Postgres. And ~so, um,~ we have launched this new, ~uh,~ extension, ~uh,~ package manager for Postgres called DB Dev. ~Um,~ and so this is built on top of. Chris: ~Uh oh. Oh, we made it 25 minutes.~