Production Apps on Anvil

Hello Everyone.

We are a small software company and looking to develop MVPs for clients that could then go on to become full production apps.

I can’t seem to find any really medium or large scale apps built on Anvil.

Has anyone out there got a list so I can show my clients as they are wondering how scalable apps on Anvil can be?

Appreciate it!

1 Like

Hello @james0374,

I’m founder and CEO of Mark.ONE Bakery and we are building SaaS product in form of an Cloud based ERP System for bakeries. Refer to the case study for more info: Mark.One: SaaS for Bakeries

Anyway our products are all built 100% on Anvil and since we include a point of sale application we must deliver almost 100% uptime to our customers. We are growing fast and several thousand transactions run over our pos system each day.

In short - yes anvil is more than capable of running production grade apps.

A few more thoughts on the matter:

  • Hosting & Security: The anvil team is better at this than my team. Period. And even if i could hire someone with a lot of expertice on the matter - he will cost significantly more than any anvil.works plan.

  • Application Development.: I have not yet found something that can’t be done in Anvil. And even if over time there would be something that can’t be done - anvil could proboably add it. With the new editor your are able to work with whole development teams on apps. We have currently 4 developer working on the same application.

  • Scaling (hosting/Server) The hosting itself can scale just like any other application would. I’ve just recently upgradet to a dedicated server → where you chose your AWS instance and anvil takes care of the rest.
    Not sure if Anvil could run on Kubernets or something like that however.

  • Scaling (Database): The anvil Database is just a Postgres database and on production apps you have raw sql access. → This should be able to handle billsions of rows. Personally we use Google Firestore which scales almost indefinetly. And once you really outgrow that you are proboably listed on Nasdaq and need to decide that on your annual shareholder meeting :wink:

In summary: In my experience - scalabilty depends on your design choices. And even if anvil becomes a bottleneck at some point - this would not be the end of the world. They are a company you could just try comission a certain feature - proboably others will have the same issue and investement costs can be shared. (Considering that I’d have to pay twice as much developers without anvil, I imagine this would always be worth it💹)

Another company i know of is https://fairshake.com/ → Awesome product and growing very fast.

The only thing anvil really misses is a proper library infrastructure, which is however partly in the making as far as i know.

-Mark

9 Likes

Hello Mark!

Thanks for your extensive explanation. Where you say it can do anything → this is for one reason Python. We have been working with Django and pure python for a few years now, so I know this well.

Just looking to build applications faster, therefore looking to Anvil.

The other points are interesting too about scaling. Did you find that the load situation might be better with firebase than postgres? Postgres seems pretty powerful to me? Did you connect to firebase via API because it seems there is no package for that?

So I guess the downside is not all packages are available with a simple pip?

Thanks for your help.

Ivan.

With a simple pip, no.

But looking around, they can install things for you

If the package(s) you want isn’t currently installed, please drop us an email on support@anvil.works.
We can usually get a new PyPI package installed for you within 24 hours.

1 Like

Hi Ruben,

So if we need anything we just ask right? Are there any packages that cant be installed in Anvil?

1 Like

There are a few like Selenium which pose security risks but you can pip anything on a local computer or server instance and use the Uplink feature to call code from there. This works just like a server call and is how we use Selenium.

But all other standard packages you can ask to have installed by Anvil.

Note that you will need the full python environment enabled to get access to third party packages which requires a paid subscription (available from VERY reasonable prices).

2 Likes

Anvil actually helps me reduce dev time x10

It depends on your requirement, normally postgres is fine. But you can use anything, even redis

If you use hosted Anvil, the team often install the package within 24 hours after receiving your request.

1 Like

Hi @james0374,

We had a requirement to live sync two web applications.
Not sure if you could do that with an sql database - with firebase that is quite easy.
I connect with firebase via the python sdk server side and with the javascript sdk client side. (All with a custom python wrapper)

Just to be clear as others said you can install any python package server side. On the client however only a subset is available through skuplt.
So server side you should never ever have a problem.

2 Likes

Anvil comes with a nice integration with postgress, but that integration has some limitations.

Out of the box you can use the database with Anvil’s tables module, which is good enough for half of my apps and for 90% of the queries of the other half.

For a few queries of some apps I use sql (available in dedicated plans) with psycopg2. tables doesn’t manage joins or any other kind of fancy queries, that’s where I use sql.

But even if you have access to sql, you don’t have full access to the database. Can’t create triggers, indexes are managed by Anvil, etc. I was able to create my own own tables with my own indexes, but it was too hacky, so I decided to stick with tables + limited sql until I’m forced to migrate to an external database. After 4 years I have hundreds of tables that work just fine.

1 Like

One of the downsides is when you have to manage the open source anvil due to regulation. It is not well documented how to scale. A lot of try and error before you get it works

2 Likes

Further disadvantages of the open source anvil is that it use http-kit server, which is not very maintained.