dApp simple hello world tutorial

Hey, I’m opening this new discussion after @DinoDude feedback on dApps development process and how local docker containers sync’ed with testnet (or mainnet) can be useful in this process.

I’m not familiar at all with the dapp development process. If you can please share with me a basic step by step tutorial then I will try to run it locally and plug it to Kubernetes helm charts.

I guess since I got called out I will start with the super high level framing.
Right then, so what we have pictured here is a user interacting with Cardano through a “hello world” dapp.

The stuff in blue is assumed to be maintained by a 3rd party. This includes the selected wallet, the wallet backend, the Cardano network, etc. Mostly out of scope for how to ease deployment for dapp development as you just need to choose which wallets you can/will integrate with.

The stuff in green is assumed to be maintained by the dapp developer and also out of scope for this discussion as it can be literally anything and not related to Cardano really. As a reference I am using C++, Python, etc to generate web assembly builds of my edutainment game which will get deployed from GitHub through Cloudflare sometime later this year hopefully.

That leaves the million ADA question of “What do dapp developers use for a backend, SDK, API, etc to integrate with Cardano?” in orange. The problem is there is not really any official SDK so the solutions tend to either rely on a third party to provide one or deploy and manage all the Cardano ecosystem dependencies and make one for yourself.

In the case of Nami they are using blockfrost as far as I know. In other cases people deploy their own nodes and use CLI from a private server. In my case I am debating a hybrid approach because I started my project before blockfrost existed and assumed I would need to deploy my own Cardano nodes, cardano-db-sync, etc on my roadmap years ago. It’s less than ideal and partially why my self funded hobby project has not launched yet …

@regel has been experimenting with helm charts to deploy release of cardano nodes into a kubernetes cluster. They are now debating the next logical step to expand upon the capabilities.

So now that you are all caught up. Here enters the possibility of “infrastructure as a service” from the previous topic. What if you could spin up all the Cardano things you want on your cloud provider of preference? What container orchestration and configuration management would you use? What happens if you want to move all this from Azure to AWS or GCP?