Back to overview

Local First Architecture and Side Projects with Alex Anderson

In this podcast episode, web developer Alex Anderson discusses his side project Thorium, an open-source spaceship bridge simulator game designed for science education. The conversation also explores the principles of Local First architecture and the joy of side projects like baking.

Web developer Alex Anderson speaks with Kent about his side project, Thorium, an open-source spaceship bridge simulator game designed for science education, which also encapsulates the principles of Local First architecture. Anderson elaborates on the advantages of Local First design in ensuring direct data access and enhancing web syncing, all while balancing privacy with user experience. A specific focus is given to integrating Local First architecture with a Remix app to enable seamless online and offline app functionality. Additionally, the conversation touches on the personal joys and communal aspects of baking, showcasing the human side of tech experts engaged in pioneering web development and community-driven projects.

Watch this episode.

Meet Alex at Epic Web Conf.

Guests

Alex Anderson
Alex Anderson

Transcript

Kent: Hey Hey everybody, this is Alex Anderson. I'm super excited for Alex to be speaking at Epic WebConf in April, and I want you to get to know him a little bit. He's a good friend of mine. Alex, can you introduce yourself to us?

Alex: sure. I am a software developer at EchoBind. We're an agency that makes fancy websites for folks. I also have a little side project that is a spaceship bridge simulator game built with web technologies so everyone can get together and pretend role play as if they're on the bridge of the enterprise flying a ship through space. So that's called Thorium. That's good fun. And I like to bake and... Yeah.

Kent: Awesome. Yeah, I'm actually curious about the ship emulator, the bridge emulator. We've

Alex: Yeah.

Kent: talked about this before. You've actually been on my podcast before. Folks can take a look at that. But I think lots of people are gonna be like, whoa, whoa, ship emulator? Like, what is this? So this is, and correct me if I'm wrong, just like four science centers where they have a built -in install of these different consoles, I guess, or terminals where you can sit and kind of set up like it's the bridge on the enterprise or something like that? Or is this a game that people can play on their own, like when organized their own little bridge at home? How does that typically work?

Alex: Yeah, I got my start at one of these space centers in Utah where they have fifth and sixth graders come for field trips. So half of the field trip is spent learning about science and space and light and gravity and stuff. And then the other half they spend in the simulators doing these live action missions where each of them has the different job. So those are physical sets that look like bridge, like Starship Bridges, which is really cool. But as I've come to find, it actually is a whole genre of video games, and there are a couple of them out there, that you can do this in your living room with friends. So Artemis is the big one that folks probably have heard of. There's another one called Empty Epsilon, another called Starship Horizons. These are all pretty easy to Google. That all kind of do the same thing in your living room. And I'm working on a version that also you can do in your living room. but it's open source and built on the web. So if

Kent: So

Alex: anyone

Kent: it's

Alex: wants

Kent: better.

Alex: to contribute,

Kent: Yeah.

Alex: hey. I mean, I'm not going to say that the web or open source is better or worse, but it's just my differentiating factor.

Kent: Yeah, yeah, very cool. That's a lot of fun. I really enjoyed the intersection between software and the real world and finding ways to use software not to escape from the real world but to experience the real world more deeply, I guess.

Alex: Mm -hmm. Yeah, for sure.

Kent: Cool, so you're coming to Utah, again, your old stomping grounds for Epic WebConf, and you're gonna be speaking about local first development, something that's been on

Alex: Mm

Kent: the

Alex: -hmm.

Kent: minds of a lot of people. Do you wanna talk a little bit about what you're thinking for your talk?

Alex: Yeah, Local First was first coined by an article written by a research team called Ink and Switch, where they talk about seven different ideals of software that apps can try and embody. And they wrapped it all up in Local First architecture.

Kent: Hmm.

Alex: So things like the data lives on your device, which means you're able to access it really quickly, but it still synchronizes to the web so that you can collaborate with other people. And you have control over your data instead of just giving your data to a giant megacorp and having no idea What control you have over that data in the future? things like that as it turns out the reason you don't see a whole lot of local first apps is because it's really hard to do especially on the web just because of some of the deficiencies Deficiencies some of the decisions that web browsers have made trade -offs in the name of privacy and security which

