Please describe your proposed solution.
Getting started with writing smart contracts on Cardano with Plutus is hard because of the dependencies baggage. It can easily take days for developers to have a working and productive system setup for Plutus smart contract development. It does not have to be that way. Look how easy it is to get started on Ethereum.
There are several awesome people, projects and proposals on Cardano trying to address this problem by offering easy infrastructure setup for Cardano node, vscode like editors, and tools. This is great to see. However, we believe we can do better. How about no setup at all? All you need is a browser and a good internet. How does that sound? As a developer, if you can start writing smart contracts directly on the browser, compile the contract by clicking a button and deploy/interact with your contract by directly interacting with your favourite wallet. Wouldn't that be awesome? We believe so.
KuberIDE is our solution to the problem. It is a fully browser based IDE for a complete Plutus smart contracts development experience. No setup required. Just writing Plutus contracts, compile them on demand with a button and create transactions, sign them, interact with your favorite wallet, all within the browser. It may sound like selling a dream, it is not. In fact, KuberIDE is already live and you can start using it for free here: <https://kuberide.com>
This proposal is here to ask for your support so we can develop KuberIDE v2.0 with the features that further enhances the developer experience on Cardano. Here is a short summary.
- Faster compiler. Right now it take a few seconds (2-5 seconds). We can reduce it further.
- Support for writing and running contract tests, showing coverage.
- More examples and documentation
- Better syntax highlighting and navigation
- Support git repo integration for code management
- Common issues and vulnerabilities detection
- Audit checklist for your contract about what you need to prepare to submit for auditing your contract code.
Here is how the IDE looks like:
How does your proposed solution address the challenge and what benefits will this bring to the Cardano ecosystem?
The proposed solution lies under 'Plutus and IELE tools & software' proposal type based on the challenge brief. The proposal is essentially an IDE for Plutus smart contract development that improve the lives of smart contract developers releasing them from the hassle of maintaining the infrastructure themselves.
In the last two years, we have trained several developers on Plutus/Haskell and we know the pain. We know first hand, getting somebody trained and make them productive on Cardano smart contract development is expensive. Having done smart contracts development on EVM chains ourselves before, we can feel how big the gap is. So, it was in our interest to make the process of training efficient and getting developers productive as quickly as possible. Exactly for that, we have made a significat personal investment to get KuberIDE to what it is now. With KuberIDE, it has become so much productive to get a developer onboard. We use the IDE for our own contract development and testing and constantly improve with perf improvement and bug fixes.
We believe so many Cardano developers can benefit from KuberIDE. Especially new developers just trying to join the journey of developing smart contracts on Cardano. KuberIDE hides the complexity of the infrastructure and lets developers focus on what is important - contract code.
We have participated and helped organize Hackathons where we have majority of the participants struggle at the first step of getting the environment setup. At the end they get a feeling of not-so-productive hackathons. That is sad. Imagine now organizing Hackathon with KuberIDE. The participants can get directly into writing smart contracts, compile the code with a button and deploy their contracts by interacting with the wallet. They will get a sense of achievement at the end of the session. Wouldn't that improve the Cardano developers experience?
Quantifying the impact, we would consider KuberIDE a success if we can improve the developer experience of 100 developers in a year, realistically speaking.
How do you intend to measure the success of your project?
The measure of the success is adoption of the IDE by the broader developer community on Cardano. Knowing how many developers are building on Cardano using KuberIDE on a regular basis would be main metric to measure.
Here is a list of metrics we intend to measure.
- Number of Plutus developers using the project: Daily, Monthly, All Time
- Number of new developers onboarded every month
- Developer surveys
- Number of feature reports from developers
- Number of bug reports from developers and sentry (automated)
Please describe your plans to share the outputs and results of your project?
Our proposal here is to deliver KuberIDE 2.0 with the features listed in the proposal incrementally, one feature at a time. Therefore, with each feature complete, we plan to do a minor release and share with the community. Then the broader community can be the judge of the development and the delivery. This will be reflected by the results.
Regarding results, we plan to publish the above mentioned metrics on our website (<https://kuberide.com>) so it is realtime and visible to anybody at any time.
For the developer surveys which are qualitative, we'll share the results on a blog and hopefully on Catalyst Town Hall if given a chance.