Back to all articles

Exploring the architecture of the real dApp application

Recently we have a pretty interesting discussion in Starfish Mission coworking space about what do you need for the blockchain based business launching.

First of all, blockchain does solve a lot of trust issues and in some cases works much better than traditional payment solutions, but it also brings new problems and new technical challenges. And keep in mind - your old problems do not go anyway.

Blockchain brings us new business opportunities, can help to reduce operating costs and to avoid some regulation limitations. But at the same moment, it puts a lot of tech complexity. Below I provide a general list of the all key directions we took in order to build the blockchain based Curio Cards project.

Private network

If you consider your project as a long term one, first of all, you should think about:

  • Testing. How to test your solution properly?
  • Speed. How you can create MPV fast enough, but still make it reliable?
  • Abstraction. How to work in a comfortable way, without relying on any other solutions?

By using your own network you will get:

  • Free ethereum, enough for making 10-20 tests daily.
  • Doing tests regularly helps you to keep your project bugs-free and open to code refactoring.
  • While test and Robsten networks may have some outrages your own private network is pretty stable. You don’t have any problem with getting new ethereums because you can mine them pretty quickly.

Admin panel

Administration panel is the main hub that connects all pieces together. Token creation process

The primary idea of the admin panel is to give an ability to the non-technical people to interact with ethereum network (issue new card-contracts) without knowledge how it actually works.

Admin panel does not interact with ethereum network by itself but stores data in the Postgres. And Postgres triggers Golang which deploys the contract to the ethereum network.


Frontend is another part of the project which consumes a lot of time and usually requires additional efforts. Token purchase process

We decide to use Vue.js because it is simple to learn, straight forward and has everything for convenient frontend development.


In order to be scalable and flexible we decide to use microservice architecture.

backend services

List of the services which we will discuss in the future:

  • Admin panel - python
  • Content management system - python
  • Contract deployer - golang
  • Ethereum scanner - golang

Solidity Contract

Solidity is not so bad and it’s not so hard to use it in the production.


And definitely, we will discuss Curio Cards contract in the future and will try to build our own.

Meetup summary

You are welcome to use our private network, channel 6868, name curio.
Leave a comment if you need ethereum in our private network, or you can easily mine it.

Stay connected!