Kent: Hmm.

Alex: is a

Kent: Mm

Alex: little

Kent: -hmm.

Alex: ironic given that local first is a lot about privacy and security but one example is Safari web browser will indiscriminately delete data if you haven't visited a website in so many days

Kent: Mm.

Alex: just to make it harder for for people to track you online so trade -offs that's not to say it isn't valuable to do things that are part of this local first ideology on websites. And I'll show an example of an app that I've built using Remix as a server rendered app. that ended up not working very well for me because I needed to use it in a place that I didn't have an internet connection. And so I would make requests and they'd fail and I'd be like, oh, now I can't use any of my app because I don't have an internet connection to get to a good page again. So having the app, all of the code and the data for that app be local to my device makes it so that I can continue using that app even if I don't have an internet connection, which is pretty common using this particular type of app. I don't want to give away what the app is yet, but there's a hint to it in the title of my talk.

Kent: Okay, all right. Well, I don't want to spoil anything either, so I'm not going to start making guesses. But yeah, I think relatively recently is when Client Loader and Client Action showed up. Is that going to have a pretty big, or is that a big aspect of what makes this work with the Remix app?

Alex: For sure. It makes it a little bit easier, still a little, it's tricky to do well. But it makes it a little bit easier. You don't have to jump through so many hoops because of what Remix provides to you with those tools. And it makes it easy to combine local data from your device with data from the cloud, from your server still. So you can still have server -side rendering for bots and crawlers and for progressive enhancement when you do have an internet connection, while falling back to the local first data when you're offline.

Kent: Yeah, that makes sense. Very cool. Well, I think, I guess one other question that I have about this topic before we get to the talk in April is, do you see this, the entire set of features, like those seven principles, being like really necessary for a lot of, like most apps or are, is there like a spectrum of like, different features can be useful for different types of apps.

Alex: Yeah, I think that it is possible to embody all seven in an app, but like I said earlier, not on the web,

Kent: Hmm.

Alex: but embodying some of those principles, which I'll reiterate in the talk and you can go look at the local first paper that was written by Ink and Switch if you want to see all seven of them. You can pick and choose from them, certainly, to make your app better, more robust, more collaborative, that kind of thing. And there

Kent: Hmm.

Alex: are a lot of tools that let you do that already. which I'll do a survey of in the talk as well.

Kent: Cool. Well, I'm looking forward to that for sure. I think that's going to be a very interesting talk. The last thing that I want to ask you about is when we're there at the conference, you definitely want to talk with people who are there and everything. So I'm going to, on your behalf, I'm inviting attendees to come talk to Alex.

Alex: Hehehehe.

Kent: But what are some of the things that you're excited to talk with people about at the event?

Alex: Um, I'm interested to see, I guess, what people are building themselves. Um, what, what most fascinates me is I talk about my cool spaceship project and people like, Ooh, and then other people talk about their cool side projects. And I'm like, Ooh, there's

Kent: haha

Alex: just a lot of cool people doing cool things that it's not super visible because they're not on Twitter or they're not, uh, They're not advertising themselves as much as other things are. But still being able to hear about those things in person is very cool. So even if your cool side project is a new recipe for bread, because I

Kent: That

Alex: like baking.

Kent: sounds great. Yeah, I love it. That's

Alex: And

Kent: super.

Alex: yes, you could talk to me about my bread recipes too. I'd be happy to share them.

Kent: I have a friend, we went over to his house for dinner last week and he had some bread that he'd made and he just got into making bread because it's kind of fun, I guess. So maybe I

Alex: It is.

Kent: should look into that.

Alex: It is the gift that keeps on giving. Anything related to cooking, because people love food. They will always

Kent: Hmm.

Alex: be happy when you give them free, delicious food.

Kent: Hmm, yeah, that makes sense. All right. Hey, thanks Alex. Looking forward to seeing you in Park City in April.

Alex: Likewise.

Kent: Bye, everybody.

Sweet episode right?

You will love this one too.

See all episodes

Featured episode

The Limitations and Potential of SQLite with Glauber Costa

Season 5 Episode 18 — 09:41
Glauber Costa