Anvil: Full Stack Web with Nothing but Python
2021-06-03, 10:00–10:45 (Europe/Paris), Main Room

What if we could build our front ends in Python too? Anvil is a framework to get us there: no HTML, JS, CSS, React, Bootstrap or Webpack required!

Instead, how about a Python UI toolkit, a drag-and-drop designer, and a full-stack runtime that doesn't require you to squeeze all your application state over JSON and HTTP? Find out how it's done, and why I think it's a good idea.

Building a modern web app requires so much: HTML, CSS, JS, Python, SQL, React, Bootstrap, Webpack...and Django, of course ;). What if we could build a better abstraction?

Our answer is Anvil: a full-stack Python environment where everything is a Python object, from your UI components to your database rows. In this talk, I'll walk you through how and why we constructed this new approach to the web.

We'll start with a question: Why is web programming hard? It's because your data takes so many forms: database rows, Python objects, JSON on REST, JS objects, HTML DOM, and finally pixels. Most of a web developer's job is translating between these awkwardly different representations. Frameworks like Django help, but now you have a stack of leaky abstractions: web frameworks, ORMs, JS frameworks, CSS frameworks, build tools... These frameworks help you go faster, but they double the amount you need to know!

So I'll show our stab at an answer: A framework where everything is a Python object, requests to the server are function calls, and Python is a browser-side language. I'll talk about running Python in the browser. I'll talk about full-stack autocompletion. There will even be live coding.

And then I'll talk about how it breaks. Because every abstraction breaks, and this abstraction is bigger than most. So I'll touch on what it means to go down with the ship, to use an ejector seat, or to open an escape hatch.

Join me for a rollicking tour of a new way to approach the web!

Meredydd learnt to program with QBASIC, and still misses that accessible on-ramp into programming. He did his PhD in building usable programming systems, and has worked on projects from messaging apps to the Linux kernel. After a few too many rants about the web with his friend Ian, the two of them built Anvil, a platform for anyone who writes Python to build and deploy a useful web application.

He’s based in Cambridge (the one on the Cam, not the on the Charles). In his spare time, you used to find him dancing ballroom and latin, or flying an aeroplane. These days, he enjoys a rich social life of staring at glowing boxes and talking to people who aren’t there.