The Anvil App Server is now open source!

We have open-sourced the Anvil runtime engine.

This is about as excited as I have ever been about an announcement :smiley:

You can now export any Anvil app from the Anvil Editor, and run it on your computer using the new, open-source Anvil App Server.

Run your apps as a standalone web service, on any computer ā€“ from your desktop to a private server to a Raspberry Pi.

Check out the announcement on our blog for more information:

The Anvil App Server is available on PyPI, so you can create and serve a sample app with three commands:

$ pip install anvil-app-server

$ create-anvil-app todo-list MyTodoList

$ anvil-app-server --app MyTodoList

If youā€™ve already built an app with the Anvil Editor, you can check it out with Git, and run it using the App Server. Hereā€™s a step-by-step guide: Getting Started with the Anvil App Server.

21 Likes

Thatā€™s great news and now doubt a huge effort behind the scenes @meredydd - thanks and congratulations!

IMHO this is a really shrewd move commercially and will make Anvil more attractive to CIOs Iā€™ve spoken with about Anvil. It addresses a common nervousness Iā€™ve heard about becoming too ā€˜dependentā€™ on Anvil in terms of technology and also commercially, and also provides great options for clients wanting to develop and/or host things locally/internally.

perhaps you just want to be safe if a meteorite hits our datacentre, or if we get mugged by a passing gang of venture capitalists.

:laughing:

We hope you get muggedā€¦ in the nicest kind of wayā€¦

7 Likes

Wow. All I can say is wow.

I can already think of places in my organization where this would be very useful.

A big ā€œthank youā€ to the Anvil team for making this possible.

5 Likes

Fantastic piece of kit that means I donā€™t have to maintain quite so many dev and testing copies of an app on the cloud side!

Thank you.

4 Likes

This is very exciting! Iā€™m looking forward to playing around launching my own instances in ā€œall the placesā€. (personal web host, AWS accounts for clients, etc.)

Since I have paying clients using apps Iā€™ve built with Anvil, I have a responsibility to ensure their platform is as safe as I can make it from losing hosting support.

  • Is Anvil the company looking to end support of the cloud platform?
  • Is there any danger to Anvil the company from a financial stand-point?
  • Should I look at standing up my self-hosted Anvil replacement sooner rather than later?
2 Likes
  • Is Anvil the company looking to end support of the cloud platform?

Absolutely not! Our goal is that building a web application should be as simple as possible, and the cloud hosting platform is a vital part of realising it. When we describe Anvil to someone new, we say:

Think about what it would take to build a traditional web application. You would need to know HTML, Javascript, CSS, Python, SQL, React, Redux, Bootstrap, Flask, SQLAlchemy, Sass, Webpackā€¦and thatā€™s a simple app. But even then, youā€™re not done. You still have to know about Git, about AWS, about how to secure a Linux system, how to set up a databaseā€¦and then youā€™re on call for keeping it all running, forever. Orā€¦you could use Anvil. Build your UI with a drag-and-drop designer, write your logic in Python, and weā€™ll take care of the rest. Anvil replaces the whole stack with ā€œjust write Pythonā€.

I make no bones about it: The Web platform is broken, and Anvil is our attempt to fix it. And a cloud hosting platform with easy deployment is part of how we fix it.

But what happened was that we kept meeting people who said, ā€œthatā€™s great, butā€¦I need to run this on an offshore platform without reliable internet accessā€, or ā€œI want to package my app into an IoT device I sellā€ - or just ā€œif Iā€™m putting my eggs in this basket, how can I be sure I can still run my app in ten yearsā€™ time?ā€. The App Server is the answer to all those questions.

Think about the App Server as an escape hatch ā€“ just like our Javascript interop, our custom HTML styling, or our Git repository support. Itā€™s there for the (relatively few) people who need it. And everyone else can build confidently with Anvil ā€“ because if you ever do need it, you know itā€™s there.


  • Is there any danger to Anvil the company from a financial stand-point?

We donā€™t share financial data in public, and it feels like bad taste to crow in public right now about how well weā€™re doing, when so many people are suffering, but we are currently growing faster than ever, soā€¦No. Justā€¦No. :slight_smile:


  • Should I look at standing up my self-hosted Anvil replacement sooner rather than later?

If you want to play with it, go ahead! But if you want someone else to manage your hosting, keep it upgraded and secure, scale it, manage the logs and make them easy to search, and carry the pager ā€“ and if you want to be able to deploy with a click of the mouse ā€“ then stick with the cloud platform. The open-source server will be there if ever you need it. :slight_smile:

