Skip to main content

Sidao Tech Stack

Last updated on 08/31/2022.

There are three choices of tech stacks for Sidao development. It is a strategic decision that cannot be changed for a few years.

C# and MAUI

At the beginning (before August 2022), I planned to use C# as the full-stack programming language for two simple and very valuable reasons:

  • C# is probably the best and mature OO programming language.
  • MAUI supports cross-platform development.

It might be a good choice for business application development. For crypto or system applications, C# has two drawbacks: lacking of libraries and mediocre performance. The lacking of libraries makes it an impossible choice.

TypeScript and Go

In early August 2022, when the development is centered around Matrix protocol, the choice became easier: Matrix has a Go implementation of server side and two React Native clients. It became nature to use React Native for the client and Go for the backend. Additionally Gun protocol is fully based on JavaScript.

However, during the development of Gun client, it became clear that using TypeScript and React Native is a big challenge: using TypeScript in React Native is a big mess, NPM packages is another big mess, Expo and React Native code is unpleasant to read and write. One can easily loses many days dealing with tricky things in React Native ecosystem.

Flutter and Rust

After briefly reviewing the Flutter development, it became clear that it is easier and cleaner than React Native. It is more popular than React Native since 2021. Why don't give it a try?

On the backend, and possibly for client-side library, Rust seems a good choices for two reasons:

  • it is the most popular language for system or crypto development.
  • it is much faster than Go and C#.

Dark was unveiled in 10/2011. Flutter was initially released in 05/2017. Rust was first appeared in 07/2010. All three are mature enough for production.