Open monikaxh opened 6 months ago
This looks like it would be super useful! It has always been annoying to have to go back and forth between the docs and playground to test stuff out so I love that everything would be integrated. Definitely would bring us up to speed with where other blockchains are in regards to web tools. I'm happy to collaborate on educational tools and tutorials if this gets approved!
Thank you for your support @joshuahannan It's great to hear that you find it useful and that it addresses the inconvenience of switching between docs and the playground. Your offer to collaborate on educational tools and tutorials is much appreciated and would be incredibly valuable. Hope to talk to you soon 🚀
We haven't received any feedback yet on our grant proposal. We would appreciate an update to understand whether it is being considered or if there are any next steps we should take. Thank you
@Aliserag has been on vacation I believe, so it has been a little slow getting grants through. Sorry about the delay! I'm still supportive of it! We'll try to get a more concrete response back to you once Ali gets back.
Thank you for quick response! Looking forward to hear from @Aliserag
We’re happy to share, that our development of a playground prototype is already in progress. Our current focus is on porting the emulator to a web environment. 👀 https://github.com/onflowser/flow-wasm
Flowser Playground
Grant category
Description
Flowser is the ultimate desktop tool for building on Flow. In the previous months, we’ve invested time to take it a step further and build a web version that brings most of the features of the original desktop app to the web to make it even more accessible / easier to use. But this made us realize we are unleashing something powerful related Discord discussion.
Our web tool already works with all existing networks (mainnet, testnet, previewnet, emulator), but it still requires users to install the emulator (or Flow CLI) and run it on their local machine before using the web app. This can be pretty frustrating for new Flow developers (imagine if you had to install JVM before you could play around with Java in a tool like replit.com + it makes it harder to create consistent dev environments (the classic “works on my machine” problem), potentially restricting shareability and collaboration.
We imagine the next version will embed the emulator within the browser itself, making Flowser truly a battery-included tool you can just open in the browser and start hacking. This made us see an overlap with the existing Flow Playground.
We’ve observed in the community that Playground still seems to be a very useful tool for any new or existing Flow developer. We believe the reason is, that it doesn’t require anything to set up. You open a website and you can start hacking.
But we see limitations to it. It doesn’t support different networks and it isolates you to just that Playground bubble. When you want to shift to local development the process is not clear and the tools are all different, and you need to relearn how to use them. If you want to just test something against the testnet it’s not possible to do so. It also doesn’t provide you with an insight as to what is happening on the network (what blocks are made, what transactions are executed, accounts created), something that is a core value of Flowser.
We want to propose making Flowser the new playground. We have good reasons to believe that this would be beneficial to the whole Flow ecosystem:
We see Flowser become the one tool that you start with to learn Cadence and the one tool you use to go through all the phases from learning to production deployment. This would bring big advantages of navigating the user through this process in a very seamless experience. We believe this will achieve a higher conversion of new developers, staying and loving Flow. Total funding proposed:
Milestones
Milestone 1 - Port Flow emulator to browser-based environment
To stop relying on a backend service for running the emulator blockchain, we’d need to port the emulator code to run in a browser-based environment and compile it to WebAssembly.
Some of the work that’s required:
Milestone 2 - Feature parity with existing playground + extensions
Features to be implemented to achieve parity:
Extensions:
Milestone 3 - Education
Lots of Flow educational resources use the current playground to let the user follow through and try Flow development without leaving the browser. But the user experience is still limited - tutorials usually provide an external link to the playground project and then attach screenshots to explain which steps to take.
We imagine this experience could be improved by letting the educational resource creators embed the Playground in their content. This would let the user tinker with the playground without leaving the page.
Additionally, we could expose an API to allow controlling the playground within the embedding page (e.g. navigating between UI views, updating code in the editor,..). This would allow creators to bypass some steps (e.g. screenshots of the playground, code to copy to the playground editor, playground usage instructions…), and focus on their educational content while improving the experience for the user.
Goals of this milestone:
Milestone 4 - Adoption
Various Flow resources, documentation, and tools depend on the current Flow playground (or other similar tool). Those would need to be updated to use the new playground and consume the newly added features.
We plan to work with the Flow community to update the following resources/tools:
On top of that, we also believe the new playground could be a great entry point to Flow for new developers, so we’ll work on onboarding new developers and encourage them to build on Flow using Cadence.
Maintenance & marketing
There are lots of changes coming to other Flow tooling that Flowser depends on like Flix, Flow CLI, Cadence,...
Particularly, we are planning to:
Total suggested FLOW amount: 80,000
Proposition Summary
The web version of Flowser will be extended to support the emulator network within the browser out of the box. Furthermore, Flowser will be extended to support all the existing Flow Playground features and, in the end, be able to replace the playground itself. Although our goal is not just replacing the Flow playground, but also enhancing it with new features, lowering the costs of running a backend, etc… We believe all that will help onboard new developers and help improve existing learning resources.
We believe Flowser's mission is to make developers fall in love with Cadence and Flow. But like with any true love, it needs to start with romance and we know how to make your interaction with the blockchain feel great and easy.
Team
Core team
We are delighted to announce we will be collaborating with @bluesign to port some of the Go tooling to a browser-based environment.