![](/docs/editor/img/new-editor-beta/new-editor.png)
![](/learn/tutorials/img/crud-app/add-a-button.gif)
![](/img/features/pythonbrowser.gif)
Run Python on the server
Use simple Python function calls to pass information from the server to client.
Try a tutorial Reference docs![](/img/features/pythonserver.png)
Built-in database
Backed by Postgres. Query or edit your data with a no-nonsense Python statement.
Try a tutorial Reference docs![](/learn/tutorials/img/crud-app/add-title-column.gif)
Deploy in the cloud with one click
Choose public or private hosting at the click of a button.
Try a tutorial Reference docs![](https://anvil-website-static.s3.eu-west-2.amazonaws.com/learn/tutorials/crud-app/publish-app.gif)
Install Anvil on site
Develop and run your app entirely behind your corporate firewall on servers you control.
Get in touch Reference docs![](/img/features/on-site-installation.png)
Open Source Anvil App Server
Run Anvil Apps anywhere! You have complete control because Anvil's runtime engine is open source.
Find us on Github Learn more![](/img/features/github.png)
Built-in user authentication
Anvil handles sign-up, log-in, email verification, two-factor authentication, password reset and more.
Try a tutorial Reference docs![](https://anvil-website-static.s3.eu-west-2.amazonaws.com/features/user-auth.gif)
Generate PDF Documents
Design your documents with Anvil's drag-and-drop designer. Create them with one line of code.
Try a tutorial Reference docs![](/blog/img/generate-pdf-with-python/pdf-complete.png)
Build HTTP APIs in seconds
Integrate with external HTTP REST APIs, or expose REST APIs.
Read the tutorial Reference docs![](/img/features/http-demo.gif)
Connect to outside code
Connect a local script or Python notebook to your Anvil app - it’s a two-way API!
Try a tutorial Reference docs![](/docs/uplink/img/quickstart/selected-environment-new-ide.png)
Import Python libraries
Full Python environment with access to any library you can pip install.
Try a tutorial Reference docs![](/img/features/libraries-server.png)
Securely store sensitive information
Passwords or API keys stored safely, encrypted in your app.
Watch the tutorial Reference docs![](/docs/security/img/encrypting-secret-data/secrets.png)
Add Google Maps, YouTube and Stripe instantly
Drag and drop Anvil's built-in components.
Watch a tutorial Reference docs![](https://anvil-website-static.s3.eu-west-2.amazonaws.com/features/add-map.gif)
Send and receive emails
Send and respond to emails with one line of Python using Anvil’s built-in Email service.
Sample code Reference docs![](/img/features/emails.png)
Run background tasks
Leave your main program to continue executing while your background tasks are running.
Read the tutorial Reference docs![](/img/features/background-logs.png)
Upload and download files
Store large datasets in your app with Anvil's static filesystem. Users can upload and download files using Anvil's built-in components.
Watch a tutorial Reference docs![](https://anvil-website-static.s3.eu-west-2.amazonaws.com/docs/working-with-files/data-files/uploading-a-file.gif)
Git Version control
Every app is a Git repository. Create branches, commit changes, and resolve merge conflicts all within the Anvil Editor.
Try a tutorial Reference docs![](http://localhost:3000/docs/version-control-new-ide/img/_index/commit-changes-2.png)
Access the raw web APIs
If you need to, you can always write HTML & CSS, and call JavaScript from Python.
Try a tutorial Learn more![](/docs/ui/custom-styling/img/roles/theme-css.png)