237: FastAPI Cloud - Sebastián Ramírez
Brian:
FastAPI, the popularity has just gone through the roof. You're the, what, the number one framework now?
Sebastian:
Yes, that's so crazy. And it's like, you know, like I never expected.
Brian:
This Test & Code, we've got Sebastian Ramirez. And I'm probably mispronouncing that name, though. I can't remember. Is there a different way to pronounce your name?
Sebastian:
That's perfect. And also, like, I'm used to it. So, like, if you say it in Spanish, it will be Sebastian Ramirez. With the, you know, like the accent of the last A, but like I'm very used to just Sebastian. Yeah, that's probably the most common way I hear.
Brian:
How long has FastAPI been out? Was it just right before the pandemic hit?
Sebastian:
Yeah, I think it was like the first announcement was 2018, December 24. Because it was, I think it was like two years, exactly two years after they announced Python 3.6. because it was the one that enabled everything. So I was like, yeah. 19, 20, 21, 22, 23, 24, and now, yeah.
Brian:
That must seem like both not that long ago and a lifetime ago for you. FastAPI, the popularity has just gone through the roof. You're the, what, the number one framework now?
Sebastian:
Yes, that's so crazy. I never expected that.
Brian:
And that's like that's definitely the number one in python but i think you've did you say you're number one even above like ruby and rails and stuff yes.
Sebastian:
Yes yes so it's like it's like number one on like across languages you know like uh at least at least uh you know like in github stars there are many different ways to measure things but.
Brian:
At least in github.
Sebastian:
Stars is like the number run across programming languages for everything.
Brian:
Okay which.
Sebastian:
Is crazy crazy for fun.
Brian:
Yeah that is crazy and and there's so there's lots of people developing websites that don't look at how much like i'm looking at you wordpress people but uh but anyway FastAPI so what one of the the cool i have no idea why it's so popular but it's really easy to get started obviously except for the hurdle of okay now i've got this really cool thing getting it online and that's that's one of the things you've been doing with your new company right yes yes exactly the announcement this was just what a month ago yeah.
Sebastian:
I think like a month ago.
Brian:
Okay okay so FastAPI cloud is oh fast FastAPI company is FastAPI Labs. Okay, and your project that everybody can join the waitlist now if you go to fastapicloud.com, which I have joined the waiting list because I'm excited to try it out. But, okay, so I guess I have so many questions around this. Why do a startup, why do a company, what prompted you to do that?
Sebastian:
Yeah, I think it's similar to the open source projects, to, you know, like FastAPI type or SQLModel, like I was avoiding doing that for a while. I was avoiding building those projects for a while, and I was expecting that I was going to find some open source project that was doing the thing that I needed. But then after trying several, and like figuring out that there was nothing that was satisfying, what I really wanted, it was like, okay, it's probably time to go and build the thing. That's how FastAPI was born, And then that's also how SQLModel and Typer and, you know, like all the other open source projects I have built were born. The same with the product. It's just that like now finally I've been able to build something that can work as a product and it's not just like, you know, like just pure open source. In all the previous cases, you know, like building Typer, building SQLModel, at some point I thought like this is probably quite useful and maybe I can figure out a way to try to monetize it. but it just didn't really make sense to try to monetize that.
Sebastian:
Those were tools that had to be open source. They just had to. And it was such a foundational layer of applications that it just needed to be there. But then with FastAPI Cloud, it's just like the perfect match of something that people can use and that it will make sense to pay for it. And it was also for me it was sort of the right timing and the right situation like before that, And actually, like, for a very long time, I was promoting using a bunch of different tools to be able to deploy and actually, you know, to host things on your own. And I was one of the main promoters of one of the alternatives to Kubernetes because I thought it was, like, much simpler to manage and to handle. And, like, it worked quite well for many use cases. But the thing is, Kubernetes ended up, like, winning the battle against everything else. and it's like, you know, like, oh, Kubernetes is king. But then Kubernetes is so complex. And like for many, many use cases, for many teams, for many applications, it's just too much. So I ended up, you know, like in a state of, I can teach people to use FastAPI and build a product and be like, you know, like have something that is pretty much ready for production in like a couple of weeks or something.
Brian:
Yeah.
Sebastian:
And deploying that is like, you know, like I didn't have a way to tell people like, God, you can just do this or do that. It's like, now you're on your own. Like, go and study coordinates for months, maybe. Or, like, you know, like, try to use one of the clouds that try to abstract things away. But then, like, each of them has their own quirks. And then, like, you just have to deal with all that. And, like, yeah, it was not, like, the best. The best, you know, like, path forward to getting to that last milestone of just, like, deploying the thing.
Brian:
Yeah.
Sebastian:
Yeah, it was, like, this situation of, like, okay, you know, like, the king of things is Kubernetes, but this is just too much complexity for most of the use cases.
Sebastian:
And just, like, teaching that it's just, like, not necessarily feasible, and also probably not necessarily, you know, like, not necessarily everyone needs to know all that stuff. When it's like just doing the same over and over again for many applications. So if we can have a layer below that, well, I mean like a layer above Kubernetes and like that level of abstraction. And something that goes below the layer of FastAPI and that people can just like deploy that. The same way that people don't really need to go and learn the specifications of OpenAPI or something like that to be able to use FastAPI.
Sebastian:
And FastAPI harnesses OpenAPI and is built on top of that and around it. And when you build an application with FastAPI, by default, it's all integrated with OpenAPI. So you get all the standards and all the stuff. It's like going and working underneath for free. But you don't have to go and learn and become an expert in all those subjects. That's sort of the same idea I wanted to bring to just deploying FastAPI to the cloud and having something that could bring the same developer experience as building with FastAPI. So the idea with FastAPI is, you know, like you write the minimum amount of code and everything just works and you have very same defaults for most of the things and then you can tweak and configure the things that you need. I wanted to have that same experience for deploying applications and that's how FastAPI Cloud as a product, that's how it was born. That was the idea, that has been the objective just to have the best developer experience possible for FastAPI and figure out how to extend it further.
Brian:
That's pretty cool. Now, so we've got so many questions around all of this. Were you, before FastAPI Labs, were you developing FastAPI full-time?
Sebastian:
Yes, I was developing FastAPI full-time. So the timeline is more or less like this. Like I created FastAPI, then I ended up working in Germany. And then but you know like FastAPI the creation of FastAPI was pretty much on my my free time then when i was in germany it was i i had a bit of time to work on open source it was like one day a week at the beginning then at the end it was like no longer like that so it was just like you know like my free time and things like that after that i moved to another company
Sebastian:
and then i asked them to work only three days a week so i will have the extra two days just to dedicate them to to open source. But it was, you know, like on my own.
Sebastian:
Then after that, in 2023, Sequoia started the open source fellowship and I was the first fellow. And that meant like they will cover my expenses and I will just like spend all the time on open source during all that year.
Sebastian:
That's why I managed to migrate, for example, to the migration of FastAPI to PyDantic version two and being able to support version two and version one at the same time. That was a lot a lot of work and it required a lot of you know like very focused dedicated time a consecutive dedicated time so it required weeks of just like.
Sebastian:
Working consistently on the same thing not just like migrating that it's something that i wouldn't have been able to do if i was just like you know like working nights and weekends it will will have not been feasible so so i was i was being able to just like work full-time during that whole year and then 2024 that's when i started the company past
Sebastian:
api labs and like forward to present like it's been like a year and some months and we have been just like working a lot on building the product it's it's super fun like all the stuff that needs to go underneath just to be able to get one command FastAPI deploy and everything just works but they like all the stuff that needs to be built underneath is just so massive so much stuff so so like yeah that's what we have been building but it's like it's super exciting now we are at the point where it's super exciting we are seeing the fruits of all that work and like it's actually working and we can use it and it's like Like, yeah, I'm super excited about it. And it's fun that, you know, like I am the first user. So I'm just like building the thing to satisfy myself as a user. And now I can just like deploy applications like super quickly. And it's, yeah, that's super.
Brian:
Very cool. Do we have any like timeframe for when people can start using it?
Sebastian:
This is not super defined yet. So right now we have the waiting list and people can already join the waiting list. And we're going to start onboarding people from the waiting list. Right now, the stage we are in is that we are doing the alpha previews. So we are inviting a tiny amount of people just to do UX research interviews and check how people are stumbling with the system, what are the things that can be tweaked, that can be improved. Because we want to make sure that we have an amazing developer experience and that everything is just working very, very well for everyone and to make sure that we have... It's the same experience as working with FastAPI. That's the stage we are in. So we are taking rounds of alpha previewers. Then we go and tweak a bunch of things and improve a lot of things. Then we take another round of alpha previewers. It's just like a handful of people just trying out the system. After that, once we are happier with that, in the next months, we're going to start onboarding people from the waiting list to join the private data. It's going to be by invitation, at least at first, because we want to make sure that everything is working correctly, that we are recording people, that we are building the thing for what people really need to do and that we can gradually make sure that everything is just like working fine. So that is a process. And during the next month is that we are going to start bringing people in from the waiting system.
Brian:
Okay. Well, so, and then applications are like more than just the application. There's usually a database there and stuff. So are you guys doing the database hosting as well, or are you linking to other services for database hosting?
Sebastian:
That's a very good question. We are not hosting databases ourselves, at least not for now. We are integrating with database providers so people can, you know, like connect best-in-class providers for databases. We are already working, like, a few of them, like, you know, like, for the main things that people will expect for, like, Postgres types of databases, MongoDB types of databases, Redis, you know, like, yeah. So people will have a simple way to just integrate with them. One option is just like, you know, like you can use whatever provider you want online by just setting the environment variables and just like configuring the connection however you want. But we're going to have, you know, like integrations into the system so that people can connect their accounts and do it in a much simpler and easier way. So yeah, that is the way that we are approaching it. We want to hyper-focus on the developer experience of FastAPI and like making sure that we have a great product for FastAPI. So it's like a very, very narrow scope. But we want to nail it down. And then we're going to see how people are using the product and figure out what are the ways to expand from there.
Brian:
Okay. Now, the name FastAPI implies that the APIs are a focus for FastAPI. But there aren't people using FastAPI to just build websites. Well, first off, was that a surprise to you that people are building websites with FastAPI?
Sebastian:
I have been surprised by how many things are people building with FastAPI. There is so many things that I never expected. I remember, you know, like people controlling a remote terminal through FastAPI and WebSockets and things like that. Like, how is that working? It's super cool. It's not something that I imagined people would end up doing, but it's super cool. Also seeing people run FastAPI in, like, different types of devices and things like that. So, like, yeah.
Brian:
Okay. Well, is FastAPI Cloud going to be able to host websites? then?
Sebastian:
Yeah, so that well, our focus is of course FastAPI and the main use case is for FastAPI, but with FastAPI you can use, for example you can render any type of HTML templates using the tools that you want to render, so you can perfectly do that. And we also have a cached CDN layer on top of everything and on top of all the APIs, so you can perfectly host a regular website with FastAPI. There are also even tricks that you can do with FastAPI, you can mount sub-applications like, I don't know, Junk or Flask or other things, and that will probably work. Like, we are not going to advertise that in the documentation at the beginning because we don't want to, you know, like figuring out very corner use cases at the beginning, but like it's something that probably can just like work from the get-go. So like, yeah, whatever you are being able to do with FastAPI, you will probably be able to do it in the cloud. It's just like now we handle the cloud part and like we handle auto scaling and replication and building all the stuff.
Brian:
I'm starting to realize how complicated this realm of business is. Or maybe just scratching the surface. Yeah, on one of your pictures, was it on the first and only blog post so far on the FastAPI cloud? There's a picture on all the different tools needed for the choices. I mean, you don't necessarily have to know all of this, But these are some of the choices for your tool stack for hosting APIs. Wow.
Sebastian:
Yeah. The cloud native landscape, I think that's what it is called. And like cloud native is normally referred to like the technologies that are like related or adjacent to Kubernetes. Because normally, you know, like Kubernetes is this giant beast, but then Kubernetes alone is not enough. You need to add a bunch of things on top of that. It's not that you need to add each one of these things, each one of these tools, but normally you need to add at least one for each category, but then you need to know which one and know the categories. It's just a lot of information. And I mean, the funny thing is that this is
Sebastian:
not like a made-up image of something to try to make it look like a lot of stuff. This is the official website. It's a screenshot of the official website of the cloud-native landscape. And it's like okay yeah it's it's a lot of stuff at least at least that's what i think i don't think like everyone needs to learn all that stuff if we can get like it's also like you know like this the same way that people don't need to learn to move bits inside of the cpu and people can just like use python and then like be able to build products much faster i don't think like everyone One needs to know all the nuances and the details of how to set up apps. You know like a cloud system like kubernetes or like all that stuff so.
Brian:
If we can sorry no i'm excited about it because i'm i'm definitely i'm not i'm not afraid of learning new stuff but i just want to spend my time thinking about other problems so like as an example for like personal website i was using wordpress for a while for my blog but i didn't and then i was hosting it and time and do updates and stuff so i've switched to a static website not because i'm a nerd or anything but i mean but because i just don't want to deal with everything it's easier to deal with then i can think about what i want to write instead of thinking about maintaining it and i think in the case of like like something like hosting your FastAPI instance i don't really yeah i might be able to figure it out or have somebody on the team figure it out but i don't want to pay to spend my time or my money doing that i'd rather focus on the problems that my company is focused on instead of that speaking of companies though which so what kind of uh what's the target target customer you're aiming for for this so.
Sebastian:
The the first the first you know like our first focus is on individual developers small teams small startups and teams inside of corporations but normally it's small teams because a larger team normally has someone that is dedicated to solving these problems. So what we are solving is probably not as useful or as important right now for them, not necessarily. I mean, there are already people that are interested in FastAPI Cloud, even if they have like a big team and like people dedicated and, you know, like they want to be able to offload some of the lots of work that DevOps normally have to a tool like this.
Sebastian:
But probably the biggest value, the biggest immediate value will be for small teams, small startups, also teams inside of big corporations. Like, I don't know, I can imagine, for example, you know, like the data science team is trying to build something and then going through all the process of figuring out how to deploy something in their own infrastructure. Yeah. Figuring out how to set it up, who to contact, all the stuff, that may be too cumbersome and maybe just deploying to FastAPI Cloud will be a simpler alternative. And that's also, you know, it's also how FastAPI ended up spreading. It's just like going from developer to developer telling each other, hey, this is very cool. Let's just try it out. And then at some point, it became the de facto API standard for some companies, for some products. So that is the same approach that we are doing with FastAPI Cloud. We are not trying to go, you know, like, do all the enterprise sales and convincing some executives to force developers to use it or something like that. We are trying to, you know, like, the same as with FastAPI, work with and for the developers. And, like, this should simplify the lives of developers. And, you know, like, also the lives of DevOps that need to deal with a lot of developers and a lot of applications. Like, this should make things simpler. you know like if things just work then like the idea is that it should make make it simpler to just build applications yeah.
Brian:
So okay so this might even be appropriate for even a like a single person bootstrapped company or something might be able to use it so.
Sebastian:
Yes definitely definitely you know like that does it's also because you know like in a in good part i'm targeting myself, and also myself since I was a kid, that's what I have been targeting with my open source projects and the same with the product. I want to be able to just go and build something and make it work and have it out there and it just works. You know, as you were saying, that you would like to be able to focus on building the application and not necessarily a lot of the work on maintaining it. It's fun that a lot of that has happened to me. I have been having ideas of like, oh, I could build this or I could build that And I know how to deploy stuff because, yeah, like I could do it before building FastAPI Cloud. But then it was just so much work that it was like, yeah, no, I just don't want to spend like, you know, like the whole weekend just setting up Linux machines and stuff to be able to deploy a toy project. But now I can just...
Brian:
You can't just figure it out once. You have to, it's a moving landscape, so you have to keep on top of it. And that's the difficult part.
Sebastian:
Yes, yes, definitely. Yes, totally. Like you build something, like next time it's like, okay, I'm going to redo this thing. And it's like, everything just changed. And like, there's a lot of updates and like things are not compatible anymore. It's like, oh, you know what I mean? Like deploying a cluster from scratch or something like that.
Brian:
Well, then there's also like a threat models. I assume you're going to have some security systems in place around these systems.
Sebastian:
Yes, of course. So the whole point is we give things that just work and that have good defaults, best practices by default. And we keep the pace of the cloud so people don't have to do that. We just keep improving things all the time.
Brian:
The big thing I try to remember is if you can make the doing the right thing the same as doing the easiest thing, then people will do it. You brought up building things as a kid. When did you start coding? Were you coding as a little Sebastian?
Sebastian:
I started when I was like, what? I don't know, like 15, 16? I was just like trying to set up the website for my parents. I'm just like, I felt like, oh, this is probably similar to like a design app. It should be easy. And then I got stuck in there for the next 15 years.
Brian:
Yeah. Okay. A building, why did your parents need a website?
Sebastian:
So my parents were doing like human development courses and like coaching and stuff. Nothing to do with technology. It was like, you know, like a completely different area, completely different field. But I was helping them like, you know, like with graphic design and like some video production and like music production and stuff like that. And I was like, OK, now like everyone has a website and like there are websites for so many things. It would probably make sense for them to have a website. I can probably figure out how to do it. A brother-in-law helped me like with some of the ideas. And I thought this is how the domain name system works. I'm like, you need a domain and blah, blah, blah. and I was just like trying to learn how to do like HTML and CSS and JavaScript and just like trying to set up a website for them. And then at some point, just studying, I wrote some JavaScript with some alerts.
Sebastian:
Saying like hello world or something and then I ran that I saw the alert dialogue in the browser with the thing that I just wrote and it was like oh I was just so amazed and it was this is this is awesome like I just wrote this program you know like I was so excited and like yeah I think that that was one of the first things that hooked me into building things with code then it was a very slow process of like I didn't really like get into coding right away I was doing like a bunch of different things and we're learning a bunch of different stuff but like i was still attracted to that for quite a while then and when i was 20 something i started doing a bunch of online courses on coursera edx udacity from a lot of the biggest universities around the world teaching a lot of concepts about cryptography algorithms machine learning a bunch of things and that's that's when i got like really into actually coding and like i started working on that and again, That was more or less the timeline of me just getting into coding.
Brian:
Okay. One of the other origin stories I'm after is the FastAPI, actually all the projects you work on, but FastAPI is a great example. The documentation is stellar. And really, the writing style, it's not just complete, but the writing style is a lighthearted, it's not silly, but it's like you're, I don't know, It feels like somebody sitting there talking to me, walking me through stuff. How did you develop? Did you do documentation for other projects before coming into this? And how did that come about of having great documentation there?
Sebastian:
Thank you very much. That coming from you is a very, very high compliment. So, you know, it was... It was mainly trying to satisfy what I wish I had when I was starting. And when I was just like learning how to build things with like other frameworks that were already there and trying to understand how they worked. And like in many cases, they would assume that I will know what is an API or how to build an API. And they will, you know, like they will explain how to use the framework, but not necessarily that much apart from that. But then I didn't have a clear path and a clear way to how to build things with this. And that's one of the things that I wanted to achieve with the documentation was being able to explain everything.
Sebastian:
Being able to just start almost from scratch, from knowing a bit of Python, and then being able to learn how to build things with that. That was something that I really wanted to do. And I wanted to, I was targeting just myself when I was just starting up learning these things. That was the ideal user that I was having in mind for my documentation. So, like, yeah, it was very intentional to try to make it simple. And I also did, I actually ended up, like, I guess, what, developing a bunch of tricks for writing the documentation. So for example i will write the entire page and then i will read the entire page that i wrote again i will notice a bunch of typos and like errors that i could correct then i will correct all those typos and then i will read it again and i will keep noticing things every time i read the entire page again so you know like it's a very long and boring process because you're just reading the same thing over and over again.
Sebastian:
But then at some point I will have no more errors to fix then you were like okay now this is good like because like I'm not finding any more errors so this is fine, And then I will also spend another chunk of time just refactoring the same content that I have written. Because in many cases, I end up just repeating myself and saying the same thing in a couple of places or like having concepts that are convoluted and trying to simplify them. Just to try to make the content be as small as possible and like, you know, like the minimum amount of content to explain the things that I want people to be able to understand. So in the end, it's just a lot of effort and a lot of time dedicated by me just to try to make the final time dedicated by the consumers or like the users, the readers of the documentation as small and efficient and enjoyable as possible. So it's like you know like it's the the exchange of i invest more time so that they can save more time and then just like trying to do that consistently i think like that that ended up working well because like people appreciate the the end results so like yeah.
Brian:
Well i'm sure that you've gotten i think part of the popularity of FastAPI is due to the great documentation it's got to be but also it probably cuts down on the number of questions that show up in the in the issue tracker of things that could have just been described better or something. Yes, definitely.
Sebastian:
And actually, you know, like at the beginning, I will get some questions in the issue tracker. And in several cases, instead of going and answering in the issue tracker, I will go and write another piece of documentation and do all this process to explain the thing that people were asking about in the issue tracker and then go back and say, like, here's the link of the new documentation that I wrote just for you, just to answer this question. But, like, doing it in a, you know, like, a scalable way that everyone else could come and, like, understand, like, that same, if they had that same question. You know, it was a question that was generic enough.
Brian:
Yeah. Now, so as you transition to being the head of a new company, are you still going to be somewhat involved in documentation or are you going to hire somebody to have you hired somebody to do that?
Sebastian:
So much involved into everything. For me, this is like for me, well, for me, the open source projects are very, very important. I still like to review each one of the things. Now I have like, you know, like I'm very fortunate to be able to have a company, to be able to pay people and to have people help me review and sort everything and like help me, you know, like manage and organize all the things and help me bring my attention to what are the things that are important. So like that, that helps a lot. That's definitely great. I still, I still review the code. I still review on my RSS PRs. And for me, documentation is like, yeah, one of the top, features of FastAPI, so I really, really pay a lot of attention to that. I, yeah, I review each one of the code, well, the internal code and documentation changes, I review each one of those. And in many cases, you know, like tweak things on top and things like that. I was recently saying, like, I'm a Markdown developer, like I write more Markdown than Python or than anything else. Markdown is the main thing that I do.
Brian:
I'm writing a lot of Markdown, too. I love it. It frustrates me when there's an API that I totally could be a markdown, have markdown support easily and I have to like actually write HTML blocks in it like why so there's how big is your team now on the fastapicloud.com it shows you plus four other people is that the solution?
Sebastian:
Yeah like we have we have to update that we are right now around eight people you know like there are also like some people that work in some things and others and some people that are parashable, like, yeah, we are around eight right now. I'm also trying to keep it as small as possible for as long as possible because it's so much more efficient to have a tiny team with everyone who's super focused on, like, all the things that each one needs to take care about. But, like, yeah, like, we are growing whenever it's painful not to grow, but there are points when it just gets painful not to grow, so we just have to.
Brian:
So where do you, like when you guys are, I don't know, this FastAPI has been five, six years. What do you think FastAPI Cloud and your life looks like in another five, six years? Have you thought about that too far in the future?
Sebastian:
Yeah, like I'm still trying to figure out what I'm going to have for lunch tomorrow.
Brian:
Okay.
Sebastian:
No, I'm kidding. But, you know, like, it's also like things have changed so much and so drastically in so many different ways that weren't expected. That is, I think it's hard to predict. But what I am sure is that we can do a very good effort into making it super simple for more and more people to be able to build and deploy applications. And, you know, like have a much better developer experience and a much nicer time just like building stuff and like bringing ideas to life. That is the thing that we want to do and that we want to help people achieve, with the open source and also with the product and like with all the things that we are doing. It's just like trying to make people be more efficient and have, you know, like enjoy more building things and building things that can help them and help others around them. That is what we are trying to do, help those people build those things. So, like, yeah, you know, like, with the open source projects, with the cloud, the product, and, like, you know, like, whatever, if we end up, like, building more products, like, that is the objective. That is what we are going to do. And, like, I think we have a good chance of helping a lot of people actually achieve these things. So, like, it's super exciting.
Brian:
I'm really excited for you. I cannot imagine how this can fail because you've got like the Midas touch or something. So are you still in Germany then yourself?
Sebastian:
Yes, right now I'm in Berlin, Berlin, Germany. I'm living in Berlin, Germany. I have been having to travel a lot like here and there for like, you know, like conferences and everything. The team is all distributed. Like we are all like all over the place. Right now we are concentrated in like European time zones. But yeah, it's just fully remote, fully distributed, fully async. So yeah.
Brian:
Okay. Well, I wish you a lot of luck and we'll keep track of your progress. And it'll be an exciting rocket to watch.
Sebastian:
Thank you very much.
Brian:
Thanks so much for your time. And again, everybody, even if you have not thought about launching an API, you probably should go over and join the waitlist at FastAPI Cloud.
Sebastian:
Thank you very much. Thank you for having me. It's super fun. As always, chatting with you.
Creators and Guests

