We're chatting with Meredydd Luff, CEO of Anvil, about why he believes web programming has become overly complex. If you want to build a web app in Python and not worry about databases, server side code, or web design, it's time to give Anvil a try.
Anvil is a platform that hopes to enable the creation of great web apps with nothing but Python code. You can drag and drop your user elements and rely on Anvil to handle your server and database.
He also created Skulpt, which you can check out here. It's decscribed as follows, "Python. Client Side. Skulpt is an entirely in-browser implementation of Python. No preprocessing, plugins, or server-side support required, just write Python and reload.
Want to go deeper? Check out his talk on Full Stack Web Development with nothing but Python here.
You can follow him on Twitter here and Github here.
Meredydd Luff The web's the greatest application delivery platform we have on Earth. But the bar for it is here, devote like a couple of years to learning five different programming languages, five or six different frameworks, oh yeah, and then all of DevOps and then maybe you can play this game.
Ben Popper Couchbase is a modern multi cloud to edge SQL friendly JSON document database for building applications with agility, performance, and scale. If you're new to Couchbase and would like to learn more, the Couchbase Developer Portal is the best place to start. It's loaded with tutorials, videos and documentation, as well as best practice tips, quickstart guides and community resources, including the Couchbase Developer Community Forum. Ready to get started developing on Couchbase? Visit couchbase.com/newtocouchbase.
BP Hello everybody! Good morning, and welcome to the Stack Overflow--ugh, I did it again--hello everybody, and welcome to Stack Overflow Podcast no matter what part of the universe you're in.
Sara Chipps I know. It could be afternoon.
BP It could be any time. I'm Ben Popper, Director of Content here at Stack Overflow and I'm joined by Sara Shipps, our Director of Community. Hi Sara.
SC Hey, Ben, how's it going? How's the farm? Or the chickens?
BP The farm is good. There was about flock of like 30 turkeys on my backfield this morning. So I got pretty excited.
BP I think the season starts May 1st.
SC Do they fight the chickens or do they like hang out with the chickens?
BP It was the first time in my life I've seen the actual like classic American scene of the male turkey like puffs himself up, you know, and spreads his tail feathers. It's like "I'm here! It's spring!" So it's pretty exciting. So we have a great guest today from a company called Anvil, which is based in the UK. And I discovered them as I was trying to figure out how to build my dog park app. And I typed in something like, "easiest web app" or like, "no code, low code, web app" and Anvil popped up. And I think basically what it is, and I'm gonna get this wrong probably, it's like a platform for creating web apps with just Python. But you know, there was a couple of ones you recommended it right like Node Red, it was kind of in the same SEO space as that.
SC Yeah, so great. There's a lot of great no-code solutions out there now and Pythons a good as any languages to do it with.
BP So our guest today is the CEO and co-founder Meredydd Luff. Did I get the name close to right?
ML Yep, pretty close. If you're not reading the show notes, it's spelled M E R E D Y D D. So like Ben stood zero chance there. And he did fantastically.
BP Welcome, say your name for us. So people at home know how it should be said.
ML My name is pronounced Meredydd. And I'm very pleased to be here.
BP Meredydd, welcome. So yeah, tell us what's the inspiration here? Why Python? Why for this sort of, you know, use case? And why were you the person to build it?
BP Sara, coming from a background where you've learned databases first, and then a lot of web development, and now work at a company where, you know, we have to think about things at scale. Do you run into people who you feel have come up against similar frustrations? I mean, I know for me, there was a little bit of this, certainly, like, where do I start? And when I do start on something, yeah, how do I avoid sort of that branching past where I, you know, to get somewhere I keep, you know, encountering another door that I don't know how to open?
SC Yeah, I think I think it's a big one, I think I hit that frustration a lot with Ruby on Rails. Whenever I need to get a Rails app running on my machine, I always give two to three days to do it. Because there's always a ton of dependencies, right? There's like so many dependencies going on, and you don't know what version of Rails you need, and you don't even know version of dependencies you have already installed or what you need, and all those things. And so it takes so much time. Do you see the same thing in the Python world? I guess, I guess you do. I guess that's what you're saying, yeah.
ML Yeah, hugely. I mean, that's wonderful. Because like, I was just talking about the plight of someone who hasn't built web apps before. This is like, as someone who's clearly done this before, and you still need to block out a couple of days to get it set up. That's I mean, it, that's hilarious, you know, terrible way. But yes, absolutely. You see this an awful lot in the Python world. Like even people like you who've been around the block a couple of times, we're building a web application, right? Just getting from zero to okay, now I'm writing my application logic is, is quite a heavy lift.
SC That makes sense. Do you see a lot of folks finding Anvil, because they're looking for that 123 setup and go, what is the use case that you see the most?
ML So I think it might help to explain what Anvil actually is. So if you're building an application with Anvil, you'll start at an online editor. So you go to Anvil.works, signup, login, you get a web ID. And you start out with a drag and drop designer, so you can build what your user interface on your web page is going to look like. And then, if you like double click one of the buttons, you are then editing the Python code that runs in your web browser, when that button gets clicked. And you can also add server side code. And instead of having to set up like HTTP endpoints, and match all your stuff into JSON on the way, you can just say, actually define some functions in your server side code, and then call those functions from the browser. And then, it's all serverless. So you can hit a button, choose a URL and deploy it there on the web. There's also like a hosted database for storing your data. So you don't have to set one of those up either. So really, the people we see the most of I mean, we see people in all walks of life, it's really quite fun talking to them, like I, I never knew about telecoms fraud prevention. But of course, there are telecoms engineers, where that's their sphere of expertise. They write a lot of Python driving telecom switches, but they wanted to create an interface for customers to be able to manage their own number applications. And that's an example of something where someone with that skill set can just get up and go and build a web application. Whereas previously, they would have had to collaborate with someone else or hire an agency or a whole bunch of other stuff that would have been an awful lot more work. So a lot of people in that case, like a lot of people who aren't full stack developers, but another nonetheless write code, and actually like the Venn diagram over the overlap there is really quite substantial.
BP I want to ask the sort of maybe aesthetic writerly question, and maybe there is no good answer. But like, it's interesting to think about people, as you say, who have to learn Python because it applies to their, you know, job, and then also want to use that same skill, set that same language to then build stuff for the web, when it's useful for them. Can you look at a website and say, "Oh, yeah, the person who wrote who created this, you know, definitely a Python person" or like, the kinds of stuff that people build with Anvil, you say, you know, this makes perfect sense, because you're using Python. It lacks certain functionality or flavor or, you know, design that you might get if you decided to go a different route, you know, HTML, CSS, all that stuff.
ML I think that's, I mean, we should dispel any myths that Python is an underpowered language for this kind of work for ordinary, if you're using classic, full stack web development. Like when was the last time you used Instagram?
BP You know, 30 seconds ago?
SC Um, yesterday.
ML Right. That's a Python back end. So the genius of Python and why we chose Python as the language for Anvil is that it is used for everything from teaching a bunch of nine year olds how to code for the first time. And you know, for that, things like that it's very popular, with teaching curriculums it's very popular, with the Raspberry Pi community. And it's everything from there to deep minds built beat the human mind at the game of Go for the first time ever, like that happened in Python. Instagram, that happened in Python. So I don't think there is a way you can look at a project and say, yes, definitely, that's Python, because it has Python's limitations, but what you can do is you can often look at a person or an industry, a person's background or what they're doing and go, yes, you are clearly bumping up against the limits of the tools that you have in your hands.
BP That makes sense. And so, you know, you were sort of sharing with some of the motivations for doing this. And I guess, you know, it sounds like yeah, some of those were personal motivations. But you know, some of it, I guess, is also just to do with, as you said, you know, this sort of rise of Python, it's growing popularity and the fact that more and more people, you know, might have this skill set. You shared with me that you are working on an auto-completer. Just back out a little bit, what is an auto-completer do? And when you sit down to build one yourself, what does it take?
BP We caught you. No, no. You've shot--I knew it. I knew it wasn't Python all the way down. [Meredydd laughs]
SC Yeah, that does make sense. So that's really interesting. When you say client side Python, that's not something that you hear that often. Is that something--
ML[Meredydd laughs] No it's not.
BP So sorry, just to back out for a second there, Skulpt is, can you just explain a little bit to a person like me what that's about and who the community working on that is?
BP You had one other idea which you suggested, and so I'll take you up on which is writing good developer docs. You know, here at Stack Overflow, we have this product called Stack Overflow for Teams, which is basically like a private instance of Stack Overflow inside of your company. And you know, lots of developers are already use that q&a format and find it's a great way to sort of do documentation on the fly. Somebody has a question, you post it, then people answer they debate, the best answer gets uploaded, and boom, now you've got some reasonable documentation. But you did a talk on this and wrote about it on the Anvil blog. So what's your approach to doc--you know, the thing that every developer loves to hate, how do you do documentation right at Anvil?
ML So the thing about developer docs, if you are maintaining a developer facing product, so if you are building a platform, if you are building an API that you want developers to use, if you're building like a library, you're going to stick on your on NPM, or on PI API, or any of these equivalents. Your documentation isn't just your docs, your docs is your user interface. If you're building a developer product, your doc's are your UI. And they're also your marketing. And they define what your product actually is, you know, they're they're your UI, because the first thing that a developer does, when picking up your thing, it's going to be to click on the docs, whether it's a tutorial or a reference, or a list of what our API list of API methods, that's where they go first. That's how they can tell what your doc is like, that tells you where your product sweet spot is. They're also content marketing, and Stack Overflow knows this better than anybody else. But the world is full of people googling, "how do I do what your product does?" And that is, if they land on any form of your docs, you've just succeeded as content marketing, whether it's a tutorial for how to do X, or the Stack Exchange answer for "how do I do this particular thing?"
BP Well, this is exciting to me, because my job is Director of Content Marketing, but now I can just take credit anytime somebody Googles something and ends up on Stack Overflow. Did you hear that Sara? I get all the credit.
SC Yeaaah, yeah.
ML No kidding! Right? Because you, you, you must know that the answers on Stack Overflow are the best content marketing you have, because they are the things that people are looking for.
BP No, it's true. I mean, sometimes we used to call that like user generated content, you know, really, it's the it's sort of the beating heart is the community and the interaction there. But we started just sharing great questions and answers through the podcast and the newsletter and social media. And people love that, you know, just like, "did you know" you know, and it could be even from, you know, our physics stackexchange kind of "question of the day" is a powerful thing that the community builds for us.
ML Oh, no doubt, I guess I was just I was riffing on what you were saying about if you have an internal Stack Exchange, is that Stack Overflow for Teams, you call it? Like, those are your docs. And those are an external Stack Overflow is content marketing for your developer product having answers out there. And it's they're not just answer shaped, of course, because like documentation can come in a bunch of different forms. There's a guy called Daniele Procida, who's created a framework he calls the Grand Unified Documentation Theory and given some great talks about this, and he basically divides it into tutorials which are okay, you want to learn this thing. Let me guide you through building a program with this developer tool. There's how to guides is you want to do this specific thing, here is exactly how to do this specific thing. And I think that's mostly where a lot of Stack Overflow answers sit. And then there's like explanations which are you know, those discursive posts that explain how everything works under the hood. And then there's your reference documentation, which is okay, this is the dry but on 100% utterly complete description of how everything works. And actually we divide those because sometimes you have like API docs, like, what methods does this class have. And sometimes you have reference documentation, like explaining, you know, this is how React's rendering process works. That's, that's not particularly tied to a budget to a particular function. But it is referenced, because it's explaining something in exhaustive detail.
BP Yeah, I was just gonna say, I was talking with someone from a doc to live, this sort of E-health company and their, their, their Team's customer. And one of the things that they were saying makes a lot of sense, which was the most popular questions and answers, and the one that people you know, inevitably find useful is, what do I do when I'm setting up my development environment? Right, like when I'm just sort of onboarding to the company? And like you said, it's kind of this entryway. And so those are the most popular questions because that, you know, they're, you know, always hiring. Not that they're the, you know, necessarily the questions that are going to, I mean, they'll make the more come the company more productive, not that they're, like, essential to the work day in day out. But everybody's gonna have that question. It's kind of the door to get it. I think I agree.
ML Absolutely. Well, so this is where I'm, I'm, I'm afraid I'm going to go all kind of 'part of a nutritious breakfast' on you. Because although like that how-to and that q&a stuff is incredibly valuable. And if you don't have it, you'll end up with your users hurting badly. Like, it's not the only thing you need. You can't say, oh, Stack Overflow answers about our framework are the only thing anybody will ever need. No, you need an actual tutorial as well. And you'll need your API docs, you'll need your JavaDoc or Doxygen. Or, or equivalent. And so this is something that like how our documentation, I mean, operation, which is a is a very big part of what we build, because we build developer tools. And that those are our UI. Our documentation is we're very conscious about okay, here I am writing in tutorial, here I am writing reference, here I am writing explanation. Here I am writing well, autogenerated API docs, because API docs should be auto generated. And here is we have a q&a set section, we use our forum for this. But like that kind of scratches, the how-to itch. And so I suppose that like, the biggest thing I would say about building developer docs is like think about the whole developer journey. They will get to a point where the thing they most want to do is Google stuff and hit your Stack Overflow internal or external instance. But you got to think about the rest of that journey as well. Think about the tutorials, think about their onboarding dogs, think about the reference, think about the API docs, and you need it all. And if especially if you're building a product that's going to be used externally. So the number of startups who have API products, and they are like they are dying, they are parched in the desert for user attention and love from their users. And they put that marginal piece of effort into another piece of content marketing, when they don't have their documentation journey locked down. Yeah, I know. It's like telling people to floss. Everyone knows you should do it. And it's hard. And it's difficult. But like, I suppose for us, it's very easy, because because we know it's our UI we know it is customer facing, it gets a kind of priority boost within a developer focused organization that might not get inside other companies.
BP No, no, I think you make a good point. I mean, one thing I've learned in talking to people about documentation endlessly, because sort of like, understand what it is, and whether or not Teams is a better solution is the frustration of being asked to write documentation not knowing exactly who's gonna read it, when, how much they need, is this too much or not enough. And then if you write it, not always getting that feedback, you know, have somebody read it, maybe they found the answer, but they didn't thank you, or they didn't say, you know, like, that, it just sort of goes to a void and you don't get the positive feedback. Whereas I guess if you make a customer facing, that's interesting, because you might get comments or see people, you know, go from there to try out the tool or something like that. That's an interesting way of positioning it in order to sort of not just get more value out of it, but be able to, like have that feedback loop of seeing people actually getting something out of the docs that you wrote.
ML Yeah, absolutely. And well, if you're, if you're not certain about it, all the bug reports on your documentation will come out as questions. You know, everything that your documentation doesn't cover, this is, this is the saving grace of having a q&a environment, which is anything that is not covered by existing documentation will turn up as a question there. And once it's answered that valid, that's a patch on your documentation. And so it's interesting. I mean, we haven't considered it, I'm not sure I would recommend just completely setting out from a clean sheet and going okay, we will discover all of our documentation via question and answer, but if you don't have it, you're going to be suffering because you're not going to discover the problems people have and that if that's your product, then you're not going to be discovering the things that are stopping people from buying from you. Right You know, that never ends well.
BP Alright, it is that time of the episode I'm going to shout out the winner of a lifeboat badge, somebody who answered a question with a score of negative three. And now it's all the way up to a score of 20 or more. "How to add hours and minutes to a date time variable in C." So thank you to Rj Regalado on that one. And Meredydd, I'll give a shout out to the UK's new 50 pound note celebrating Alan Turing, apparently full of geeky easter egg. So I guess if you're into computer science, and in the UK, go pick up a 50 pound note. And there's some cryptography inside of that piece of fiat currency. Egh. Who uses paper money anymore? Right, Sara?
BP Maybe there's an NFT version of this 50 pound note I could get for 500 pounds.
SC Yeeaah, for like $6,000.
ML Or just like dipped it in bleach first, leave it for 72 hours, might be safe to touch them.
BP Alright. Well, again, Meredydd, thank you so much for coming on. If people want to find you online, check out some of your work or writing where should they look and then also, if they want to play around with Anvil, what's the best way to get started?
ML So I am @Meredydd on Twitter. You can check us out Anvil.works. And it's free to sign up and use and publish applications forever. You can check other stuff I have written about on the blog, Anvil.work/blog. Or you can follow us on Twitter at Anvil_works. We post stuff there as well!
BP I'm Ben Popper. I'm the Director of Content here at Stack Overflow. I'm working on a long suffering dog park web app. It's not finished yet, but Anvil really pointed me in the right direction, which is Glitch, it's very simple.
ML Awesome! Wow.
BP No, I'm just kidding. It was just that, you know, learning any code was too much for me. It wasn't that there was anything wrong with Anvil. And yeah, you can always email us firstname.lastname@example.org and we'd love to hear suggestions and questions.
SC I'm Sara Chipps, Director of Community here at Stack Overflow and you can find me @SaraJo.eth.