
Anvil: full stack web apps built only with Python - galfarragem
https://anvil.works/
======
mephitix
I love it. But seeing this now, in 2017, is a bit depressing to me.

For the last 15 years Microsoft has been putting out the same RAD tools, but
based on ASP.NET/C#/Visual Studio. Things like drop-in provider-based OAuth,
editing versioned database projects, WYSIWYG UI, etc. Publishing to the web,
even the flow of clicking on a button to edit its handler looks like it was
based directly on Winforms which is a 12 year old technology.

Why aren't there more of these things out there?

How much time now is spent learning the latest and greatest
framework/toolkit/etc. only to spend more time configuring individual
components and cobbling them together vs. just getting the product finished
and published to users? I don't mean to be cynical but I wish there was some
way all these different tools somehow built on each other instead of
constantly resetting the dev stacks.

For example, Create React App - I'm constantly impressed by how it has
eschewed configuration in favor of getting things done while still having a
lot of flexibility. It draws on a lot of great, previous past projects and
seems to define the train of thought for other react projects. It seems to me
that people like Dan Abramov, Brent Jackson, and others are on the same
wavelength which is incredibly powerful for the react community.

There should be a way for that sentiment to extend beyond React, into the
database world, the IDE world so that we can collaborate and create more nice
things like this.

~~~
Edmond
I am the developer of Solvent IDE, which attempts to tackle this problem in a
comprehensive way, ie from the ground up as a platform:
[http://codesolvent.com/web-dev/](http://codesolvent.com/web-dev/)

It is not as easy a problem as it seems...beyond the technical hurdle, a major
obstacle is developers :)

While you like this paradigm, I am afraid a lot of developers generally scuff
at these types of products.

~~~
ZenoArrow
Regarding...

[http://blog.codesolvent.com/2017/03/what-happened-to-
sharing...](http://blog.codesolvent.com/2017/03/what-happened-to-sharing-work-
with.html)

... making it onto the front page of HN isn't some mysterious process, it's as
a result of people who are viewing
[https://news.ycombinator.com/newest](https://news.ycombinator.com/newest)
when you posted an article voting it up. Due to the fast churn rate on the
'New' page (and to the lower traffic on the New page) it often a matter of
luck if a post reaches the front page, but what it isn't is some kind of
conspiracy to exclude new entrants.

That aside, your tech looks interesting. What licence(s) is it released under?

------
bobjordan
So I've been working on a python flask web app in part time/spare time for my
business for almost two years (in addition to running a company doing several
million USD in sales over that time without the app.) In that two years, I've
tracked my programming time with wakatime and I'm at >1000hrs now, more than
25 full-time 40hr work weeks of actual coding time. I'm running the app on a
dedicated GPU server, as part of the apps function is to evaluate 3D CAD
files. Time spent managing and running a dedicated server is not even counted
in the 1000hrs. Of course, I've also had to learn to be a Postgres database
admin and dozens of support libraries. And, certainly must have at least some
javascript/jquery. Libraries like flask-admin and flask-security are great.
But, when you need them customized for production, it takes weeks of time to
dig in and actually learn how they are built from the inside out. Need to
subclass and override much of it to finally have something usable. I literally
just spent about a month hacking on flask-security to get the login/email-
confirmations/email templates/argon2-hashing/2-factor-auth the way I need it.
Then, I watch this video the guy replicates most of the functionality in six
minutes. Nice work, definitely looks like heading in right direction.

~~~
ApolloFortyNine
My personal experience with Flask has led me to believe it's many times easier
to expand on vanilla Flask then it is to try and incorporate any of the
flask-* libraries.

~~~
larrykwg
Flask never really seemed like a very mature framework to me, it got so many
strange inconsistencies and very dubious design choices I much prefer newer,
significantly simpler frameworks.

One example is the way the request context works in flask, I venture to say
thats just terrible software design in my book (from flask import request, g).
And seriously to have your framework give you a "global" variable to put
random stuff in, wth?

Also I rather not use Flask-SQLAlchemy since why should my database models be
tied so incredibly closely to some library of my web MICRO framework, it
doesn't make sense, I mean its not django why introduce this coupling?

It seems if you need all the dependent libraries (like webassets and wtforms)
just use django from the get go instead of going through the pain of trying to
cleanly integrate dozens of flask libraries.

To see how a proper simple middleware-based framework should look like
consider express, koa (nodejs), or bottle, falcon. Aiohttp and tornado also
have their place of course.

------
ceronman
This looks really really cool.

In the 90s we had RAD tools like Delphi or Visual Basic which allow you to
create simple apps very quickly. I feel that we are missing RAD on the web
these days. There are so many different moving pieces. To do a full modern web
app you need to learn different languages and frameworks plus other
technologies for hosting such as containers or AWS, etc. That might work for
complex apps, but sometimes you just want to do something simple that you can
easily design visually, use one language and hit one button to publish. I have
the feeling that Anvil is moving in this direction.

And extra love for using Python :D

~~~
meredydd
Were you at PyCon UK this weekend? Cause you just repeated our pitch, just
about word for word :)

