• Much simpler than writing HTML. UI is quite composable with drag and drop.
  • Cannot be pushed to VCS
  • Uses sandboxed PyPy with limited modules or CPython (without sandbox?). I’m doubtful what they mean by sandbox. If it means that it runs on WASM, then why is only the PyPy 3.6 version on WASM and not the CPython version. It’s worth noting that PyPy sandbox is the default and the CPython version needs an upgrade. Maybe they run CPython code somewhere on the server.
  • Creating tables is quite easy. It is just SQL tables with a UI strapped on top to make it accessible. It works in the user’s favor if they are already familiar with similar data models. 
  • Autocomplete is nice for their web IDE. It can autocomplete names of tables that are dynamically added when writing server-side code.
  • Web IDE actually is quite smart. Even for server functions that are mentioned in client-side code in a server.call, it shows some short documentation for it.
  • Data in the tables can be viewed from the UI in the same app. This is handy for debugging.
  • Adding emails was extremely easy. It’s also managed by Anvil, apparently.



  • Default styles are powerful, and come with enough primitives. It is also customizable.
  • UI elements can be built using simple components. This is very composable
  • Building UI was easy to navigate. There is only “toolbox”, “properties” and “code” (client and server code are different, yes).
  • Building on top of existing Python code, with handle to all the elements feels very simple.
  • Server modules, UI elements, and pages can be named meaningfully
  • UI elements can be grouped together into a template to form custom components, that can be reused later
  • Adding assets like images is simple because it’s just an upload. We don’t have to manage that ourselves.
  • The drag and drop editor and Web IDE are well integrated and the UI flow links from one to another sensibly


  • Styling UI elements individually with setting properties for each element gets repetitive
  • Proprietary
    • Can’t be pushed to VCS
    • We don’t own the data in data tables
  • Maybe the frontend runs as WASM
  • The UI still doesn’t feel smooth enough to make me like the process of building it. It’s not very polished yet.
  • Still leaves much of the design decisions to the user.
    • Elements don’t always come with sensible default stylest
    • Elements do have some preset styles that can be chosen from
    • The placement has to be figured out by the user always