Live Chat

We'll need to share your messages (and your email address if you're logged in) with our live chat provider, Drift. Here's their privacy policy.

If you don't want to do this, you can email us instead at

Anvil How-to Guides

Anvil’s how-to guides show you how to accomplish specific tasks. These tasks are small use-cases that appear often in Anvil apps.

These how-to guides cover multiple topics. If you’re looking for guides relevant to one topic or component in Anvil, please refer to the relevant section of the reference docs.

The Guides

CRUD best practice

An overview of Anvil's best practice for building CRUD apps

Custom user authentication

Use the Python APIs to take full control of the authentication system, or build something entirely custom.

Making plots

How to make plots in Anvil using most popular plotting libraries.

Dropdowns and Data Tables

Use DropDown components to select rows from data tables

Expand and collapse sections of pages

Create expandable/collapsable sections of pages

Visualise data from an external database

Build a dashboard that pulls data from a business database, and displays it on the web

Using a REST API

Use the GitHub REST API from an Anvil app, and solve a common configuration problem with the power of Git.

Apps in development and production

It is common to want to run the same app in both development and production, connected to different Data Tables. We walk through the steps involved in setting up Development and Production versions of an Anvil app, with separate Data Tables and URLs.

Switching apps to client-side Python 3

You may have some apps that use Python 2 on the client side. Use this guide to convert them to use Python 3.

Converting an app to use Packages

You may have some apps that pre-date the introduction of Packages. Use this guide to convert them to use Pacakges.