TL;DR: Building blockchain networks is a lot more work than just writing a contract. FireFly has all a growing web3 application needs to become a big strong network.
If you're building on existing Layer 1, like Etheruem or EOS, then you don't have to worry about network availability. You do have to worry about network costs and performance. You share this blockchain with the whole world, so there are a lot of other people with opinions that will shape this network, and you'll be competing with the whole world for the limited resources it has.
If you're making your own blockchain (Layer 1), then you DO have to worry about network availability, but you do don't have to worry (as much) about network costs and performance.
In general, I don't like the idea of building on existing L1s. I may try this later with EOS, but for now I will build my own blockchain and just bridge to other L1s if that ever becomes wanted.
I also do not have my own node software or node network running already. In addition to finding users for the network, I also need to make it easy enough for them to install and run a node to support it.
FireFly has all of the things I listed above. It gives me an easy platform to:
- Deploy a blockchain network (Ethereum, Fabric, or Corda)
- Wrap contract calls in an easy-to-use WebAPI
- Deploy an IPFS node
FireFly generates a Docker compose file that spins up nodes with all of this functionality. This lets me focus on developing now, knowing that I just need to package / convert the compose file for distribution later.
Also, I could just use Kaleido's commercial offering to deploy the same type of node on their infrastructure. This would allow me to set up my own infrastructure quickly, and Kaleido also has an easy interface for connecting multiple organizations together in the same network.
So, that's why FireFly.