I am a one man show, writing software for internal use for my company. In some periods I had one or two other developers helping me or working on their own apps, but I’m mostly flying solo.
My first priority is my own productivity.
I have discarded all the frameworks that don’t come with an automatic deployment because I don’t want to take care of the deployment, db administration, certificates, security, backup, user management, etc.
I have discarded all the no/little-code solutions (very too common in small/medium size businesses) because, well, you don’t go too far without code.
Anvil is just perfect for me. There are some limitations, but they don’t bother me.
Anvil comes with some big limitations. For example Anvil apps are single page app, so if you need a searcheable site, you are out of luck.
The database that comes with Anvil has serious limitations, but (1) the accelerated tables just started their beta, (2) which makes me think that some more goodies are baking and will show up soon in that front, (3) with a dedicated plan (like mine) you can use SQL, and (4) you can just not use it and use any database you want.
I have 100+ of apps, all pointing to the same subdomain app-name.app.example.com
, all sharing the same users table and the same database. Some are simple http endpoints, some have more complex UIs, some are for internal use in our company, some are open to the outside world.
Anvil is perfect for me. I do miss more db flexibility, a dashboard to have an idea of what’s going on on my server, a testing environment, PyCharm also for client code (I use it for server code and some client refactoring and some form fine tuning) and a few other things, but, even with its limitations, as far as I know, Anvil is the best environment.
I also create plugins for CAM, CAD and other software, and I created many desktop tools in .net.
Unlike @nathanguyette, when I need to work with C# on those tools I get allergic reactions. I just can’t stand strong typing. I love the flexibility of Python: PyCharm (not Anvil) recognizes the types 70% of the times, the other 30% you decide whether to help it with some type hinting or just be productive. (I created a few tools in C# and ported them to Python, they shrunk in size and improved in readibility. I created a few tools in Python and ported them to C# and it was a nightmare).
I still remember that day when I found out that strong typing was actually helping. It was that one lonely day. It did help me preventing an error and saved me a few minutes. It never happened again. What happened again and again, every minute of every day, it was me wasting time taking care of typing when there was absolutely no need. In C# you spend 10 hours on the logic and 50 on the typing, in Python you spend 3 hours on the same logic and 5 minutes on typing.
Did I say I can’t stand strong typing? I know, I’m going against the flow, here around y’all pros, but I just can’t stand it.
I would rather quit than switch from Python to a strongly typed language or from Anvil to any other framweork.