I previously mentioned Anvil in passing. It’s potentially a game-changer for at least in-house applications.

Context: In the mid 90’s we were all busy making small MS-Access applications. Some of us did the same in Lotus Notes or similar. Twenty years later we’re busy with web equivalents. Those go all the way up to expensive BPM solutions like Appian and Pega (and a dozen alternates). At the lower end, we may be making form-centric apps with wufoo or one of it’s many alternates. Perhaps we’re making apps (or picking plugins/extensions) for Confluence and Sharepoint.

I’m left wanting a single thing though - a source-control backing store for the applications that supports round trip editing. Anvil has that (in beta) - read on.

Note too - I’ve blogged before on this theme:

First, an Anvil app

Here’s an app from the supplied templates - “Hello Word”:

The form for that

(in the designer view)

Toolbox and properties (for the input field):

This is to the right of the design panel, but I’ve snipped it up some to make it work for a responsive blog entry.

The Python code for that

And here’s the Git repo for the same paul-hammant/Anvil_Rountrip_Nirvana, after cloning it from Anvil.Works, adding an origin for GitHub and pushing it up.

Play with it inline

Running here in my blog:

Yes, you can embed Anvil apps, and they’re responsive enough to work on an handheld devices too, just fine.

Round-trip Nirvana

If I change the Python in the working copy of the clone, do a commit and a push, then the form updates. I’ve already done one commit from the terminal, edited in Atom: paul-hammant/Anvil_Rountrip_Nirvana/commit/a812d9:

Yup, was originally “Hello, !" and is now "Hello, how are you? ".

Fits my “everything should be backed by source control”, and as far as possible support round trip editing of the application.

What Next?

Now the Git stuff is officially in beta I’m wondering what I would do next by way of experimentation.

Maybe I would want to have two Anvils instances - one for development and one for pre-production. Different domains of course: dev.anvil.mycompany.com and anvil.mycompany.com . I would want them to use different branches of the same Git repo, and use merge to get changes from dev to prod (or vice versa if something was hot-fixed in prod). I’d prefer this to binary releases as this ‘internal’ type of corporate application has less criticality than applications/services aimed at customers. For the latter you want to customize and polish the experience in order to differentiated in your vertical. For the former you want to cut costs, and get shit done with a safety net (Git in this case). Anvil certainly delivers on that promise.

Thanks to Meredydd Luff and Ian Davies for making Anvil, and being tremendously communicative in respect of this blog entry and the backed-by-Git holy-grail. Also for whatever comes next from this technology - go guys!!