15 Likes

This is great! Really excited about the additional flexibility and insurance policy.

Just skimmed through some of the source on github. I didnā€™t realize you guys are a Clojure shop. Thatā€™s awesome!

4 Likes

This is great and exciting news. Thank you Anvil team for this great achievement. I just have a couple of questions:

  1. In hosting the Anvil runtime locally or on a different server, will all the other features of Anvil work the same such App Secrets, Datatables, Emails and such.

  2. Is there any difference in hosting an app externally with the Anvil runtime engine when the app was built say with a free account and another app built with an upgraded account with access to more python libraries.

  3. This is not really a smart question (makes me wonder if any of the others are). I just want to be certain. Say I build an app for a client using my individual account and host it externally on the clientā€™s server with the Anvil runtime. If for some reason, my account no longer exists or say I downgrade, will this have any effects on the clientā€™s application?

Once again, kudos to the Anvil team for making this available as an option for us. Thank you for the great work. Looking forward to your response.
Agobin.

Thatā€™s quite simply the most amazing news and my head just exploded thinking about all of the possibilities. Anvil could become the default platform for all stand alone device interfaces.

2 Likes

This is a pretty incredible development. Thank you and congrats on the release!

A couple of questions for you Meredydd if you donā€™t mind:

  • How does this work in terms of licensing? - Do self-hosted apps have the same tier limits (such as how data table rows) as paid plans?
  • Does the self-hosted runtime report back to Anvil for auth/verification etc?
1 Like

This is truly amazing. The main hesitation Iā€™ve heard from data science users is not being able to host the apps where they want. This completely eliminates the issue and makes Anvil even better.

Thanks for all your hard work Anvil team!

3 Likes

Iā€™ve loved this platform from the very beginning, but this takes it to a whole new level. This is so great. Thank you so much.

2 Likes

Really good news!
You guys made an excellent tool, I canā€™t thank you enough for the effort and time behind.

For me it is the close future on how full-stack development will work.

Awesome job guys!

1 Like

Iā€™m especially excited about how this will streamline the process of having development and production versions of apps. The development app can now be the one running on my local machine, and the production version the remote one running on the Anvil servers. It seems like thisā€™ll remove a layer of complexity from the process.

Edit: maybe not, I canā€™t imagine doing anything directly with the form yaml files or data tables. Code changes could be made and tested locally, certainly, but larger changes would still need the web interface.

4 Likes

Iā€™m breathless.
Canā€™t find words to say how much Iā€™m happy and excited about this!
Awesome awesome awesome!!

1 Like

Now thatā€™s is a pivot and a half!

Some Raven code has snuck into the repo, just as a heads-up.

How long 'til the AirTable integration goes live? :wink:

Edit: Someone questioned the viability of Anvil the business. Private limited companies in the UK are required to publish accounts on an annual basis. These records are accessible to anyone with a web browser and access to the Companies House website. Itā€™s only a point-in-time snapshot of financial position, but combined with some ballpark assumptions about overheads, can give a pretty good idea of where any company is at.

1 Like

Is there any plan to make a desktop app for modifying the YAML files? Itā€™s such a pain to have to git push, edit in the web app, and git pull again, it would be so useful to have an offline editor - especially with the new open-source runtime

3 Likes

To reply to some of your questions @Agobin, @Ankur, @argonaut.industries:

You can use Anvil services like App Secrets, Data Tables and Email with the App Server. Thereā€™s more information about configuring the App server to use Anvil Services in the README.

There are no limits (such as Data Table rows, Data Table storage, Python libraries and Background Task timeout) on the App Server, and you donā€™t even need an Anvil account to build and host apps using the App Server. In practice, the simplest and easiest way to build and deploy Anvil apps is with the online Editor and the one-click cloud hosting service. This is what your pricing plan relates to.

The App Server doesnā€™t report back to Anvil for authentication or verification - it can run on a completely isolated network if you need it to.

3 Likes

Hello,

Thats great.
It helps me a lot doing my web app in my Raspberrypi, and it works fine (I follow your tutorial: https://github.com/anvil-works/anvil-runtime/blob/master/doc/getting-started.md).

In Anvil IDE I add a Data Table, but when I open my app in my RaspberryPi, I dont have the Data Table.

I only have a question: How can I put to work the Data Table in my Raspberrypi (Raspbian) ?

Thank you

1 Like