Let's say you want to create a web APP and you know python really well. Your first thought might be flask or jingo or even fast A P, I, all good choices, but there's a lot to get a full web map into production the framework will talk about today reflects allows you to right just python code and IT turns IT into a full web burning fast A P I next year. Reacting more was that handles the deployment for you.
It's a cool idea. Let's talk to Elvis cahora and the kill row from reflect dev. This is talk python omy episode four hundred eighty three, recorded october to twenty fourth two thousand twenty four. Are you ready for your house? You're listening .
to Michael Kennedy on talk python to me, life for important oregon. And this segment was made with python.
Welcome to you talk python omy a weekly pocket on python. This is your host Michael Kennedy. Follow me on master on where I am at m Kennedy and follow the podcast using at talk python. Both accounts over at Foster on dot org and keep up with the show and listen over nine years of episodes at talk paths, dot of them, if you want to, to be part of our life episodes. You can find the live streams over on youtube, subscribed to our youtube channel over at talk paths, dot FM slashed youtube and get find about upcoming shows.
This epsom is sponsored by posit connect from the makers of shiny public share and deploy all of your data projects that you're creating using in pipon streaming dash, shiny boat fast, A P I flash quarter reports dashboard and A P S. Posit connect supports all of them. Try posit connect for free by going to talk by them at a film flash posit B O S I T.
And this episode brought you buy a blue host. Do you need a website? fast? Get blue host, their A I builder or press site in minutes and there are built in tools, optimize your growth.
Don't wait, visit, talk by thon out of m slash blue host. They gets started. You know, Elvis, welcome to you. Talk about something .
because it's great to be here.
It's awesome. You here. You're building some cool products and neck you back on the show. We spoke you back in so lake city at start up pro. And now you start up is more started, and i'm really excited to hear about that. And that's what we're mostly going to a focus on the episode talking about building python web apps.
You know, Normally when you say something like that, a person who is not a web developer would go, oh, you're building apps with python where apps with python, that's cool. A web developer would be like, okay, what is that? That's python, ccs, htm, java, scrip, pt, react. It's Better at equal. There's a walk go and on early, but we can win o IT down a little bit and have have a little more focused.
And when we say on bs and a lot of people they hear on bs, think of if you know jangle flash like these are they call themselves python web frameworks and they're really great frameworks. But like you mention, there's a lot of things that go into web development. There's from end back and hosting at sea.
And when you think of frameworks like jungle flask, they do a great job of handling the back and the database, the kind of connection layer. But like you mentioned, when you have to write the front end, you end up having to kind of go back to HTML react, java s script and the traditional tools. And generally in web development, you'll set up your back end as kind of one service, your front as one service, hook them off through some sort of API and did all through that.
And IT works great. But one part like you mention is there's a look, lack of unification. So when IT comes to building an APP, you have to piece together a front and a back and then figure out how how to host IT.
So a really big part of why we started to reflect was to kind of simplify all these different layers of web development into one batteries included framework. And one of like the biggest chAllenges, along with the batteries included as having everything built in, but also keeping IT flexible enough, right? Because people have wanted do all sorts of stuff with their way up. So that's really one of the main chAllenges that we face going through all this was how can we make a framework that, you know, people can just get started, but that doesn't box and they can still make all the stuff they we're gonna, you know.
using their job scripts, right? That is the big chAllenge and we're going to dive into that. You guys got some awesome stuff. But before we do maybe I spent in two years just so since you've been on the show, give a quick introduction .
just who you are yeah finally so ah you I am cool founder here at reflects last time we chat was about a year and a half ago. At that time, our company name was pinchin. The way that was that started up, bro.
And our mission when we started IT and even now is to just simplify the whole process of web development from front and back and hosting all these parts and make a framework that simplifies all these part so a newcomer can easily share their ideas without getting getting all caught up in learning new tools, learning new languages. Bother play boiler played in all this? yes.
So that's been a goal from the start and maybe just some background on why we even came to this idea. So prior to working on this, I was working at a self driving car start up, and then I was working at apple. And at both these roles, I was working on A I teams with really our talented engineers. But we were all python engineers, so we could do, you know, anything, that data base back and all the stuff when I came as something as simple as make A U I for this up, make a as port to showcase data, make a little form to submit IT. You know, there's sometimes the senior engineers to be like, okay.
that's not my domain. I can do the one I exactly.
And that's kind of where we are. And a big reason of that is if you think about, you know, different languages and their use cases, python is used in so many. It's one of the most broad languages.
If you think about all the areas that used back and database A I M L all all these. But there is really one place that is not used traditionally and and that's kind of front end development. And for there, like java script is king.
And if you take the inverse of that and think about java script is one of the most popular languages in the world, right? Like it's it's one, two or three there. And if you think about the use case for IT, it's all it's mostly all around web applications.
So what we see what we kind of notice you people python, they want to do all their work in python when it's accessible. And people love web development and they use jobs cripp because they love web development. But there is not much usage of cripp outside that domain.
So really our big focus was, well, can we fill in the gap in the on o system where people are doing everything in python and then suddenly this one domain of websites front ends that, that can be handled, and they need to use a different tool, use a different language, outsource that. And that was a big thing. We want to solve the same people with the ideas, building the back and building the AI, building the whatever IT is to be, also the people present, get to the U I layer .
and of sharing their ideas so that many people, I D rather everything in python, but they they end up ping IT togethers. I have to do, elva could see you. Yes yeah. Quick introduction .
about you yeah so I guess my, yeah yeah. So very, very fun. And yeah some of us, him, his and working on reflect as a develop vate. And prior to this is at warp. I was there like three years doing like develop experience about our relations .
he had not to work about. That is an awesome term I really enjoy. I I use that pretty much univerSally now. And yeah, I thank you for that recommendation and still going strong.
Very good am good product ah awesome.
So now you work in a reflects formally pycke same company new name is awesome. Yeah even doing more know work is more rust, right?
You inside was like internal tooling to like optimize, develop experience since everything was implied on and so that I actually came across reflects and then I like, oh, this is a dream. Like being able to like work in open source and build back on apps and like serve the community. And so when I saw that job posting well to join, and then I swallow to the office.
yeah, that is kind of the magic of service. Go right. Like it's not you potential whole family move thousands of miles away. Just take a different bus or different bar train or some yeah very cool, right? Well, it's not really quickly just about to start up lane.
You know, like I was just looking back on this as I knew you were coming on the show and I was like, well, know what happened? All those companies, and I don't have a great totally good sense. I know that some of these have pivoted now we had ponder. We have generally intelligent. We had whereby ts nip time, nick toa, pretty base of pinko, which is now reflects and this was what what what is the start of really quick what we're on this topic yeah.
So this was back when we first started. I think our company was maybe one or two months old and were we had just got into we were a part of the White combination within twenty three batch. So while going through that, we launched, I think, hacker news early january.
And that's when we first started publicizing our open source, getting users on IT. And we we got a quite attraction when we started. And part of one of the events I was have was pic on, which was a believing in April of that year.
And IT was a great opportunity for us as a pipon know a python company. I'd like to kind of me meter audience and yeah so part of that was the start up road where there's a lot of you, I think see IT or please like very early state startups coming to present. So at that time, we were maybe only two months old, so very, very early, but there was still a great really great experience, you know I think is probably the first event know that we've done as a company. So that is a really good experience um to meet different python developers and to meet like other developers that the companies have not like even once that were not that aren't listed here, there is a bunch of us some pipe on people that came there.
So yeah, it's not just the confidence and start up pro that's is so a special thing. But the whole export, lower hall is a pretty awesome place. Just walk in mango arn, what people are up to?
Yeah finites, yeah, yeah. Let's go. I know that ponder, ponder got acquired to congrats to them. A I got acquired by snow, which that makes a lot of sense. Yeah, I know.
generally intelligent. Their founders are some our friends that their investor in our company, they rebranded now to imbue. So yeah, I think you put together .
that that group who over slike at the comes ago there to pretty good because startups don't have a typically a huge likelihood of succeeding. But I think most of these are still around. So that's awesome, right? Well, let's talk with.
Introduced a little bit but reflects let me just to read a little, the eight one eighty four will go for the s run in back in peer python and then the open source framework to build and employ webbs and no java script required. There's a lot to impact there. So tell people what reflexes and then will take into the use cases and some of the open source stuff.
And so we kind of talk about earlier reflects a python framework to build web apps and python, and it's an open source framework. So you don't have to sign up for a house or do anything you just do. Pip installed reflects kind of like what's shown at the bottom and you can start using IT like any other python library.
And like I mention, the key distinction that they're trying to do is kind of unify the whole web stack. So all the parts that Normally go into web development, building a front and building a back and connecting them, maybe including a data base and then deploying IT. Usually these involved using several different tools, technologies, even often multiple languages.
And the overhead for that could be really high. So if you think about before, like a full flood, rob APP, usually you're not going to do that unless you have you know you you have like a mission to do, like you have something you're trying to make. You have kind of speak out and you're gone to invest that effort into IT.
It's very hard or most people aren't gonna, you know, prototype of web p or kind of build out like that because the overhead needed is way too hide to kind of mess around with. So what what generally happens as much cheaper python developers is they all use python scripts, they'll use jupiter notebooks. And in the python community also, there's other pretty good frameworks, things like extreme lid radio, which are also in the python environment.
And I think try to target a very similar problem that we're doing, know people have their data, people know python and they want to showcase said. So these are kind of the existing tools that were there before we started. And I think they all have their place to get started with, but they are very limiting.
And what you can build with them, right? Like it's good for the most basic prototype. You can never script, you can have a jupiter notebook, but this is not something necessarily you'd want to share within your team to build up to a larger APP.
Like usually once IT becomes a bit more complex, you you handed off to team or or if you brave, you go in java script or something. But yes, you usually there's a point where like art, i've done my job like someone else like go make this production ready and a big part of what were trying to be different at reflex is compared to other python. And i'd even see other like non java script ramework ks is to keep everything in, you know, python in one language, but without having any of these tradeoffs s that usually come with a low or no platform, so usually low order, no de.
They sad. They exchange things like performance features, things like that for your ability and customization. So you can build a certain subset of apps.
But you need to kind of, you know, keep your aspirations confine to what that frameworks and to give you like. You want some random component. You want a mapping component.
You have to hope that framework. You want to integrate with a certain databases. You have to, you know hope that they're going give you that integration. So one of the very nice things about python is I see the back and integrations right actually before before that, let me just back up one second.
So compared to a lot of these local are was to have the same framework you use, you can easily build a prototype of APP, you know in a few hours, build a cook prototype of crap, and you can use that same framework to them. Grow your APP all the way to a production. Great up.
So if you're, like, look at our main website, reflect on dev. This entire website was built and reflects, so can kind of see that badge at the bottom. And I think this is kind of distinguishing thing from others. Like usually to build a website like this, you would need to use javascript. But there's this was entirely built in python and reflects and IT just goes to show like the kind of you know a long what we're chatting about of you can build you know basic chat up a little prototype up, as is shown in the deo section rate below on the landing page where we have a bunch of you know different use cases. So you can build that a prototype, but you can also extend that all the way to our production APP that serving either internal users or even in in our case, for some start up set, are serving external public .
users using reflex. yeah. A lot of times when I talk to people about these kind of apps, often it's we got an internal APP and there's twenty people use and IT doesn't really matter if IT takes a little while for the APP to load up. And you know what, not worried about seo or any of those things, right? But to make your your product landing page, and that's a pretty yeah.
And i'm not saying that's the typical or intended use case. sure. Of course, there are other things if you just want a static landing page, but there was more to show the extent to which you could be used.
But like you mentioned, a lot of her there is kind of like two domaines of people that want to use us. The main audience is really developed as engineers that are not web death, are not obscure b depth. So obviously that includes you know hard court piped on people who are you know senior time developers.
But a lot there is also just like anyone who knows a bit of coding because pipeline tends to be, you know people are taken one. C S class tends to be a python class. Theyve earned a bit of, uh, python.
So we actually see use cases outside of even software are engineering. So people in finance, manufacturing, biology, where they you know before had an excel spread trees, but then you a little python, and they are now able to develop, you know, these internal apps for their companies. So that kind of the developer profile we're looking at.
And in terms of the companies and use cases, it's a lot of small teams that they want to do more with the team they have like they like for. On one hand, it's kind of startups. You have one, two person start up and you need to get APP demo building some A I and you want to get a deal, you want to go higher, a contractor, front end developer to build that.
You want to iterate quickly and kind of work through that, especially during that iteration phase, like when you want to iterate, you don't even know fully you what you wanted build. So it's really empowering to what we're trying to do, empower people by giving them a tober. They can iterate on their ideas and not have to depend on someone else.
This portion, a op python omy, is broad by posit, the makers of shiny, formally our studio, and especially shining for python. Let me ask you a question. Are you building awesome things? Of course, you are your developer, a data scientist.
That's what we do. And you should check out posit connect. POS connect is a way for you to publish, share and deploy all the data products that you're building using python.
People ask me the same question all the time. Michael, I have some cool data science project or no book that I built. How do I share with my users?
Stakeholder teammate, I need to learn fast. A P, I flaskful. Maybe you, or react is now those are called technologies, and i'm sure you benefit from them, but maybe stay focused on the data project.
Let posit connect handle that side of things. With basic connect, you gan rapidly and securely deploy the things you build in python streamlet dash, shiny boke, fast P, I, flash porto ports, dash wards and A P S. Posit connect supports.
All of them in posit connect comes with all the bells and whistles to satisfy IT and other enterprise requirements, make deployment the easiest step in your workflow with posit connect for the limited time. You can try posit connect for free for three months by going to talk by them at a film slash that's talk by thon that F M slash P O S I T. The link is in your podcast player shoots.
Think you do the team at posit for supporting talk by the n yeah I think one of the problems with the low code, no code stuff for people in our orbit is they no code. They are good developers. They just might not be front developers or designers or whatever. And so I think it's probably little frustrating to work with really low code, no code type of self because you like ah I could just program this is a little bit of code would totally make this work but that seems obscure or and something else like all this when you're talking to people about this, you know like how do you present this verses something like retool or radio or something like that .
retour at the last company. And one of the one of my frustration was the fact that .
I didn't have control. Yeah, I think they .
do make pretty cool stuff, but it's different, right? Yeah, very werf. They play every coming from my development background.
I think you are so used to having full control that like giving some of that control away can be a difficult adjustment. And I think one of the things about reference is that all of the U. I. Components get transport to react right. And so one of the key value props is that you're bringing an entire ecosystem closer to back in people. And so like we like this, a couple companies that will have someone doing front end and making components just for their internal tools team and is like you going to rap those and reflects and now all other components still at here to like your style guy or to your theme. And so they are not really like limiting people in terms of like the components that they have available to them because IT is react .
on that's pretty yeah yes.
it's like very elegant because IT IT turns into vast A P I and react. So it's like you're not really limited when IT comes to like producing apps that I can get bigger or like scale or have .
like rats and things. It's basically some developer tooling on top of of react and then which so what you you end up programme is pride mostly generates react and then it's also fast A P I in the back end.
That's really well, basically going back to as we're developing this, the most important thing we keep in mind was okay. We want to make IT really. You know newcomer's to be able to build this but not have pretty much have ways to do anything right?
Like never make people hit that graduation point where they are like, okay, i've hit the limits of reflex. Let's go use a serious frame like react so is very intentional that people never hit that goal. And like one way that we achieve that is every you code everything in python, but the end output that a compiles to is a production greater web.
So for the front end, though, your coding get in python, the front end will compile out to a next J S APP. The back end will compile out to a fast A, P, I back end that hook up together. So it's pretty much the same architecture you would write as if you were writing IT by hand.
So there's no there's like we're not taking a shortcut as and like if you were decided by hand would actually compile, you apply right the next day this front end, fast P I back and and connected. And we're kind of giving a layer on top of that. And by developing on top of react IT goes back to this.
We don't want to reinvent the the wheel. The web dev is a really mature ecosystem. We're not going to be able to remake react and all the components out there. So when we started our bike approach was let's wrap react. And not only like our do our components rap react though, we make IT very easy for developers to wrap their own components.
So kind of like what else we have companies like force and one hundred companies that internally they have their own react you know component that they must use for every APP at their building. And they were able to wrap those in reflects and now they can use, you know, their private custom react components, one person draped once and now have any python developers able to access IT and developed with IT. So a really big point is like you're not going to be locked in. We have no sixty plus components built in, but anything that's possible and react in java script, you can easily bring that to reflects without waiting for us.
okay? So there's a bit of an a sky at to just go down straight to react nice.
Paris, you don't have to write the react directly. I mean, you can write at once, but after that, we have a third party component ecosystem. So within I can show you on our website later as well.
But many people have published their own third party component. Interesting, for example, like we don't have a map component built in. So last week, someone publisher reflect map content. So if you want to like OK up a map into your thing is now possible. And there's a lot of H H grid. You know what your recording and all these like niche cases, right, where we were not unable to support at all, but they were the nice part of about having an open source and open source community as community can add to the project shared with others and .
everyone can benefit from another. One of the chAllenges of local de type stuff has to do with the development side of things. I maybe buy a assess subscription at some local place, but you know in practice, the the performance is just not good enough to be put them on the internet, just not take that or something like that, right? If it's basically java script over vast P I like that's a very well known and super scalable set up.
right? Part of that is in the fiction, IT wasn't only front end back, and IT was also deployment to which a lot of people they build their APP and deployment takes as long, if not longer, then the actual building is especially in the .
dev ops all along the way. Yeah yes.
especially if you've never done this. You're right. Like to go learn about you know how do domain names and what is like? What is s three S L like all all these things take a long time.
And that so and going back to the thing of producing, I think of the if you don't want to use our batteries and you should be able to self post IT. So along those lines, what we've included in reflex is a one line deploy. So after you build your APP, you can just type reflects deploy, we set about the infrastructure and you'll get your all back that anyone can access your after.
So we have the asal hosting service built in as well to reflect. And if you don't want to use that, like many companies say you wanted, deploy your private cloud or at, it's truly important to us to stay with like open source and make IT. So you know if you want to use IT in your own use case, that's always possible. So we have guides and make IT easy to decline all these. And like you said, because it's kind of a standard output, it's kind of easy to self posted yourself as well.
right? right? What you know about running fast, A P, I, right, translates pretty well. yes. What's the database story of database?
This goes back to, like the whole batteries, yet flexible. So we have a built in ARM similar to jane. It's nothing but a kind of light wrapper and seek alchemy, but kind of hooked up more to reflex.
So kind of taking care of some abstractions in terms of making the models work with the reflection ate eeta. So the nice part is we we have first class support for any equal databases because of the equal alchemy, like tight immigration. When you start release, you have a built in and eco light data abase, but that gets any APP that wants IT.
It's there for you. You don't have to do any any set up so you can start developing with databases right away like without you know having to learn too much outside or doing any set up. And then once you want to go to you know, production deployment and you want to use, say, postgrads, mysql or whatever you you want to use for your actual database, it's just a matter of in our config putting the database.
You are all that you want. So we make IT really easy to partner with whatever you're doing. So a lot of people use us with providers like super base neon, where they set up their database using one of these .
providers and they can easily connect IT to their APP, a line, that line, right?
Like a lot of people ask us follow up questions like, well, how do you handle MongoDB? How do you handle no cycle? How do you handle like X, Y, Z tool that I want to use in my APP? And this is another part where I think our bigger ban is over local no code frameworks where you if you want, say, a dragon job builder to support your random database because there's no code in IT, you're kind of dependent on them, right? Yeah for us, we kind of have this kind of nice polis where you can say it's just piton go use the python library. Anything you can do in python you can like interacting reflects. So we give a lot of first fast support, but a lot of what we're doing is on the .
soldiers of react and python. I just just do that.
just do pip install whatever the libraries and you use IT like any python. So for example, like a lot huge use case, people use us with this A I A P S. A lot of people use OpenAI, anthropic and all this.
And this is a python library away. And often times they already had written that python script first rate. And they just want .
to UI on top of fit. And you move this whole deployment, managing.
developing side of things. Yeah, that definitely IT reminds me of the cover like any like sufficiently advance technology is a distinguish for magic because like like we recently sponsored cohan ks, and like being able to like see people who are taking like C S one, C S two, like the magic like in their eyes, and like making like run IT and then like site comes up. Yeah, this is so compelling, you know and then so like for me, i'm like looking forward to the future or more people can use IT and then we can just like make like the web because system like more democratize, being powered to people who like a different yeah it's a big .
part of the python story is, well, right. One of the alternative to this is no books right, which I know is not even close the same thing. But a lot of people who are not web developed pressers just don't want to take a month to build a website that can create a new book and use the notebook to visually communicate in resting ways, right? But when IT comes down to, I want something that feels like A A website for someone kind of felt short most the time, that using no book for that, yeah, there I brought IT up no books, totally democratized visualization and interaction for data scientists in a way that was massive. Yeah, I completely agree.
And I think most people would agree, like a web in their faces, nice, other than a notebook. But a note is so much easier to build, right? So when consider that right and what we're trying to hope we're going to do is make IT as easy to, okay, convert your new book to website that's more easily serve, more easily kind of deployable and and all the other stuff.
this portion of talk python omy is brought you by blue host. Got ideas, but no idea how to get a website. Get blue host with their A I design tool, you can quickly generate a high quality, best loading website instantly.
Once you need the look just hit inner and your side goes live. It's really that simple and IT doesn't matter whether you are hobbie's entrepreneur or just starting your side. Hustle blue host has you covered with built in marketing and e commerce tools to help you grow and scale your website for the long hall.
Since you're listen to my show, you probably know path on, but sometimes it's Better to focus on what you're creating rather than a custom build website and add another month till you launch your idea. When you agree to blue house cloud, you get a hundred percent of time and four, seven support to ensure your site stays online through heavy traffic. Blue host really makes building your dream website easier than ever.
So what's stopping you? You've already got the vision. Make IT real visit talk python dom slash blue host right now and get started today. And thank you to blue host for supporting the .
show along those signs. I think I think we're going to chat about IT maybe a bit later, but our goal like right now um a big part of IT is making okay, you can write your U I N python right? So it's making that part of IT more accessible.
But our goal is not necessarily you know, to stop at python. Our goal is just to make IT easy for someone with an idea to build a web APP. So along those lines, like as we started, a lot of the positive comments people have said is okay.
Now I can know one one language, one framework, but still it's just because you know python that doesn't sudden mean you are designer. You're what to people like I can now make you an airbnb style website just because the the HTML is now in python. So a big part of what we're trying to do is accelerate a lot of a lot of the entire process because as fundamentally, I think people have in in their mind like they know they want to that looks like in their mind, they can visualize IT.
But it's kind of their technical implementation and their tools, like all of those, are not good enough for what's in their mind to become reality. So that's why do you have to settle for notebook settled for, you know, an approximation of what's in their mind because they're like, okay, this is with my time and effort and tools. This is like what i'm what i'm trying to do. And along those line, I think piton is definite one good aspect of fit because you know it's now in their language.
We're not bring IT to where they are, but there is a lot of stuff that I think the whole web deaf ecosystem is going to change in the few in like the upcoming years, and we want to be part of this kind of new age of AI of a framework sets incorporating things like A I along with code, and kind of that integration between the two were a lot of stuff, you know that easier to do in AI IT? IT makes sense to do there. But it's important that the output of that is something that the developer can understand at IT and kind of work with. So it's still their contribution that's getting .
built in the end. Skeptical of many integrations of ai, the most apps, but i've see I know you to I play a little bit. It's pretty good.
So yeah, get to that. Yeah, it's pretty mpower, erin because if you just stare at a black screen of htm, where IT literally just says angle rocket HTML angle rocket body. Now like that's daunting. You know.
that's kind of the point. Where are trying to go after? Because there is like there's a lot of AI website there that you know they'll make kind of your landing page.
I think there's two real downsides to a lot of existing ones that were trying to kind attack differently. One is there are mostly meant for static sites, right, like they will give you your thing, but it's very hard to add your get your your actual stuff to IT. And part of that is they generate kind of the stuff, but it's not in a way that's usable by the end user.
So you could generate a nice despite in your face. But for a developer there, like, well, how do I you put my data in there? How do I hold up with my data base?
How do you make make this nice thing actually practical? So I think that kind of approach where you trying to do is like once if if we have these AI features, it's not just an AI to build. It's something that the developer can also you know understand the output with and work with IT. So it's like python, we see as great and in this thing as like an intermediate language with which both A I can kind of right to end of developer can actually understand in the end, compared to A, A I are putting a once of reactive code, which would be really hard for them a pion develop to go make modifications .
with is right only. You don't can't do much with that after it's created. exactly. I want to talk through some of the examples and what code looks like within the constraints of a mostly audio show. But I want to talk open source.
So one of the considerations you guys say, hey, let's struck le back and talk about reflex and like weight, I don't know what reflects is, but then it's back on right? I'm always a little bit hesitant to have just a company on the show because afraid is just so well, I was going to talk about a product today. But you know, I think there's one.
And I I feel like having an option to write python code across the board is super interesting for python people. There is a few other things that I i've covered previously that are somewhat like that. Like anvil is close, but IT has a very different approach and streaming very different approach, but kind of somewhat very little slightly sort of similar output, but not the same for sure, but also just the the fact that you guys have this also as open source.
I think that that's a that's a pretty compelling option. And so one of the things I think this makes a pretty real thing, people. And then I looked at the good pastries has twenty thousand stars. That's like a third of flask, a third of janko. That's pretty good.
You guys, when we started, we always anted to open source IT from the start. I think that was like very, very important to us. I think our our idea was i'd rather have a large number of users and yet only x percent of them, say on the paid product than a small number of users that are all paying. Like our biggest thing is about kind of the community.
And related to that, I don't think there's been many especially in like say, what frameworks I can't really think of many web frameworks that are not open source that I really took off because a big part of things like web frameworks are the ecosystem around IT, right? Like it's not just the framework, but what are all the stuff people dot on top of IT, like the integrations, the components, the tutorials and and all this stuff around IT. So a big part of what we want to do is open source and make IT really easy for people to get started and not have a huge like burden to even start and yeah pretty much lower all the activation energy that someone would need to get their first APP up and running yeah.
And I see the open source has really been good, like it's been awesome for our community. So when we've first started in hf ago, like people, what is very surprising to me, like this is the first time i've i've done an open source project. Like like, you know, that open source project, and it's what was most surprising in a positive way, was like how many people are eager to contribute open source like I did not expect when I started, but like so many people were like, hey, can I work on this? Hey, can I add this speech? And what's really nice is like we have a reflex core soft they were working on, but everyone has a different use case of what they are trying to build with IT, right? So it's like this baLance of like, okay, we have a plan of our road map.
We can add these features, but then other people will say, well, I want an audio component for this and I want this. And the nice part of about being open sources, we really encourage people to add their own stuff to IT when they hit a bug. A lot of people are like, alright, that open starts, I can just go fix the bug. I don't have to rely on the maintainers. So for the a lot and like going back to kind of velocity because we started around a year and a half ago, and I think we're getting pretty good attraction on a lot of that is because of our great kind of community that's been building a lot for us.
Yeah does not seem aspect of choosing what platform you want to work with, right? Because who's close source IT might be great, but you're stuck with whatever you're gna get right? Maybe fingers across something comes, but you know no promises, right? But if it's relatively small, like a component or something, yeah, then people can add their own. And that's pretty well.
whenever I might, evaluating like tools to bring into our tax tag, especially for go to market. One of the first things I look at is like it's like open source and then their docks and like whether they have an A P I like goes like my first three like top tier criteria. That way I we're not like in the .
decides turn out bad if it's your platform, right? So apache e two license, tell me what what does that mean for people who wanted go build up with? Basically.
we wanted to make IT as permission as possible. So I think just if IT is you can kind of use IT for anything you want to paid, commercial open source, whatever. IT is the only restriction as far as I understand.
I'm not an expert, by the way. So maybe anyone looking into a consult license themselves, but I think it's just you have to like attribute tradeMarks if you're you know copying the code with. But we really wanted to make a super permissive. You like let anyone use IT and then build products on top of IT, like our hosting, like more premium components built in oc that will provide value for people that are using IT in a safe business or more production use case. So the core open source is is really important, like anyone who wants to build anything, like we want to give them .
something to start building. And so it's always interesting to me what hand we have a business and employees to or giving a way or thing that turns out to be a pretty good business model these days.
But IT is a little bit how does that work? And I think what you are often is, is pretty helper, basically the real in addition to the core product, right? The real reason what you can go and sign up at reflects our dev is take away the the trouble of hosting this, upgrading IT, maintaining IT, patching IT. Just push a button or A C L I man, and your thing lives.
right? exactly. We want to simplify the process of hosting because once you build you up, you end up having to host IT anyways.
And there there's a lot of clouds out there, right? And we have self hosting guide. So anyone that wants to can do that themselves. But a lot of these clouds, they can figure to host any type of APP, right, which is really great for the cloud because they can host anything but for the user.
IT means that ends up being a lot of configuration, a lot of set up and a lot of overhead when they just want to get their APP and shared with with someone. So one part of what we're doing with our hosting services, one making the U. X around IT really nice.
So just a simple deploy a man up is up running. The second is we're really able to optimize our hosting around reflects apps. Since this is the only type of apps that we host, we can really optimize the other performance to cost and all these other factors.
As well as add a lot of stuff on top of IT, for example, in the future like analytics and different stuff on your ad where that's another ad on if you're using you, the party hosting. So there's a lot of you know, plugging on the open source society, but there's also once you posted your apps, a lot of things you end up having to add in terms of like analytics, tracking, monitoring at a yes. So we have unification on the kind of framework level, but also we're going to have IT on the cloud level, where every part of the framework and from the front and back into the host and kind .
of notes about each other seem ably get some big machines and have a multi database with good performance like that.
There is kind of two aspects, star hosting. One is a public cloud and you can think of that similar to versie for python. So that's more good to say hobbist startups, people that want to build their ideas, share with public community. And another big um use case, which is where a lot of our act like developers come from as the internal APP use case. That's kind another aspect we're building to the deployment internal club monitor who whose accessing yeah.
I saw that over on reflect. I dead. If you got a pricing is basically free for hobbist coming soon for pro, you don't have everything to .
announced that do are working on our pro hosting service. So right now, we have a hobby so anyone can kind of deploy a few apps for free. But our problem is going to have features like custom domains, ability to configure your machines multi region and make IT actually .
I probably yeah .
ah is all that actually making IT kind of able to serve more serve more users. I'm pretty fascinated .
by the idea that is fast A P I in the back end because i'm always concerned that these things just scale like you're not going to build IT and it's awesome for one hundred people. But then if IT ever becomes popular than it's a bad idea.
you know just didn't take IT. That's a big reason also why we built our website as this is of the leading edge. Cutting edge reflects like hopely in terms of features, a number of traffic like it's tested, our frame a lot in, in terms of like improvements.
Yeah to support IT. I'm sure that IT has alright to talk for a moment for a few moments, maybe about what the programming model looks like and just keep mind those people listen, canceling what we're talking about. But nonetheless, let's just give people a sense of what it's like to write coding this.
okay. So if you go to reflect that, that is score down, like just have a page. So there's a little hab thing across the top here that has, how do you create a form? How do you create a chatbot? How do you create an image gene? And you know, the things pretty says, what do you want to see all life, right? I type, I want to a uni.
And within just a moment, whom there is a bunny running on or the mei w really on um flux right fluke here is function best. The fast, fast, it's very fast. It's pretty fast compared to I was playing a ID journey yesterday.
You know I took A A while and a lot of five hundred dollars that I took a while longer than eventually just and so maybe just talk about this little. Send us a message, put your name, email and message. What does that look like to code up one of these things?
In all these examples, you show the code on the right is the entire code needed. So IT all fits in one file like there's no extra stuff you need beyond that. So if you were to copy that and run IT and what actually run.
yeah, I just think of people. This is probably by fifty lines, forty five lines and like that a code.
And so one thing you'll notice is it's all in one language and in this case, even one file. So IT doesn't have to be in one file like you can have multi page at. That helps.
But the kind of nice part is the front end and back and can live together in one repository. And so Normally, you know, people that have been in front end, and they probably to either writing react HTML tags or you templating through ginger a. And what we can do different in reflex is we define your friend as nothing but pat on functions.
So IT fits in exactly with all the python fantastic. You don't have to kind of learn a new language there. Everything is a pid on functions.
So for example, Normally when you have a button, rather than writing an HTML button tag, we have built in components like arx start button, which as you call IT, we'll create a button and the kind of layout of the front end, if if you've ever work with react, it's very similar to react or even HTML in the sense that you have this nested tree structure that kind of maps directly to the HTML dome. And within there you can define all your U. I components so that that kind of is how the front end works.
And once you define your U. I, these pipeline functions compiled down to react up in the end. Now the interesting thing is how to make this interactive right? Like how do you add state to this? So in in this example that you want to do a form, or in the image generation, I really want to hook this up with my open eye, or my my major ney, a model to create something.
So Normally in web development, you end up having to write a front and a back end and a networking layer between the two, where you you set off a fast A P, I, and point for every single action you want. Then on the front end you're onna call that API, get the result by parts back and then update your U I. So that's the Normal flow of, say, even adding one new feature, like if you want to add a button that generates an image and shows IT, IT will involve touching like multiple files, going through all these stuff and hooking IT together.
So one thing that we ve done and reflect beyond premier to one language is abstracting away the front and back and networking. So in reject, you'll never have to write API call. You'll never have to write a post request to get request or any of that, all of that has done under the hood.
So to set up your kind of state and interactive, you can do this all within what we call a state class. So a state class is just a Normal python class and within that you define all the fields in your state that can change over time, which we call vars as well as any um event handlers that can change the vars. So an event handler is just a python like function or method.
And I think the image is a good example of fit. So for example, in the image and the image you are all is a var because it's something that's going to change. And IT event handler would be the get image function, which is a function that when they hit submit on the input we call IT.
So in order to hook up the front and back in, all you have to do is hook up the U. I. To the pon function.
So you can say button on click equals state dog get image. And what this does under the hood is when you click that button, creates an event. IT stands up through a website at to the back end.
IT will run your python function on the back end. So what if that's your open aee? You replicate whatever IT is. All their state runs on the back end on the server, and that's what allows us to keep the state and pure pid on. So IT, we'll update your state U I, in this case, going to update the images, al, and send that back. And IT works, IT works very similar to react in the sense of that as your state updates, the front end updates.
reactive vely that's super cool. Can just to a data ending on the the values there is like so you said something interesting that there's the next J S. React, the fast API back in, but you didn't say it's calling each P, A, P, I.
You said as using a web socket. yes. What's the deal there? Why web sockets are not piano over p years?
No, it's a really good question. And I think this is what like and a lot of people ask us to, you know, how is reflects this performance or what are the downsides of reflects? Like what's the catch? Because up to now, we've think, you know, we can perform, we create anything you can do in java script t, anything you can do and react.
So a lot of people are kind of ask about the performance, and we kind of made design release to be really performance in everything we do. And the reason we is web psychist is because reflects apps, especially like very statement apps, often need to make a bunch of request. So rather than having to reestablish a new top request every time by keeping a web socket, we are really able to optimize the speed of the apps. So when you create when you kind of send a tiger er prom, say you want a bunny and you press .
enter through the website, I change .
to a fast bunny. Hey, this guy wants to call, get image and he pretyman ed fast, funny. It'll take that little payload, send IT through the web socket that's or even established, run a python function on the back end and then stand only the state delta back.
So for example, if you have a really large APP with hundreds of pages and hundreds of states changing, this is not onna, say, hey, from. And this is their entire new state. We only send the dips and stuff back over the web cycle. So yeah, all of this was done like in the name of performance and making reference up really snapp .
y for whatever you do in a sense, the python code that I write, even though there's this react bit, some of IT still lives on the back end yeah. And then some of IT is kind of mirror to react on. The point is that right?
This is something especially like as people are are learning reflects like one of the things we try to emphasize most, which is though it's all in one file, it's all in pithum. There still is a distinction between the front end and back in because of the fact that the front end compiles to next a while, the back end is a fast API.
So in this case, it's pretty much all the U I code, right? Like what's inside the index function that's here next day as react up your fast F I is pretty your state and your event handlers. So within there, you can keep everything in pure python.
Use anything you want. The one thing you can you can do and we can do is compile arbiters python to java script. So that's the reason of all the bent handle is run on the server. So you can use any library, anything you want. And on the front end, we only compile kind of a static website.
So there's no logic that ever happens on the front end actually .
just updating the the bindings and and trigorin events.
Nice bunny. So one thing that I think is notable here, and i've seen some other frameworks as well. Like for example, I had pupil on talk, which is also total react up on the run in. But this is a lot more cup.
I is more running, I think react type stuff almost in py script, I believe so which is interesting, right? But one of the things that I think you find with a lot of these is the the shape of the code matches the dome a lot of time, at least the concept, idea of of the herky of the U I, right? So for example, here you've got A A V stag with a skeleton with a flax, and then start putting forms.
And in the form and all of this, every word that I said, there is another level of indentation. And you intend you get a react input and react Better and yon style, right? And I think that makes a pretty easy to think about.
Here's the code, here's the U. I. Because the shape of the code matches the the concept of like mirs the U.
I in some ways, right? And rather than just pure top, the bottom imperative or just generate in the U. I. But I actually like the way structured IT like kind of like flutter IT looks looks like a matches.
You know, there is kind of two approaches people in the space have taken to building. Like one is imperative, which is kind of, you said anything, for example, stream lead has taken this approach where to do a button you you would do like S T heading S T button and IT will implicated like kind of magically put IT into its thing.
And I think IT could be good for a simple stuff, but it's really hard to reason about as your thing gets larger because you have to of contextualized weight. Has this been called already? Like what order is .
everything going? It's butter in this group or outside the group or yes.
of like it's nice in some sense, but I don't think it's goes very well, especially like conceptually, like it's hard to kind of reason about what all you've kind of built. I guess, going back to like why is in the structure, it's like this is already kind of the natural structure information or from react. And I think a lot of as we are going through stuff related to A P I design, we try to improve the A P, I where we can. But a lot of the time to realize you, the people that, that originally had a good idea like and there's a reason it's kind of the standard.
I think he takes a little getting new study, to be honest, to see such nested stuff.
But I do like IT. I think it's good part of that. In this example, we just one function, but you know more practical setting, you would break this up into different components. So similar to react, you probably won't have a giant nice to think IT. And you can think of each of those .
things as units that you work with. Yeah, I also like decorators up a lot was like making dynamic components on the fly to .
different something about, well, here I got I want to talk about the components. And the components are these building block pieces? Maybe pictures a couple? You think I like the idea, these things we can talk about .
a really big thing people use as for is kind of like tables and graphing. So if you're going to down to the table section, the ag grade one might be a good one. So this is actually a good example of a third party component.
So you can see we have our building components, but a lot of far enterprise users really wanted this agent grid feature, which is one of the most popular kind of table libraries. So we make can release this, an example of a third party libraries s wrapped that you can kind of bring in. And this is a easy way to kind of showcase your data.
So a lot of data scientists that that are use this library, I can pick up with your data frames and kind of show this. So this is another example showcase and kind of the flexibility you want that random react library, even if it's not in reflects like all the team or extra contributor often raps this easily. And ah the kind of nice part about IT is it's more high level.
IT has a lot of these built in features like pagination, searching, sorting and all these. So I think it's a baLance, right? Like we can give people the raw components that you can uh code everything in H T, T M L.
You can build everything from the ground up yourself or you can use this kind of high level thing and the best part about reflect as you can kind of approach IT at any level that you want. So it's like, I want this nice building thing that has sorting pagination here. IT is or you're like, you know, i'm just going to build everything from the ground up.
I want my own table component. We also give you the tools to do that. So I think I just kind of shows the scale at which you can kind of pick your left up your level of abstraction .
yeah I didn't just pip install the name of the a thing and then just use IT like a native native component.
right exactly and act as like like all of the reflex components. So there's nothing like distinct between our components .
and something you wrap yourself. I was a reasonably size company with a team of maybe many of them knowing react IT might make sense for me to build out a internal library of widget that we use on our APP and plug into reflect them like that.
We have a whole guide on our website on rapping, react with different examples. And we are trying to make IT accessible for python developers. So because that's our user at the end, right? So we wanted to make IT accessible for even non java script, non react expert to be able to wrap these components.
So we've seen in uh, different companies like I kind of mentioned earlier that have their internal no component systems in react. The a pipeline developer was easily able to kind of rap these because we make IT super easy to rap as just a pipeline class where you just to find the props. So maybe if you go to the rapping react section on the left hand side, it's kind of that, uh, maybe go back to the main dogs section.
But yeah, we try to make IT really easy to bring your own components as well. So whether you already have one or you want to make your own. So this is like a splain one.
And you can see all you have to do is list all the props. It's a python class. You can out to disco, find what library, what npm library using, list all the props. And for interactive ones, you may have to find that. And then you can start .
you as part of your compound to find basically the in pm thing to installed, or whatever.
And the offit goes yeah and reliably handle it'll install the component of rapid for you.
And I will like something I said three things, what most components? The other is this A I generator. And I don't want to talk about the road map.
So let's getting out on time. So let's go and talk about this flex je thing. This is build web outs at the speed of thought, create eyes with reflex frame for with simple prompting.
This is data like kind of released on our discord, and we're going to do more releases. But this this version of IT is some, if you seem like v zero o dot dev from reflect from over cell. This is kind of, i'd say, like a version of v zero o four reflects where you it's a web editor.
You can enter your prompt, it's gonna live stream your output at the end of fit, it's onna, give you the code that you can copy into your APP and you can start adding a back and to IT. So I guess important notice this is more for like your starter APP, right? Like when you're first starting your your project and you want to get like a good starting point, we ll fix that. The way about .
IT IT made such a nice one for me.
for the idea. This one is to be kind of a web editor to get your apps kind started building out from. And this is kind of just a version of this year for python.
So this is level one of what we're building with flex shin. But a more interesting thing that were developing now internally and are hoping to released in the next month is a local version of this. So this is this has no context if you're existing code base that has no context of what you're building, right?
So you could ask you to build a little component, but a big issue with visio, another of these web developers, how do I ask you integrate this into an existing at it's good at building brand new stuff, but how do I like update and existing up? So on this front, we're building a local AI toolbar, which has a lot of these agents features around, reflects, but on your local. So for example, the features we have there, you can click a button and say, when I click the button, do this or click a text and say, changed like, you know, put a form under this text and the big idea there, I think this is a good, good first start.
But I think in the longer n i'd see the tall bar R S being this way where the AI and the developer kind of innovate together worth python as a common language. So for a crazy stuff that you don't want to deal with, like make a form that works in mobile view at such a, the AI can handle lot of this. But once once IT outputs its outputs code that you can actually go understand and read, like it's not this opposition java scrip pt or reactor is called that you can go added by hand if you want, and you can easily hook up your own state and data to the right, which is a big other thing.
I think other frameworks miss, which is, here's that, a great despite great, but it's all fake data. Like how do I ask you make a hook with my clicks, hold up with my different data. So that's a big part of what were trying to .
bring to the local environment. This will generate .
a visual you actually show code, show code. You can kind of copy the code and start using get IT in reflex. And then with the tool barrel, they will be able to make incremental upgrades on top of this rather than starting from scratch. And that will have like full context. And on top of that, were aiming to build a lot of stuff on um on top beyond you know just prompting and updating, like there's a lot of improvements that you .
want to build on top of that is pretty this is you some ideas for here's some possible layout, ts and so on and gives you at least a little little bit of an idea what you might want to do and ticket and run with that so that's that's .
possible yeah think some ideas we have in the future for the local buttons that can keep your same content, show you different variations like auto dialed. Is that like a lot of stuff that people don't want to deal with, but they're just give me some ideas and how I could look and turn people more into like prompters and selectors rather than .
implementation right? Closed out through a map.
What are we going? So recently, we just released reflects zero point six last month and right now over going after year, year point seven. So a big part of zero four point seven is cleaning up a lot of our core components that we have, especially for the features people use the most.
So the ones we're starting off with are like you can see here, ag grid support, which is a big thing. People last and beyond that, just like very good support with uh tables, databases and uh graphing to help a lot of these internal apps and data scientists cases beyond that. Like one really important thing for what framework that what kind of builders is odd.
So built an odd. So if anyone's ever used jane o you know they have a really great kind of weight that you can plug any odd system in. And that's often the first thing someone wants in practical about right especia data APP. I this great up, but I don't want anyone to be able to access IT.
We already have innovations with third party auth providers, but we want to bring in just like first party auth, where you can just add click of a button that is onna have at this point, a lot of these other stuff here is related to a lot of performance improvements that we're going to make. So one key feature of reflex is the development experience. So one part of that is code, but the other part is things like hot reload and how fast is IT for me to actually make iterations on what i'm doing.
So a lot of these other tickets are internal changes we're going to do to make IT easier for pretty much improve the hot reload time. So we wanted people to improve their iteration speed. Lot a lot of time, people like very much older time should be spent looking at actions and coding and not waiting for anything.
And then one final thing related to kind of how we want to simplify the approach of UI and state is we're implementing system called csr, which is kind of right now, I kind of mentioned there's a difference between compile time and run time. And there are certain things your entire U I kind of needs to be known at compiled time. So you have to compile your code, and that's what you get at run time.
And what we're introducing is the idea of dynamic components, which are dynamics generated at runtime. So this will enable a really cool use cases. For example, you can have a chat bott, instead of just returning text all the time, I could return components so IT could return grah.
IT could return a whole reflects page. And these could be components that you don't know up front. And I are you generated during wrong time.
So it's going to help a lot in terms of flexibility and also in terms of you know the east of use in using reflects because since they are generated at runtime, you can now use pure python. You don't have any limitations and there's a lot of advantages on the developers er side as well. Yeah and this is on the open source.
And we're also, like I mentioned, releasing some of our AI features. And the biggest thing though is we're releasing our first version of our hosting service. Our hosting service has been in beta for some time right now, but along with all this, were releasing our first kind of paid version of our hosting service. And you are getting people on apps on boarded onto there is is coming up. So it's really excited for that framework.
Looks really nice. So A A lot of people, I guys one final party thought from each of you.
yeah I think the first things that i've experienced like working here is that like you like i'm like writing our dogs. It's like some people have never interfaced with props before and so reflects in a way like a bridge to the web. Ego system has been fun thinking about like what are the mental models that I can take in python to help explain things that are in web and it's like how can we like bring those in and then create like pathways for people to like start building ups yeah .
it's not a lot of event driven stuff in python, but so much of the web is of the driven back .
about thinking about new kind of user interfaces, both in terms of like coating aps and you know actual user interfaces that people are going to be able to build upcoming. I think the current web frameworks, you the jingoes in class, they're they have been around for a long time, and I think they have a lot of great stuff.
But there's also a lot of new stuff that I think the next generation of what frames could could like add to accelerate a lot of work. And i'm just excited about thinking of what are those is like how can access era while keeping the good stuff that's already been you know discovered before? And yeah, I think there is especially now like a lot more people are building, a lot more people are becoming builders and sharing. So and I said, I like epower wing .
all all those people. Yes, there's lot of abstractions to like think through in terms of like like how can we create guarantees that can enable someone to be successful in a long term, especially when IT comes to building apps that can serve like hopefully, millions of people and millions of traffic. But they also like being flex one that they just start a chAllenge.
Now there's a lot of places that are struggling with those chinese. Try, solve, look at A W, S, to go to the services tab of A W S, right? But that only serve tons of people. That boy is that complicated to look at the hundred ever services and decide what you need and how they go together.
right? We have a have though that be huge.
Think where we're on the effort to dislike, simplify this whole thing and just make you really .
easy for more people to build. Good thanks to be .
on the show. But you.
this has been another explode of talk python to me. Thank you to our sponsors. Be sure to check out what are offering. IT really helps support the show. This explode is sponsored by posit connect from the makers of shiny public share.
Deploy all of your data projects that you're creating, your impact on streaming, dash, shiny burke, fast, A P, I, flash quarter reports dashboard and A P S posit connect supports all of them. Try posit connect for free by going to talk by thon that a film flash posit B O S I T and this episode brought by blue host. Do you need a website?
Best get blue host their A I build your world press site in minutes and there built in tools optimized your growth. Don't wait, visit, talk by thon df m slash blue host to get started on the level up your python. We have one of the largest catalogues of python video courses over the top python.
Our content ranges from true beginner to deeply advances topics like memory and aging. And best of all, there's not a subscription insight check IT out for yourself at training that tuck paths dot F M. Be sure to subscribe to the show opening your favorite podcast, APP, and search for python.
We should be right at the top. You can also find the itunes feed that slash itunes, the google play feed that slash play, and the direct R S feed that slash R S on top by thon out of him world live streaming most of our recordings ings these days. If you want to be part of the show and have your comments featured on the air, be sure to subscribe to our youtube channel at hop thon film slash youtube.
This is your host, Michael cannell. Thanks so much for listening. I really appreciate IT now get out there in right some python code.