I started out on QBASIC and Visual Basic, back in the day, and as far as I'm
concerned it's practically dereliction of duty that there wasn't something
similar available for the web. Eventually, we got fed up enough to go and
build it ourselves.

~~~
zitterbewegung
Are these websites responsive too ?

~~~
meredydd
Yes! See our first walkthrough video, which includes a screenshot of the
(unmodified!) sample app on an iPhone.
([https://anvil.works/learn](https://anvil.works/learn))

You can control which columns do and don't collapse on mobile or tablets. See
this post from our user forum: [https://anvil.works/forum/t/how-do-i-make-my-
apps-look-nice-...](https://anvil.works/forum/t/how-do-i-make-my-apps-look-
nice-on-my-mobile-display/34)

------
meredydd
Hi there! Founder here, slightly gobsmacked to see this top of HN. Do feel
free to ask me any questions about the platform :)

We also have a bunch of tutorial-cum-demo videos at:
[https://anvil.works/learn#tutorials](https://anvil.works/learn#tutorials)

~~~
sametmax
Hi,

I'm really not a fan of Python client side. Or RAD. Or closed source services.

And I'm hugely impressed by the potential of your product.

Good luck.

I never though I would say that one day. But don't listen to people asking you
to open sourcing it now. You can always do it once you are profitable. But
right now, you need money to get this going. And if your product does what you
say it does, people will be happy to pay.

Although not to be locked up on the long run. You will need to address that
one day. One day.

~~~
tluyben2
> I never though I would say that one day. But don't listen to people asking
> you to open sourcing it now

I want to second that, entirely.

------
startupdiscuss
I am torn:

1\. Great idea, just what "we" need in the language we need. (Python cloud
RAD).

2\. But I don't want to do all this work and be locked into your system
forever. I want to be able to run this on Digital Ocean or AWS etc. if I want.

I think am open source version where you give people an option of hosting on
your site at first would be the best compromise. Please consider it.

~~~
sametmax
You are basically asking them: "I love your work. Please add an option so I
can use it, benefit from it, then leave and never pay you again."

~~~
geebee
Yes, that's true. But that does describe Rails. A pure Python web framework,
integrated, with a python to javascript transpiler is very likely to emerge,
but I can say with almost total certainty that it will have to be open source.

I don't know any actual numbers, but I think DHH and basecamp almost certainly
profited from the popularity of Rails. That's probably up for grabs, since
integrated web environments in non-js languages may become a big deal over the
next decade.

~~~
sametmax
DHH and basecamp made money because they are explicitly not open source and
you have to pay for it.

The fact they are built with RoR is an implementation details. 37signals was
very good at communication, Ror or not. Their blog and books were fantastic.

ROR as a FOSS may have helped, but I doubt it was instrumental.

~~~
geebee
yes, exactly, they found a way to monetize a product other than their
framework, and they used the OSS framework to draw attention to the non os
project. Whether that was deliberate or unintentional, I don't know, but it
certainly worked out.

EDIT: I agree with you that the product is good, and that the communication
was excellent, but I disagree that the success of ROR was minor to the success
of that company. It brought a tremendous amount of attention.

~~~
sametmax
But here the RAD is the product. Their end game. Basecamp was the product, and
ROR just a by product of it. Complety different.

------
rekshaw
Looks very impressive. Any plans of offering this a-la-gitlab: paid hosting +
support OR free downloadble source but then you're on your own? Main concern
is that for something to really become ubiquitous the community should be able
to contribute and not just be in the hands of two developers (no offense, I
think you did a fantastic job!)

~~~
jo909
I share this concern. I made a resolution not to tie myself to proprietary
services for anything that I couldn't replace/move within a few days. I can
move containers, databases and even serverless functions.

Starting from scratch seems to be the only option here, so I would hesitate to
even start a small prototype. Which is a shame because I really like your
model.

------
andybak
I stopped at the pricing model. The jump from $0 to $49 per developer
precludes my typical "dip my toe in the water" approach with new platforms.

I'd ideally want to try it out in production with a real, small commercial
job. But if I do and decide not to expand my use of the platform, then I'm
committed to a $600/year hosting deal for a small client...

And I won't use it on a bigger client at first due to the risk of lock-in.

In fact - lock-in is the biggest problem with using this. It's a paradox. I'll
only willingly get locked in to platforms that I'm 100% happy with and I am
only 100% happy when I've been using a platform for a reasonable length of
time.

Otherwise I risk having to rewrite a 5 year old website for a client out of my
own pocket when you decide to pivot or you run out of cash/luck.

------
tmikaeld
Whenever i see these cloud apps that seem like a good idea, I just think of
spiralling costs similar to the likes of firebase written about on HN before.

Their pricing page doesn't show anything about usage limits and if it is "per
site" or "per domain" or "per project".

~~~
meredydd
Pricing is per-developer-seat; we don't limit the number of apps you can build
or publish.

Usage limits are pretty soft right now (depends heavily on what you do in your
code and how hard you're hammering our servers), but the general intention is
to charge you more as you scale up your team, rather than because you got a
few thousand users.

~~~
tmikaeld
Does Anvil render server-side or is it client-side only?

My issue is if being used for websites, on average our sites get ~50k visitors
a month or even spikes with that amount.

The same goes for complexity of the system, for simple html sites it will not
matter much but for very dynamic apps this will require a lot of CPU time.

~~~
icebraining
Reading the docs, it says the Forms run on the client, so most rendering
should run too. Client-side rendering - while it has its disadvantages -
shouldn't be worse for the CPU time than server-side, though. What's your
concern?

------
jimnotgym
I can see this as an amazing teaching aid too. You can take away all the
learning about tech stacks and platforms and various languages and server
config etc. for a while and concentrate on developing the idea and developing
a process.

Edit: My son is going to love this when he gets home!

It seems good enough that you could push the prototype live as an MVP.

I am interested if you grow to something to the stage where you want to move
off this and onto something more customised, do you have access to be able to
properly migrate the DB somewhere else?

~~~
meredydd
No kidding! We were at PyCon UK this weekend, and we had an 8-year-old girl
building database-driven web apps in an afternoon:

[https://twitter.com/anvil_works/status/924648315983155200](https://twitter.com/anvil_works/status/924648315983155200)

As to your second point - yes, that's a common pattern. We see people going
"oh, let me just sketch out the UI...well, I'll add a bit of code...oh, look,
it's in production and scaling!"

We do have a lot of support for integrating with external systems, so it's
easy to gradually move off from (or on to) Anvil. External access to the
database is just the start of it :)

------
cies
Like many I'd be afraid for to much tie-in with this system. If I could export
my code is a way that it's usable and based on open source libs, I have the
liberty to extend it beyond what Anvil's limitations.

But now I'd probably still take the upfront cost to get a bigger app started
without tie-ing in with a service. For rapid prototyping it seems awesome!

------
linsomniac
This looks really nice, reminds me of what you could do with Visual Basic for
creating GUIs, and I really liked that experience (though I did very little of
it).

One thing I really don't like about it is how the free pricing level doesn't
have authentication. Seems like I can't really build a toy project that I then
"graduate" to a real app. Or maybe the plan is that you build it as a private
app as a toy and then start paying $45/mo when you want to make it public and
have auth?

I feel like if the free level was limited by something else, like database
size or something?

I can understand why they want to drive people to revenue-generation. Just
seems like a feature that hurts more than it helps, by keeping people from
even trying it?

------
Mtinie
Just a heads up, but this may run into some confusion amongst the Mac
development community with the long existing local web server tool, Anvil.

[https://anvilformac.com/](https://anvilformac.com/)

I’m excited to try the Python-based Anvil for quickly prototyping interactions
to share with my product and dev teams.

Edit: Typo!

------
g105b
I love this idea. It reminds me a lot of old school .NET worked within Visual
Studio, or the Delphi editor for Windows application forms.

.NET has evolved into a totally different beast so I don't use it any more.
This framework brings back the simplicity that I feel has been lost from drag
and drop tools.

Drag and drop tools exist for the web, but there's nothing that introduces and
organises the use of simple programming languages within the mix - at least
that I know of - so this is definitely going into my list of cool tools.

------
jtwaleson
Awesome! I work at Mendix where we've been building something similar for just
over 11 years now. Companies in this space (rapid app development for the web)
typically target the Enterprise market and are typically not open source, I
think that's why they don't get much interest on HN.

The market is heating up though, we are growing fast and our competitors do as
well. Moreover, Google (AppMaker) and Microsoft (PowerApps) have entered the
race in the last two years.

Looking forward to seeing more of Anvil.

------
jimnotgym
I remember someone saying on HN that what the world needed was a way to make
web apps that was as easy as making a Windows form in Visual Studio. Could
this be that app?

------
rahoulb
This looks amazing (speaking as an old Delphi programmer).

My three questions:

\- I have a client whose app sits idle but then gets hit by maybe 300
concurrent users, all reading and writing within a few seconds of each other -
do you have anything in place to deal with that kind of spike in usage?

\- It looks like it's designed to be always online - any plans to make it
offline-and-sync capable?

\- Any documentation or hints on automated testing?

------
airfoil
I can't wait to try this out! The introduction video is incredibly compelling
and it looks like an amazing product. Nice work!

------
jimnotgym
I'm actually hoping that this will allow me to avoid a very grave situation,
which is that we have some workflows which we were going to be pushed into
handling with Sharepoint! I'll take Python any day!

------
toolittle
I only watched the video, so it is a bit early to judge, but I wonder: 1\. Why
put that much effort in explaining it takes only 6 minutes in setting up a web
app? Anyone who has done any serious web app knows how quickly you can set up
a simple app really does not matter much for an app even of moderate size, let
alone big ones? 2\. Why yet another attempt to abstract away everything and
using one language (python) only? What happens when you need to debug nitti-
gritty js/css/html/sql?

~~~
JustSomeNobody
These tools are for simple CRUD apps for people who aren't necessarily strong
developers to begin with but need to put together something anyway. That's why
the demos focus on speed and only ever show the tiniest of applications.

~~~
meredydd
I'd dispute that! There are much larger applications built on Anvil; it's just
hard to build a two-week project for a demo video, and harder still to build a
two-month one ;)

We're starting to post some larger examples (check out our "download portal"
example at
[https://anvil.works/learn#examples](https://anvil.works/learn#examples) \-
I'm also working on a video series building a SaaS app over the course of a
few hours). But the biggest apps are, of course, our customers', and we can't
really publish them as examples.

~~~
methodover
What's the largest, most complex application running on Anvil today?

~~~
meredydd
That I can talk about publicly? Probably
[https://lightningai.com/](https://lightningai.com/).

Their control panel drives companies' entire online marketing operation -
creative, targeting, performance, and more - across multiple advertising
services. That's a whole lotta UI. Their back end drives the advertising
platforms' APIs (eg Google and Facebook), and it all hooks into great big
machine learning operations that run on big beefy servers out in EC2. Not just
a pretty CRUD app, that's for sure.

(Unfortunately, they know what their services are worth, so I can't just point
you at a live demo ;) )

~~~
methodover
So, the UI/front0end of their app was created with and runs on Anvil, but the
backend is entirely under their control? That's interesting. Very interesting.

~~~
meredydd
Their backend is partially inside, partially outside Anvil (eg I believe the
campaign management backend runs in our hosted server modules, but the
compute-intensive machine learning is offloaded). And it's _all_ under their
control - it's their code!

The wonderful thing about the Uplink is that the boundary between "inside
Anvil" and "outside Anvil" can be very fuzzy, because you use the same APIs.
(See my "escape hatch" post above)

------
foolinaround
Can the data be replicated to our own pg database from the built-in database?
Close to real-time?

~~~
meredydd
Absolutely - please ask about our Enterprise plans ;)

That said, even with the standard plans you can plug into your own Postgres
database from server code (just `import psycopg` - it's only Python, after
all). And using the Uplink, you can access Anvil's database from your code
anywhere on the internet, with the same API as Anvil server code.

~~~
johnyseeslately
What you should really do is also sell anvil in a form that makes it possible
to host on premise or in AWS or somewhere else. Even if you charge a 1000$for
that people would pay up. You don’t need to open source everything but you can
sell the compiled c files instead with installations and support guidelines. I
would love to use it but if I cannot control the infrastructure I feel my
hands are tied.

~~~
meredydd
We do exactly that! ([https://anvil.works/blog/anvil-on-
site](https://anvil.works/blog/anvil-on-site))

Installing and running it is typically a single 'docker-compose' command. If
you're interested in this option, please do drop us an email at
sales@anvil.works.

~~~
derstr
But unlike the other plans the pricing is not transparent.. even non
enterprise customers may want this option.

------
dalacv
Is it possible to implement drag and drop functionality in an app? For
example, I want to drag an object into a list of objects as in this example:

[https://forum.bubble.is/uploads/default/optimized/2X/8/856f6...](https://forum.bubble.is/uploads/default/optimized/2X/8/856f62afb8b68a957f40e0b6b59b0f6ff0dd5ca8_1_690x389.gif)

------
typon
What if I want to run my own custom Python server code...say I have some
Cythonized modules or C extensions. Do you guys support this model?

~~~
meredydd
Yes, we do! Check out the Uplink:
[https://anvil.works/blog/uplink](https://anvil.works/blog/uplink)

It's a library you `pip install`, which lets you connect Python code running
anywhere in the world to your Anvil app. Everything you can do from Anvil
server code, you can do from your Python code, wherever it's running. You can
define server functions, HTTP endpoints, access data tables, etc.

We have customers controlling IoT devices with it (like that Raspberry Pi
video). We also have companies driving big machine learning jobs on EC2
servers with tons of GPUs - but with all the UI and housekeeping in Anvil.

~~~
typon
Damn, that's cool. I'm going to give this a try now

------
metalliqaz
It's $50 a dev/month for custom layouts and user logins? What independent
could afford $600 a year?

~~~
rahoulb
What is your hourly rate? Is it less than $50/hour?

~~~
metalliqaz
I fail to see the equivalence. I'm not contracting with Anvil for development
or support. I'm basically buying a tool, in this case a tool that is more
expensive than my hosting costs.

~~~
rahoulb
Well - two areas.

One, if you're using it commercially, it's going to pay for itself pretty
quickly. I rarely do client projects for less than several thousand pounds; I
reckon I could probably churn a lot of them out using this in half the time.

Two if you're not using it commercially, it's still a very low cost; maybe
more than pure hosting but it does a lot more than just hosting.

~~~
mcintyre1994
Honest question, this looks awesome but how would a contractor justify using
it? Would you somehow swallow the risk of them going out of business for
whatever reason and promise a rewrite for clients (is that something you can
get insured for?) or would clients just be okay with the risk? It seems like
you'd have to have already bought enterprise to be able to run this without
them from what I can tell?

~~~
rahoulb
I don’t know yet - I’m asking them a few questions.

I’m always upfront about the tools I use with my clients as the value isn’t in
the tool, it’s in their requirements.

But being able to move away quickly is important to me because I have client
relationships (and production code) that is 9 years old.

(I also don’t consider myself a contractor, more a consultant - a semantic
difference but an important one)

------
leerob
Looks promising but my biggest gripe is the visuals. Maybe in the future, you
could support different themes or skins? It's great to be able to bootstrap a
website quickly, but if this is going to be customer facing the design needs
some love :)

~~~
neil_s
+1. I know that enterprise might be your main focus and internal web apps
don't need a lot of styling love, but just the ability to add Bootstrap or
Semantic UI components would make this beautiful. Of course, hiring a designer
to work on the Anvil website itself as well as the default styling couldn't
hurt.

------
vladsanchez
Can't help to think about Delphi. Good job! ;-)

------
photonios
There's something comparable being developed by a company in Portugal:
[https://www.outsystems.com/](https://www.outsystems.com/)

~~~
tim333
Outsystems has been there a while - I remember looking at it five years ago.
It's kind of expensive - "starting at $2100/month".

~~~
photonios
Oh yes. I know some people who work with them, and they charge quite a bit of
money. They're exactly like Oracle, they'll charge you for every single
feature and these are not small amounts. Not to mention the pain you have to
deal with once you want to do anything more complicated than their platform
provides. I am not aware of anything stories in particular but I can imagine
that migrating away from them is not an easy task.

On the other hand, I gotta give it to them that it does some things well. I
definitely see it solving problems in industries that need custom software but
simply don't have the resources or capital to get a completely custom, from-
scratch system.

------
nmstoker
Saw it demo'd at PyConUK this weekend and it looked v impressive!

~~~
daviesian
Thanks! We had a blast at PyCon. We built over 140 demo apps in four days, and
now we're waiting for our voices to return :)

------
CamTin
Anybody know of any self-hosted alternatives to something like this?

~~~
yorwba
It's an "enterprise feature"
[https://anvil.works/features](https://anvil.works/features)

 _On-site installation_

 _For when you need to keep sensitive data or apps inside your firewall. Anvil
on-site installations allow you to develop and deploy your apps entirely in-
house._

~~~
CamTin
I was thinking more in terms of ameliorating the risk of building a successful
small business on this and them going out of business after gorging themselves
on VC money and having a heart attack.

~~~
tim333
You could probably rewrite your thing in Django or similar in the event of
that. Given that the majority of web apps don't turn into successful small
business it might be a good way to try stuff.

~~~
CamTin
My use case is closer to being a small dev shop doing webapps for other
people. If they go out of business, I would have tons of Django/whatever work
all of a sudden, but lots of pissed off customers when I don't have time to
rewrite them all. Plus I (morally) would need to warn them about this risk
when pitching/selling them, which would probably put a sizeable dent in sales:
"Also, there's a chance that this completely separate company stops supporting
their product and we have to charge you for a complete rewrite of your app".

------
qualitytime
That looks like a fantastic app to be working on.

Also, a great job with the demo video explaining what it is.

The only feedback I could give for now is that the "Free" plan should include
some extra feature from the paid plans (e.g. User Authentication, Custom
Domains, etc.) as it seems way to basic and the first paid plan is quite
expensive.

I may sound like a cheapskate but you'll pull in the right crowd if you tax
other metrics like traffic/bandwidth/cpu/ram/etc.

------
mantracker
Hey, so there is another solution that is pretty popular out there that I'm
sure you already know of: [https://bubble.is/](https://bubble.is/), and it
doesn't seem to require any coding.

Can you explain what are the differences between Anvil and Bubble? I am
currently using Bubble right now to make web apps. What makes Anvil better?

------
submeta
Looks very promising! - Does anybody know what technology stack is being used
here? Django + some JS stack for the front end?

~~~
meredydd
Glad to hear it! Some details about the tech stack:

* Front-end code is compiled from Python to JS with Skulpt ([http://skulpt.org](http://skulpt.org))

* The back-end code runs in a custom Python sandbox. Calls to server functions go over a secure web socket (this lets us do fun things like returning database rows directly from server functions, rather than faffing with REST APIs all day)

* The built-in database (Data Tables) is based on Postgres, using its JSONB and GIN indexing to create a table you can search efficiently on any column. This also means that things like transactions are properly robust.

~~~
osullivj
Interesting. I've been looking for alternatives to React or Angular for some
time. I've enjoyed playing with Elm recently. My preferred back end is Python
Tornado RethinkDB, so browser GUIs in Python is appealing. I looked at
[https://github.com/skulpt](https://github.com/skulpt) and it looks like the
compile to JS step happens on the client side, unlike Elm. What's performance
like?

~~~
meredydd
Strictly speaking, that compilation happens in JS, not necessarily client-side
;)

(Right now, it does run in the browser, but we'll be moving it to the back-end
soon to improve performance. For now it's good enough.)

~~~
garyrob
As far as I can tell, the footprint is around 1MB for the combined skulpt-
min.js and sculpt-stdlib.js (not sure why the latter apparently isn't
minified). That's pretty huge and makes for a large barrier against using
Anvil for a public-facing app. Moving the compilation to the back-end would
eliminate the footprint problem -- or would you still have the stdlib running
in the client? Any further comments on footprint issues? As it is, we're
talking about about two orders of magnitude bigger footprint than some
javascript options.

~~~
garyrob
Also, can you give any estimate at al as to when you'll have client-side
compilation working?

------
gigatexal
the editor is really nice, it's ability to sense what I am about to type is
borderline magic. It'd be cool if that were open sourced, but I understand if
few to none of this is going to be since they're trying to bootstrap a
business.

~~~
meredydd
Thank you! When the PyCon UK lightning talks go up on YouTube, you'll be able
to see my talk from last night about how we built that autocompleter.

Bottom line: Traditional web dev has starved us of decent tool support. Give
us even a really basic autocompleter (especially one that knows about what's
happening in the server and database) and it feels like borderline magic :)

------
gigatexal
I have been looking for this for a while now! Going to tinker with it.

------
pryelluw
Who owns the source code?

------
voidmain0001
I searched the documentation URL with Google for the word "tenant" and it
returned no results. Does this mean that Anvil does not support multitenancy,
for SaaS sites?

~~~
meredydd
Are you looking for this? [https://anvil.works/blog/multi-user-
apps](https://anvil.works/blog/multi-user-apps)

Multi-tenant/single-DB is a pretty common and straightforward pattern with a
lot of support in Anvil (eg restricted views, as described in the video).

I'm also currently working on a multi-part video series, showing the creation
of a SaaS product, from scratch to monetisation. Sign up for our mailing list,
and watch this space :D

~~~
voidmain0001
Much obliged. I will look to see if this can be extended to provide logical
groups of users for the same resource.

~~~
meredydd
Yes, it can! Check out the "Secure download portal" example app at
[https://anvil.works/learn#examples](https://anvil.works/learn#examples) \-
it's got group-based access control.

(Nothing magic - it's just a database. Even user records are just table rows,
so you can link or categorise them however you like!)

------
shurane
Sounds a lot like what
[http://www.rubymotion.com/](http://www.rubymotion.com/) was doing for iOS
apps.

------
acmecorps
This is awesome! But, I wish there's one similar for Ruby - as I'm not sure if
I want to learn Python now that Ruby is in my toolchain.

------
mixmastamyk
Awesome work. Skulpt says it currently handles Python 2, and not the full 2.7.
How long until that is fixed?

~~~
meredydd
Compiling Python to Javascript is always going to be incomplete. (For example,
it doesn't make much sense to open() a file from the browser!)

However, we run full CPython (2.7 and 3.6) on the server, so any language
feature you like is just a function call away :)

~~~
mixmastamyk
Ok, so I can run 3.6 code on the server and return the output?

As Py2 is EOL in about two years it feels risky for anything to be built on
it.

~~~
meredydd
That's exactly what you can do! If you open up a Server Module, you'll see a
drop-down in the top-right. That will allow you to select a Python 3.6
runtime.

The client-side code is Python 2 only for now, but we're already upgrading our
Python-to-Javascript compiler to include Python 3 syntax.

~~~
techdragon
Are you looking at Transcrypt
[https://www.transcrypt.org/](https://www.transcrypt.org/) as a replacement
for Skulpt at all? Because its here and it already works great for Python 3.6,
it just needs more usage to develop workflows and examples around it and tools
like Anvil are a great way to get started with any technology.

------
Walkman
This looks interesting but I would never lock in myself to a proprietary
platform completely.

------
sandGorgon
Please do jupyter -> webapp. that's a ready market for you.

~~~
meredydd
Funnily enough, we had someone build a web-app out of his Jupyter notebook
just two days ago. And it only took him a couple of hours:

[https://twitter.com/anvil_works/status/924352019258920960](https://twitter.com/anvil_works/status/924352019258920960)

He just copied and pasted his code from the notebook into an Anvil server
function, and it ran first time! It's all just Python, at the end of the day.

------
cloudwizard
I would pay double if the app produced was a progressive web app.

------
neonbat
i met these guys at pycon. they are very responsive to feedback.

~~~
meredydd
Hello! I don't recognise your username, but might recognise your face. Hope
you enjoyed the con :)

------
chaitanyana
This is Awesome,been trying to build something like this

------
msl09
Doesn't seem to work with firefox :(

~~~
meredydd
(founder here)

Urk? Firefox is an officially supported platform for the editor. What didn't
work, and what version of FF are you using?

Once you've written an app, it should work in everything since IE11.

~~~
daviesian
(another founder here!)

We've now been in touch by email about this bug, and we'll make sure a fix is
pushed ASAP!

~~~
daviesian
Update: Turned out to be an old version of Firefox. Upgrading made the error
go away.

------
hackerews
Is this like R's Shiny for Python?

------
hasenj
Am I the only one who things this is a really really bad idea?

The world does not need more interpreted languages on the backend.

Visual UI layout is cool for beginners but almost useless for serious
projects. Plus if you're a beginner (or a non-programmer) maybe an existing
CMS is better? e.g. WordPress.

If a project started with this tool was to ever evolve and get big, I can't
imagine that maintaining it will be anything but a nightmare.

~~~
gpsx
I am sure you are not the only one who thinks it is a bad idea. But I disagree
with you. I think the future of programming (or I should say, one branch of
it) is making programming easier, and letting the computer do more work. I
definitely think working in this direction is a good idea.

Regarding CMS, I view those as high level languages. And in that regard I
think we can improve on them a lot.

~~~
hasenj
> I think the future of programming (or I should say, one branch of it) is
> making programming easier, and letting the computer do more work.

I think this is already what is happening. Computers now are _orders_ of
magnitude faster than they were 15 years ago, and yet fundamentally nothing
really got better. We just have more people producing lesser quality programs.
While producing something is easier than before, the new things are not
necessarily of good value, because a lot of the tools that enable this are
layers upon layers of abstractions and virtualization (e.g. Electron).

I'm not sure that this is any good.

And fundamentally this is not that different from VB6, for example.

~~~
derstr
There was a time when typing a document in your computer meant you have to
know an macro language (remember wordstar?) ... the current state of
programming is such and a big barrier for non programmers. We need to make it
easy just like MS word made it easy to type complex documents in the computer.

~~~
hasenj
Writing documents is a use case for the general public.

Writing code is not the same. In general, programming tools _are_ getting
better (text editors, debuggers, IDEs, etc).

The only barrier to non-programmers is learning how to program.

It's the same with writing. The tools _are_ available. But you still need to
know how to write. I mean how to put words together in a way that people would
want to read.

------
visarga
Coudn't find the download link inside the members area. How do you install it?

------
astrapat
Anvil looks like the Wix of python sites.

personally, I'm going to stick to flask and django.

this is nice and all... but you still have to learn python to get it going. My
preference is to learn Python/Flask via books, tutorials, and as part of a big
community (websites/forums, IRC, etc).

But... I really don't see the benefit of this, even after watching some
videos.

the drag and drop stuff? that's just html and css (child's play)

python? that's still python.

I'd much rather just open a blank Ubuntu 16.04 server on DigitalOcean and pull
my repository from github. I.e. work like a real developer :)

I wouldn't mess with Anvil, personally. I'd prefer to do code by hand, with a
framework that has been around for a while.

~~~
sametmax
I love Django and flask. I'm an expert at both. I train people at both.

But come on. 6 minutes with DB, responsive design, registration (including
social auth or AD) and online deployment ? I can't top that. No even close.
Even with boostrap and pythonanywhere. And I know the freaking API by heart
while most people are just trying to figure out what's going on.

This stuff is amazing for somebody who just want to fiddle with a CRUD app.
The ratio investment / return is crazy.

~~~
kolanos
And the thing that a lot here are missing is the integration aspect. If you
have team members who aren't coders, they can still participate with the drag-
and-drop UI builder. Anvil is definitely on the right track here, I'm not a
fan of drag-and-drop UI builders, but can definitely see how useful it would
be for a product person on my team being able to jump in and make changes to
the UI without needing to tap me on the shoulder. That being said, I'd prefer
a code-based representation of the UI and didn't see anything like that --
would be interested in knowing if I can build UIs via code alone.

Wish Django had a mature integrated client-side UI toolkit like this, I'm
amazed given how advanced django.contrib.admin is that the Django team hasn't
already generalized much of the admin components. If anyone is aware of
something like this already let me know, with React eating the world it looks
like DRF + React is the only way to go these days..

~~~
meredydd
_> would be interested in knowing if I can build UIs via code alone_

Yes you can! Check out all the code examples in:
[https://anvil.works/doc#forms](https://anvil.works/doc#forms)

