When you're building a software business, it's best to spend your time and money on the things that actually differentiate your app from others. There are a lot of things you could build yourself like your payroll system or server farm, but these are things your users will never see. It makes no difference in the experience and value you offer your customers. So, since you're not going to be paid more for building these from scratch, you should reach for the cheapest/easiest option available to you.
For payroll, you can just use Quickbooks or some other paid software. For servers, you can use AWS or even easier options like Wordpress hosting or Vercel depending on your needs.
Typically, as your company grows, you need to hire dedicated people for some of these functions. AWS is much easier than setting up your own servers, but it still requires engineers who understand how to manage your uptime and performance.
For dApps, you don't have to worry about the server, the database, the API, etc. It's similar to building a "serverless" app if you're familiar with that. There's still servers handling your dApp's traffic, but they're managed by other people.
The main differences between decentralized apps and serverless apps are:
- Storage is built in for dApps. With serverless you still need to set up a persistent database.
- The developer doesn't pay for server time (by default). Users pay the blockchain fees.
- Calls to your smart contract are run on every computer in the network, not just one.
Each of these is great for the developer. There are fewer things you need to set up and maintain to run a dApp compared with traditional options. The single point of failure is minimized and it even costs you less as your user's absorb the cost.
The problem is that the default makes the user experience worse. In order for dApps to overtake traditional apps, we need better ways to shield end users from the costs incurred by using the dApp.
P.S. Koinos handles this by allowing the dApp (or anyone else) to pay for other people's network usage without sacrificing decentralization. Users don't need to buy tokens before using your dApp. The problem then is that the developer/business needs to come up with tokens to cover dApp demand. We can make this even easier. More on this soon.