Hello, anvil community!
I’ve been playing around with the anvil framework for the past 4 weeks and launched a few blockchain-related projects. Wanted to share one of them and describe my experience using anvil in general.
AlgoWorldExplorer
The project is called AlgoWorldExplorer and is available at https://algoworldexplorer.io.
Essentially it’s a community-backed project that I build for free and for fun for an AlgoWorld telegram community, it allows exploring various statistics and also performs trades (smart contracts support will be added sometime soon). All trades and information about NFT cards (there are 1500 NFTs in total representing all countries around the world) are retrieved from Algorand Blockchain using various API services and browser extensions.
I wanted to utilize the platform to the full extent so I switched to a paid plan for it. The platform is utilizing almost all main features of the anvil, data grids, background tasks, scheduled tasks, custom javascript snippets, etc. All in all, it works great so far for an audience of ~400 users, but I am yet to decide how to proceed with the platform if there will be a significant increase in the active user base.
Using anvil
I think where anvil shines the most is rapid prototyping. I really can’t think of any other competitor PaaS with build in drag in drop builder in pure python ( i guess you could Django but it’s not a platform). The ability to use the build-in anvil abstractions that transpile and wrap external javascript code is also extremely handy, at the end of the day you can’t get away without javascript in web development.
What I think anvil needs is more focus on ease of customizability. I am aware that one can essentially wrap any HTML and make any custom components, but having the ability to do so the same way one can easily drag a card on the builder and modify parameters and various styling settings is a huge step up. This also implies having a richer set of starter templates, support for easily enabling dark-mode, more optimizations for mobile device screens ( for instance, I believe by default, simple things like text-wrapping on labels is not available and one has to tweak some things in CSS assets and define a role. )
Lastly, some more detailed guidance and best practices describing testing code written on an anvil could be of great value. Having support for WebSockets out of the box could have been a great feature to tie in together with build-in data tables as well.
Closing thoughts
In general, for the use case that I had, I think anvil is a perfect platform with a great community active on this forum and a team itself! I do hope though that the platform will continue improving and keeping up with the latest trends in web dev, will have more UI components and templates, and more simplified options on customizing the UI in the future. Perhaps going full open source could be a key to driving the development progress and improvement of the platform
Sorry for a large post but I just wanted to share my feedback based on my experience of using the platform very often for the past several weeks. It also means that there are probably things mentioned above that are indeed covered and are available in some shape or form and I am not aware of it yet
If you would like to learn more about AlgoWorldExplorer or the NFTs being traded, you can find links to the official website and our community on the About page on the explorer web app