
Open Source Stacks with Ant Wilson
Supabase CTO Ant Wilson shares his journey from GeoCities to co-founding the open-source Firebase alternative, plus updates on storage, functions, and local dev.
Episode Description
Supabase CTO Ant Wilson shares his journey from GeoCities to co-founding the open-source Firebase alternative, plus updates on storage, functions, and local dev.
Episode Summary
Ant Wilson, CTO of Supabase, joins the show to trace his path from building GeoCities websites in the 90s through university computer science in the UK, early blockchain exploration, and eventually co-founding Supabase in Singapore. The conversation covers how Paul Copplestone's frustration with Firestore's write limitations led him to build a real-time engine on top of Postgres, which became the seed of Supabase. From there, the discussion moves into recent product developments including the new storage API (enabling projects like open-source TikTok clones), a workflow/functions engine inspired by AWS Step Functions and built in Elixir, and efforts to make local development as frictionless as possible with a simple CLI setup backed by Docker. Ant and the hosts also debate the value of computer science degrees versus self-teaching, the rise of browser-based development environments like Replit, CodeSandbox, and StackBlitz's WebContainers, and whether the future of coding will be fully cloud-based. The episode wraps with Ant discussing the Build in Public streaming series, the migration from Auth0 to Supabase Auth for their own product, and what keeps him motivated as a co-founder navigating the demands of a fast-growing open-source company.
Chapters
00:00:00 - Ant Wilson's Background and Early Coding Days
Ant Wilson introduces himself as the CTO of Supabase, originally from Liverpool and now based in Singapore. He recounts his earliest experiences with programming, from hacking around on GeoCities and Microsoft FrontPage in the 90s to trying to install games on school computers with improvised scripts.
The conversation moves into his university years, where he properly learned Python and C++, built his first complete program in Pygame (a fly-catching game that taught him about collision detection bugs), and landed his first job working on distributed systems failover and ZFS storage clusters. He explains how those early infrastructure roles gave him a foundation before he transitioned into the startup world, eventually failing at a couple of ventures before settling in Singapore.
00:02:48 - Early Blockchain Experience and University Reflections
Ant discusses reading the Bitcoin whitepaper in late 2012 and being fascinated by the technology but not treating it as an investment opportunity, a decision he looks back on with some regret. He describes eventually getting deeper into blockchain development while studying abroad in China, working with a professor on a blockchain project in Beijing.
The hosts pivot to a broader discussion about the value of computer science degrees. Chris shares his own experience feeling that his degree didn't directly help his JavaScript career, and Ant acknowledges the lag in university language choices while arguing that starting with harder languages like C++ builds appreciation for modern frameworks. He highlights the negative transfer problem of switching languages, recounting how he initially tried to write JavaScript as though it were Python, and singles out a software engineering practice module with a simulated startup exercise as the most practical thing he learned.
00:08:18 - Practical Knowledge, Moving Abroad, and Meeting Paul
The group briefly touches on Big O notation and sorting algorithms before Ant notes that much of his file systems knowledge is now abstracted away by cloud providers like AWS. Chris raises the topic of moving abroad for career growth, and Ant explains how relocating to Singapore through the Entrepreneur First accelerator was pivotal — it's where he met co-founder Paul Copplestone while they were each running different startups in the same cohort.
Ant describes living in a shared house with other program participants, which led to constant idea-sharing and ultimately the first conversations about what Supabase would become. He reflects on Singapore's appeal as a technology hub that offers the cultural richness of Asia with the practical advantage of English as a working language, contrasting it with the expense and complications of relocating to San Francisco.
00:13:13 - The Supabase Origin Story and Product Updates
Ant tells the full origin story of Supabase: Paul built a chat system on Firestore, hit write-per-second limitations, swapped to Postgres, and then built a custom real-time engine in Elixir that listens to the Postgres write-ahead log and streams changes over WebSockets. That engine gained traction on GitHub and Hacker News, sparking the vision of an open-source Firebase alternative where developers get a complete backend in a box.
The discussion then shifts to recent product launches, particularly the storage API that has enabled projects like open-source TikTok clones. Ant also introduces the upcoming functions and workflow engine, explaining how the team chose to adopt the AWS Step Functions states language rather than inventing their own specification, and how they plan to add a React Flow-based visual drag-and-drop interface to make building workflows more accessible.
00:20:11 - Browser-Based Development and Local Dev Tooling
Ant shares his enthusiasm for Replit as a learning tool and demonstrates how Supabase can be integrated with browser-based environments, including Webflow. The hosts bring up StackBlitz's WebContainers and the broader trend of making the browser a universal runtime, which leads to a philosophical discussion about when browser IDEs make sense versus robust local setups.
The conversation then covers Supabase's local development CLI, which spins up all necessary services via Docker with a simple npm install and startup command. Chris predicts that cloud-based IDEs like GitHub Codespaces and CodeSandbox — which recently acquired the iPad coding app Play.js — will reshape development workflows within five years. Ant expresses excitement about these trends while noting some concern about GitHub's dominance across the developer tool stack.
00:29:08 - Building in Public, Auth Migration, and Closing Thoughts
Ant explains the motivation behind Supabase's Build in Public streaming series, primarily aimed at lowering the barriers for new open-source contributors who may feel intimidated by unfamiliar project cultures and unwritten rules. He shares a couple of humorous false starts, including a stream that turned into 30 minutes of reading Twitter documentation and a session with Paul where they forgot to save the Twitch recording.
The episode wraps with updates on upcoming features including mobile auth improvements, two-factor authentication, and the long-awaited migration of Supabase's own application from Auth0 to Supabase Auth. Ant reflects on what keeps him motivated as a co-founder — the ability to switch between diverse projects, the strength of the core team, and the energy that comes from community contributors building client libraries in languages like Go and Swift.
Transcript
00:00:00 - Anthony Campolo
Ant Wilson. That's right. That's a pretty easy one to pronounce. You're the CTO of Supabase. All right, cool. You got a nice, easy title. Ant Wilson is the CTO of Supabase, and welcome to the show.
00:00:25 - Ant Wilson
Thanks for having me, guys.
00:00:26 - Anthony Campolo
Great to have you. We had Paul on a while ago, and we'll talk about some of the things that we talked about with him and expand in other areas. But before we start getting into all that, let's hear a little bit about who you are and what your history is with programming.
00:00:42 - Ant Wilson
My name is Anthony. I'm from Liverpool in the UK originally, and now I'm in Singapore with some of the team here at Supabase.
How I got started with coding was, I think, building websites on GeoCities in the '90s, like a lot of people at the time, and then trying to make things work in Microsoft FrontPage and really struggling with that. I tried to learn Dreamweaver, a lot of that stuff.
It wasn't until I went to uni in the UK that I really got started with proper programming. I think before that it was just a lot of hacking around, trying to install Doom 95 on the school computers and stuff like that with, you know, super-hacky scripts and just trying to learn them from memory.
At uni, I really started to learn Python and C++ and all of this stuff, which got me excited. I think the first full program I ever wrote was in Pygame. It was like a game where you had to catch a 2D fly on the screen with chopsticks, and it was also the first time I faced the collision detection problem.
[00:01:43] The fly would get to the edge of the screen and, instead of bouncing back inside, it would somehow glitch off the side because it's not an obvious thing to code into game logic in your first ever program, anyway. That was also my first experience of turning something that's a bug into a feature, and you just say, well, that's just part of the rules of the game. Sometimes the computer inexplicably wins.
After that, my first job was in distributed systems failover for high-availability storage clusters. I got into ZFS, which is one of these super-scalable file systems. I think they were the first people to use a 128-bit address space for the file system, which I think means you can technically store something crazy like 16 exabytes or something of storage. So I really got into the storage and failover side of things there.
After that, I just knew I wanted to go into startups. I worked for a few, started a few, failed a couple of times, and then that's how I ended up in Singapore, getting involved with a lot of different startups and meeting and working with cool people.
00:02:48 - Anthony Campolo
And you were someone who was actually fairly early to the blockchain world. That was one of the early things you worked on. I'm curious what it was like doing that back then and now, seeing where it is today in that progression.
00:02:59 - Ant Wilson
Definitely a lot of regrets. I think when I first read the Bitcoin paper, it was like the end of 2012, and I remember getting quite excited about it, but just from a technology perspective. I never really saw it as an investment opportunity. That, in hindsight, was a huge mistake.
But just seeing how people are using these different data types to achieve different things... A colleague actually kind of talked me out of getting really into it at the start because he was already talking about the energy consumption problem. He said, well, if you can find a way not to waste so much computing power and it can partner up with something like at home, or it also does protein folding as it's creating these hashes, then maybe it would be interesting. But I think at the moment it's just a bit of rubbish.
I think I bought a couple, and then it wasn't until like three years later that I saw on the news that it was like $1,000, $6,000.
[00:03:59] And it made me sit up again and kind of pay attention. Then I did a bit of blockchain development on the side for a few years and thought, well, I really want to go headfirst into this.
At the time, I was doing a semester abroad in China at the university in Beijing, and one of the professors there was running this blockchain project. So they let me help out, and that's when I really started to get quite into it.
00:04:23 - Christopher Burns
You're obviously from the UK. You said you were from Liverpool. If you're not from the UK, Liverpool is basically where the Beatles came from and has a very strong accent.
What I find really interesting is you went to university in the UK, and there's always a lot of questions when it comes to developing and building products, becoming a developer, coming into the community, into the space, what languages to learn. And there's a really big stigma, I think, sometimes around university and having a computer science degree.
Personally, I studied computer science for three years and got a qualification. Has it really helped my career as a JavaScript developer? Not really, because I learned C and C++ constantly. Yet you could say some of the paradigms moved across, but apart from that, I feel like my degree never helped my JavaScript skills.
So I was wondering what you think of and look back on your degree, and if you don't necessarily think it was worth it, but it helped you get to where you are today in terms of your programming skills.
[00:05:35] And if you think you could have done it without having a degree.
00:05:39 - Ant Wilson
It's a great question. The choice of languages, there's definitely a lag in most universities. You are kind of developing on maybe the previous generation of languages. At the same time, I think starting on something like C++ makes you work harder when you're writing code, so that when you finally discover things like, oh, these JavaScript frameworks, you're much more appreciative that you can work very quickly.
It's something I've been thinking about a lot, actually, because, like I said, my background was primarily Python and I had to make the transition to JavaScript. It's a funny one because there's a lot of positive transfer you get from moving from language to language or framework to framework, but you also get this negative transfer of knowledge, which means that for the first few years I was trying to write JavaScript as if it were Python. I even did a few job interviews back in the day where I got that feedback directly. It's like, well, why are you writing this as a for loop and not as map and things like this?
So it's definitely two sides. I think the work we're doing now, a lot of the infrastructure, we're starting to manage large amounts of databases and API servers. The theory, I can see it coming in more and more in the trade-offs and decisions we have to make about the infrastructure and the way it works.
There definitely are parts to it. One of the modules I remember the most was a software engineering practice module, which was probably the most useful. That's the one where they introduced you to Git. There was one lab in particular where they basically did a simulation of what it's like to build a web app and effectively a startup.
You would build a web app and they would just start hitting you with requests, and it would be like the request would say, oh, what's one plus one? And you would have to write some code to create the correct response on the web app. Then it would get more complex and it would say, oh, what's the capital of France? And you would have to write some code that would respond with Paris, and you slowly build up all these things.
There was a big scoreboard on the wall where every time you responded correctly, you got some points. If you threw a 500 error, you would lose, like, you know, a thousand points or whatever. And then once in a blue moon you would get TechCrunched. So they would send you a huge amount of requests rapidly, and if you responded well, then you would obviously fly up the leaderboard. But if you threw a bunch of errors, you would drop off completely.
Stuff like that was exactly the kind of stuff that we then experienced in the first six months of Supabase. It's like, you're going to hit scale, you're not going to be ready. You need to make some quick decisions about how much time to spend writing tests versus how much time rushing out these new features. So I think there's obviously some useful stuff that I've probably never looked at since.
00:08:18 - Christopher Burns
What about O notation on queries?
00:08:21 - Ant Wilson
Yeah. I mean...
00:08:23 - Christopher Burns
Yeah.
00:08:24 - Ant Wilson
But that's an interesting one because it does occasionally...
00:08:27 - Christopher Burns
Pop up.
00:08:28 - Ant Wilson
Pop up.
00:08:29 - Anthony Campolo
I would imagine it comes up more if you work at a database company than the average developer.
00:08:33 - short split/interjection
Yeah.
00:08:34 - Christopher Burns
Yeah, probably.
00:08:37 - short split/interjection
Yeah.
00:08:38 - Christopher Burns
Which sorting algorithm is the most effective one? I don't know, whichever one Stack Overflow tells me.
00:08:44 - short split/interjection
Yeah.
00:08:45 - Ant Wilson
And it's a good point as well, because all the stuff I learned about file systems and block storage and stuff like this is, to a certain extent, abstracted away by AWS now. And the fastest way to get up and going is to just defer that work to them. If you're really optimizing for a specific project, you might need to dig in a bit more.
But what we do is we create databases and storage systems that are supposed to be generic because people are building different applications on top of us. So at the moment, at least, it's better that we just defer it to them.
00:09:17 - Anthony Campolo
For you, though, that's about knowing the right database to pick out of the myriad options and how to actually make the most out of this huge source of databases that are being given to you.
00:09:28 - short split/interjection
Yeah.
00:09:28 - Ant Wilson
Yeah, definitely.
00:09:29 - Christopher Burns
I think that's one of the biggest things that any university can learn: you don't have to do everything yourself. There were so many modules that we were tested on doing a whole solution ourselves. One of my modules was sorting out a whole bunch of data to find out what the average weather was on a given day, and it's like, well, yeah, that totally makes sense.
Sometimes there's already a service out there that's a weather API that you just say, give me the average for this day, you know. I think there are a lot of things universities and every organization can learn about teaching programming. But then there's a lot of it that it doesn't teach you.
Did you ever do a module on talking to an API, like a third-party API, by yourself using REST? Because I never did that. You kind of just got chucked into it sometimes.
My big question, following on from university, is how much do you find it's helped your career to not necessarily give up your roots, but to move away from your home country, to move to another country, to look for and work on opportunities?
00:10:35 - Ant Wilson
It's clearly helped a lot, because this is where I met my co-founder in Singapore and a lot of the early team here. And it's definitely useful to move to technology hubs to effectively just meet like-minded people. It's probably becoming less of an issue now because of COVID, and the fact that we did work remotely from Asia shows that you don't necessarily have to move to Silicon Valley to run a Silicon Valley startup anymore.
There are a lot of benefits that come with that as well, in that we also don't have to pay Silicon Valley engineering rates because it's so expensive to live in the Valley. People can effectively live wherever they want. We still get access to top talent.
I was in London for a few years first. It was definitely an important move then, but maybe now it might not be as important.
00:11:23 - Christopher Burns
And did you move to Singapore before you met Paul or after?
00:11:27 - Ant Wilson
Before. I moved for an accelerator called Entrepreneur First, which runs in London. It runs in Singapore. There's a few locations around the world. We were both on the same cohort, but we were running different startups. I was working on a crypto project. He was working on building the metaverse.
But we ended up living together, so we lived in a house with a bunch of other people from the program, and that just resulted in sharing a lot of ideas and ultimately talking a lot about the first version of Supabase.
00:11:56 - Christopher Burns
A lot of people say picking a university and where to do your first job are big decisions in your life. You're still young, by the looks of it. So moving to Singapore must have been one of the biggest decisions you've made in life.
00:12:11 - short split/interjection
Yeah, yeah.
00:12:12 - Ant Wilson
I'd done the China thing before. I think it was about 12 months before that, and I knew that I loved the idea of being in Asia. I mean, it's just the place that's most different to being in the UK or being in London in terms of culture and new languages and new food and all of this stuff.
The thing about Singapore is people also say it's like Asia for beginners, because you can come here and continue to speak English. I don't know if that's necessarily a good thing, but it definitely makes running a business a little bit easier. As an English speaker, I love it.
And I think, like I said, if it's a choice between going to San Francisco now and spending all this money and dealing with US politics versus living in Singapore...
00:12:55 - Anthony Campolo
What's wrong with US politics? They're totally fine. No one has any problems.
Cool. Let's get into the beginning of Supabase. I'd love to hear the origin story of how you two decided to create this company. How you landed on the idea, what sort of testing went into it, and all that.
00:13:13 - short split/interjection
It actually started...
00:13:14 - Ant Wilson
With Paul. He was working at his previous startup, and he built a chat system on Firestore, and they rolled it out. Then he realized that they were dropping some messages because there's this limitation on the number of writes per second you can do per document, which is kind of one of the issues depending on what you're using it for.
So he just thought, well, he doesn't want to build around that restriction, so he swapped it out for Postgres. But obviously the first thing you lose is this really nice real-time functionality where you can just subscribe to the changes from the client and receive them directly.
I think he tried a few Postgres solutions that were built around triggers and notify, but the restriction there is the payload can only be so large. I can't remember specifically how much, but there's a cutoff before you need to do an extra fetch to get more data out. So not that scalable. I think at the time he also wanted to just learn Phoenix and Elixir, the framework.
[00:14:15] So he basically built his own real-time engine, which listens to the Postgres write-ahead log. It pretends to be a replication database, receives the full stream, and then blasts it out over WebSockets. So that was literally the first version, just this one real-time engine.
He put it out on GitHub and on Hacker News and people just really liked it. Elixir is quite a cool framework and this solves a big problem for a lot of people, so it got a bit of traction. That's when we said, well, there's other stuff we can build here. We can build in the REST API, we can build in the storage API. We can really start to bring these tools together.
How cool would it be to have, I think at the time we were talking about, this template library where you just have your whole business in a box and you click install and you just get everything you need and all you need to do is write the front end. So basically what people have been doing with Firebase, but just on a fully open source stack. And that was the thing that was most exciting for us, was just like, well, then you can take it and basically do whatever you want with it.
[00:15:15] And it's just so extensible. That was what got us really excited.
00:15:18 - Anthony Campolo
Very cool. And we went into some of that with Paul on our previous episode, and that'll be in the show notes as well. And we've talked about your whole history with building auth and having to migrate a bunch of databases away. So there's a decent amount of Supabase lore already we got here.
Let's start getting into some of the things that have been built out in the previous couple of months since we last talked to Paul. I know that storage has been a big thing that you've shipped, so do you want to talk about that a little bit?
00:15:47 - Ant Wilson
Definitely a big one for us all. The Firebase features just get requested one after another. So it's always balancing which thing to deliver next. The other ones are like offline sync for mobile, functions, and things like this.
We just felt like storage would be a really big win for a lot of the things that people are using Supabase for, web apps and mobile applications. Again, it's just super exciting to see some of the things people are building. Like the first TikTok clones have started to appear, and the best thing about that is they've also open-sourced their code. So now if you want to build a TikTok clone, you just take that application and it just comes with everything you need, and it's connected to storage and all of this. That's been super exciting.
00:16:28 - Anthony Campolo
Functions is also something that would be interesting to get into, because you had a blog post where you talked about how you were looking for something that would be kind of similar to AWS Step Functions, which is a more niche AWS service. It's like a Lambda state machine, is kind of how I would describe it, which, if you know what those are, it's actually kind of cool to think about.
So I'd be curious how you landed on that in particular and how that's been going as you've been building it out.
00:16:56 - Ant Wilson
The cool thing about working on Supabase is we are using Supabase to build Supabase. We're building a service for people where we use the database, where we use the real-time APIs, and all of this stuff. We thought a lot about, like, well, what problems are we facing now?
The problems are things like when someone signs up, we want to send them a welcome email. We want to spin them up a new database. We might want to send them a follow-up email after three days to say, you know, how are you getting on? Here's some cool things that you might not have seen about the product.
So we were just lacking this engine, effectively a workflow tool. I think in the past, if we were just working on some other startup, we would have used Zapier or something like this and plugged it in. But we saw it as just another opportunity to either take some existing open source tool and package it together, or build something ourselves and include it as part of this kind of ultimate package.
[00:17:51] So we just started looking at the different options. We knew it would make sense to use Elixir again just because of the scalability. It would work really well with our existing real-time engine. It allows us to provide a clustered solution for tens of thousands or hundreds of thousands of customers who themselves also have millions of customers and scale out horizontally as we need to.
But then we really didn't want to reinvent the wheel on the specification language. I think Step Functions is kind of something that a lot of tools have already been built around, and something that's relatively straightforward to learn. Basically just making it super easy for people to port existing applications or plug into their existing workflows.
00:18:33 - Anthony Campolo
So you mean like AWS-specific things or more like open source kind of libraries that interface with it?
00:18:38 - Ant Wilson
Yeah, exactly. A use case for this is triggering Lambda functions as part of your workflow. That interface already exists between the States language and triggering the Lambda function. So it didn't really make sense to reinvent our own states language. So we thought it best to just adopt theirs.
00:18:56 - Anthony Campolo
And would that be comparable to like XState? I'm not super fluent with state machines, though.
00:19:01 - Ant Wilson
You can choose. Some of the examples we've written are just in YAML. I wish I had an example handy, but it's more just like saying, do this task, which might be invoke this Lambda function, wait for five seconds, or wait for five days.
00:19:17 - Anthony Campolo
Yeah, I looked at some code. You're right, it does look a lot like YAML, actually.
00:19:20 - Ant Wilson
Yeah, the thing is, depending on how complex your workflows get, it can get a little bit out of hand. But it's also kind of the best solution we came across.
00:19:30 - Anthony Campolo
I think I see state machines as one of those things where it's like you'd rather have a gun and not need it than need it and not have one.
00:19:37 - Ant Wilson
Yeah, definitely. The cool thing is, actually, just this morning I was looking at the front-end designs for it. So we're using, or we will be using, React Flow to basically just drag and drop the workflows together. So people don't have to use the language. They don't have to write the code themselves. They can basically pull in a bunch of existing components in a UI and hopefully make it a lot easier.
But the same with everything we do. We like to make the first experience super simple, something like this, but also give people the ability, if they want to, to dig in deeper, add more customization, get their hands dirty in the code if they want.
00:20:11 - Anthony Campolo
I saw a video you put out that was really cool, where you did a demo showing how to connect to a database using Replit, which is like an online IDE. And one of those things where once I saw you do it, it was like, yeah, obviously you can do that, but I'd never even thought of it before. I'd never seen anyone do it before. So I'd be curious where you got the idea for that.
00:20:32 - short split/interjection
I just thought...
00:20:33 - Ant Wilson
It's really exploding at the moment. It's being used by people learning to code everywhere. I really see it as the most useful tool I've seen so far for people learning how to code. The main reason being that you can just open a new tab and start coding. And that's just, in terms of usability, the best thing I've ever seen.
You've got this whole multiplayer thing and people working together. And I just thought, well, there's no reason why someone couldn't just integrate Supabase in here and just start throwing data around and listening to real-time streams and doing all this stuff. So I just thought, purely for experimentation initially, why not?
And the same thing with something like Webflow: in a couple of lines of JavaScript, you can basically plug Webflow together with Supabase and then just have all these new possibilities of things you can build.
00:21:19 - Anthony Campolo
Well, did you see the recent WebContainers thing from StackBlitz where you can run code in the browser?
00:21:23 - Ant Wilson
Oh no, I didn't see it.
00:21:25 - Anthony Campolo
Yeah, it's using WebAssembly. The first reaction is like, okay, so we're using WebAssembly to run JavaScript in the browser. Like, what? But it's kind of interesting when you think about it, because it gets into how could we just make the browser the universal runtime? You should check that out. I think you'd find it interesting.
00:21:45 - short split/interjection
I think that just...
00:21:46 - Ant Wilson
Makes a lot of sense. The client has been getting fatter and fatter for years. We're at the point now where it doesn't make sense to have that many native programs and native code, and every time I have to download a new client to join a video call or something, I'm just thinking, why do I need to run this native code? Why can't I just do it through the browser? So the same applies for coding as well.
00:22:07 - Anthony Campolo
So do you think you'll get to a point where there'll be an entire IDE built into Supabase?
00:22:12 - short split/interjection
Oh.
00:22:13 - Ant Wilson
That's a good question. I think we're kind of not far off with the SQL editor that we have at the moment. I think as long as the experience around connecting to GitHub and managing that whole flow can be done in a nice way, then I would love to move in that direction.
One thing that's not very attractive is if you go on the Auth0 dashboard, for example, you have to write your Auth0 rules in Node within the browser, and there's a lot you lose, like, say, version control. And if you've got a really nice local setup in VS Code or something like that, you lose a lot. But if we can get there, if we can add those last few bits, then I think, again, there's no reason why we couldn't just be coding in Firefox.
00:22:56 - Anthony Campolo
I struggle with this philosophically all the time, because I 100% agree with you that as a learning tool, if you're starting from complete zero and you try to start someone off with a whole development environment and everything, it's like you're setting them up to fail with all these tools that let you just write code in the browser.
But at the same time, you look at something like Cloudflare Workers. They have a really great IDE to write worker functions in the browser, and getting the Wrangler CLI installed is a huge pain. It's really hard, but once you get there and you just run commands to deploy your code and write it straight in VS Code, that's when you're like, okay, this is the way to go. Even though it's a little hard to get there, it's really the way to go.
So this is something I know you've been working a lot on with local development in Supabase. Can you talk a little bit about how you're trying to get a good local development environment to work with something that's kind of cloud-native to a certain extent?
00:23:50 - Ant Wilson
Yeah. That's funny. We're going the other way. We're bringing it back local. It's one thing that is pretty important as we build out these open source tools, that we actually make sure that people can run them themselves.
One of the things that attracts people to Supabase and Firebase is the fact that they're super easy to use. So when you have to do a lot of configuration on your local machine and orchestrate these services, because Supabase is a lot of different services at this point, just the storage APIs, the REST APIs, real-time APIs, auth APIs, the database, like a whole list of things that need to be orchestrated, if it's one step too difficult, then no one's going to bother.
So if we want people to contribute, you need to reduce that friction as much as possible. At the moment we've got it down to you do an npm install Supabase, and then you kind of just do Supabase up.
[00:24:42] And as long as you have Docker installed, it'll spin up all the services you need locally. Unless you're on an M1 Mac, where I think we're still patching some of those Docker bits together. But definitely trying to reduce that friction as much as possible.
There's some stuff that just is difficult, like configuring the auth server isn't that straightforward. So people do have to do a little bit of work to understand the options there.
00:25:07 - Christopher Burns
I really think in the next five years, the industry is going to be flipped on its head yet again, because within the last two years we've seen mass adoption of VS Code. Two more years go by, and I think we could see mass adoption of GitHub's Codespaces. So that's VS Code in the cloud.
And also, what's the other company that makes CodeSandbox? CodeSandbox, yeah, there we go. I think CodeSandbox is really the stealth player here. The reason why it stood out to me is that they bought an application that's on iPhones and iPads called Play.js. If you've never used it, it's early, but it allows you to use your iPad or your iPhone to basically build React apps completely on your iPad, running things like Next.js.
00:26:05 - Ant Wilson
Oh, that's cool.
00:26:06 - Christopher Burns
In a native IDE style. What I think is most interesting about it is, I think we'll come to this point where it's universal to work on something, that you can just work on a codebase wherever you are, no matter what tools you have on you. More cloud infrastructure, less dependence on devices.
I think what's actually really cool about this, like Play.js, is what Anthony was saying: people that have never developed before, I could load up Play.js, click the Next.js sandbox, and it literally loads a whole Next.js app without ever even touching a terminal, by literally clicking the play button. It loads, Next.js is running, and any changes you make are right there.
And what's really interesting is the reason CodeSandbox bought the application, obviously to bring in the team, is to go further. So then you can deploy from the application, you can do more. It's really worth the read. I think it's on their website about their acquisition, but I think this whole universal container, but just for an IDE, is yet to take off.
[00:27:15] But the patterns are forming. GitHub is obviously doing it with Codespaces, and CodeSandbox are doing it further into other applications and even native ones such as an iPad app.
00:27:28 - Ant Wilson
I hope they do do something big and impressive because it's quite scary how far ahead GitHub is of everyone else in all of developer experience and controlling the stack. I mean, it's great. I love it, but it's just a little bit concerning that it's all owned by one company.
00:27:45 - Christopher Burns
Very much so. You could say that's why people are also backing CodeSandbox.
00:27:49 - Ant Wilson
Yeah.
00:27:50 - Christopher Burns
Sometimes you forget and you're like, oh, this isn't VS Code, because it looks quite a lot like VS Code in ways.
00:27:56 - Anthony Campolo
So going back to these tools being good for learning to code, when I was in my bootcamp, I actually did not have a working local environment. No one could figure out how to get my npm working. I couldn't start a development server on my computer, period.
So I used CodeSandbox for all of my assignments for like two months. I would code it all in CodeSandbox, put that on a Git repo, and then deploy that to Netlify. That's how I developed. That's how I learned to develop. And so it's not all crazy to see this as the future of dev, you know?
And I've actually talked to Ives about getting Redwood running in CodeSandbox, and there's a lot of really interesting stuff happening there.
00:28:32 - Ant Wilson
Yeah. That's awesome. I really can't wait. I still remember the days of going to conferences, and you go to a conference workshop, and the first 30 minutes of the workshop is setting up your environment. It's just dreadful.
00:28:46 - Christopher Burns
There's a lot of people in the Apple iPad community who are like, we want to run code on our iPads. And it's like, well, it's already here if you just look a bit closer, because you've got Tables Plus on your iPad, you've got GitHub, you've got all these tools. You just need to look a little bit closer. And we're almost there without realizing it.
00:29:08 - Anthony Campolo
You've recently started doing a weekly Build in Public series. I'd be curious what the reasoning was behind starting that, and how you're thinking of what sort of content to do and what stuff to build in public.
00:29:21 - Ant Wilson
Probably one of the main drivers is just to show people how easy it is to contribute. Not how easy it is, but coming into open source for the first time can be a bit daunting. You don't know what the rules are, you don't know what the culture is of that particular project or organization.
And I think that's probably the biggest, or at least the thing that stopped me early in my career from coming in and making open source contributions. It wasn't that I didn't know how to write the code or how to make the fixes. It was like, well, what are the rules here? Do I need to speak to someone? Do I need to ask someone's permission to even work on this thing?
So I think just putting a face to the repos and saying, you're welcome to come, you're welcome to work on whatever you want, just drop me a note, leave a comment on this YouTube channel now, and get involved, I think breaks a few of those barriers down and really just gets the tools out there.
[00:30:16] I'm a little bit gutted because I work a lot on the infrastructure side at the moment, where there's a lot of secrets on my screen at all times. A lot of secrets and some internal code and stuff like that. So I haven't had a chance to do a full session yet.
I did start one, which was the Twitter integration for GoTrue for the auth engine. I got like 30 minutes into the stream, and I realized that all I was doing for 30 minutes was just reading the Twitter documentation. I was like, this isn't interesting for me, and it's not going to be interesting for anyone else. That was a bit of a false start on the live stream.
00:30:52 - Anthony Campolo
I would say you'd be surprised because it's not just that you're reading the docs. It's that you specifically, with all of your experience and context, are reading the docs, and you're showing how someone like you would go about reading the docs.
So people who watch streaming, they want to see more of you going through the process of doing it. Maybe it was super boring, I don't know. But that's something to keep in mind, is that people are interested more so in the process, and in hearing you talk through your thought process as you do it.
00:31:20 - Ant Wilson
No, yeah. And we're definitely going to do more and more in the coming months. It's just great to have that content.
Another false start we had was me and Paul did one where we built an example application, and we didn't realize that you had to specifically ask Twitch to store the video afterwards. Just a lot of lessons being learned.
00:31:37 - Christopher Burns
In terms of secret management, I really recommend Doppler if you've heard of it. It's currently quite small as a startup, but basically the whole premise is it just removes all your secrets, so they hold all your secrets for you.
And then every time you go to start your application, you basically prepend your command with that command and it'll inject your secrets into your application. So you've got no need for a dot env file. This is really good if you're on a stream or something, because you never got an env file to leak. And if you have to add a key to Doppler, you can easily add a new key without seeing all your other keys.
I really recommend Doppler as well. If you're using multiple team members that all have multiple keys for dev environments, then it's a super useful product.
00:32:30 - Ant Wilson
I'll check it out.
00:32:31 - Anthony Campolo
Aside from what we've already talked about, is there anything else coming up that you're excited for at Supabase?
00:32:35 - Ant Wilson
I mean, on the auth side, we've got a bunch of stuff which is like mobile auth, like two-factor. I think on the last podcast with Paul, you asked us why we were still using Auth0 in our own application instead of Supabase Auth.
00:32:49 - Christopher Burns
Yeah, I think that was me.
00:32:50 - Ant Wilson
Yeah, we're in the process now of finally moving that over, so that'll be out soon.
Some other things: I like helping people launch on Supabase. You know I mentioned that we've got more and more people building cool stuff. It would be great to kind of get all these people together and think through with them what their launch process is going to be, how they're going to get more eyeballs on their projects, and help them bug test and stuff like this. I think I'm pretty excited about that.
00:33:14 - Anthony Campolo
Anything else you want to ask Chris before we close off here?
00:33:17 - Christopher Burns
I'm personally still waiting for our stars to align so I can use Supabase. It won't be a long time until that point, as they're hosting all your infrastructure on DigitalOcean. Sometimes you feel too deep in it when you don't want to be. It's like, please, just someone else extract it for me.
But then it's the whole thing of like, okay, if I want to then abstract all this DigitalOcean stuff away, what things would replace it? What's the infrastructure around that? How does it stay online, etc.? Current events: Fastly went down yesterday and took out half AWS websites because they also run on Fastly.
And it's this thing of like, well, you can't complain your DigitalOcean droplet didn't go down because you run it all yourself. It comes with pros and cons. So I guess my final question would be, what's the most exciting thing that gets you going and out of bed every time you hit a slump in Supabase? Because obviously you're a co-founder.
[00:34:19] So, you know, I feel it myself in my own company. You have some moments and you say to yourself, what am I doing? Is it all worth it? You doubt yourself, and then you remember a key piece of information like, yeah, but we've achieved this. What's that for you? That would be my final question.
00:34:36 - Ant Wilson
We have a lot of different projects on at all times, which is a lot to manage. But the nice thing is that if you ever get in a bit of a rut with one thing, there's always something else that you think, oh, well, what would be cool is if I worked on this for a few days and built this new feature, and then when you're in higher spirits, then you can crack on with the difficult task that you were slogging through.
So that's definitely one thing, is having a few different projects that you can move to depending on what mood you're in. And I think I just really enjoy the immediate team that we've built, working with those people.
And then because it's a community-driven product as well, people are always contributing. Like someone this week did the Go library, someone else did the Swift libraries. Just getting to work with and meet these new people who are all pulling in the same direction effectively just can be really uplifting.
00:35:31 - Christopher Burns
Thank you for your time. And where can listeners of this podcast find you?
00:35:36 - Ant Wilson
I'm @Wilson on Twitter. Supabase is supabase.io or supabase_io on Twitter.
00:35:44 - Anthony Campolo
Thanks so much. And as someone who's been watching Supabase over the last year, it's been really fun over the last couple of months in particular, as all these people are discovering Supabase and being like, oh my God, have you heard of this thing? Supabase is amazing. So, like, yeah, it is pretty tight.
Yeah, I know. Congrats on all the success and we look forward to seeing where this goes in the future.
00:36:08 - Ant Wilson
Yeah. Thanks, guys. Thanks again for doing the late and early starts. One of the things about this new world, isn't it?
00:36:16 - Christopher Burns
Just for our listeners, it's now 9:00 in the morning in the UK. What time is it in Singapore and California?
00:36:24 - Ant Wilson
I'm just coming up to 4 p.m., which is actually great for me.
00:36:27 - Anthony Campolo
Yeah, it's 1:00 a.m. here in California.
00:36:29 - Christopher Burns
Everything for the pod life, as they say.
00:37:02 - Anthony Campolo
Sweet. Awesome. Thanks, man. That was fun.
00:37:04 - Ant Wilson
Yeah, that was awesome. That was good. Did we? We didn't send you any swag out yet, right?
00:37:10 - Anthony Campolo
I do not have swag. No, but I would love some swag.