Why We Chose Blazor for Our Startup
Well after a few months of work during these crazy times in our world we are launching our startup in a private beta. I am just to happy to be a part of The Postage and truly believe that with the help of our beta testers we can bring something really needed and great to the world. Planning for our death is not something that any of us enjoy doing but it is important and incredibly helpful for the ones we leave behind. That aside (which I could talk about for hours), this article is about blazor because well I'm the CTO and I thought you would like to know why we chose to go with Microsoft's blazor technology for our new platform.
So before I get too into that if you aren't familiar with Blazor I highly recommend you take a quick jump over to their site. To summarize it basically is Microsoft's answer to a SPA (single page application). They have been working on it a while but released the first official versions last year and have been following that up with more releases this year. They have a client (web assembly) version and a server-side version. Based on when we started, the only official release was the server-side version and that is exactly what we used to build our new platform. Here are a few reasons why we chose to use blazor:
- Blazor allowed us to staff leaner. Since blazor allows you to code almost everything in c# we were able to leverage our back end experience (which is my strength) to create the whole application (front and back). We did use some great contractors for some design and CSS expertise that we could just slot right into our web app. If you are in a startup you can appreciate that this is a HUGE advantage.
- Blazor has server-side advantages. You can do things on the server that you can't do in an angular app without node and in the case of blazor it's just even more seamless. You can use sessions easily to persist information versus local storage and the level of control you have over the c# services you can inject into every single component is incredibly powerful.
- Blazor leverages .NET core 3.1. We really have enjoyed the advantages that come with entity framework for core (to be fair we had our share of struggles with it too). In general though, the level of efficiency you can reach is pretty impressive. If you haven't fully embraced core, I would also recommend you move in that direction as soon as you can as well. Did I mention the ability to inject your services into your components? Yeah, that's just HUGE.
As blazor evolves and the web assembly version becomes more prevalent than the server-side implementation we went with, the transition will be easy when we choose to make that jump. In addition we plan to use Xamarin for our mobile app (potentially leveraging some blazor bindings not sure yet). The beauty behind that is it is even more c#. Again allowing us to stay lean and have folks that can easily cross teams to work on all aspects of the platform.
Embracing newer technologies does not come without a down-side. In many cases you are blazing new trails and have to solve things that aren't well known yet. If any of the rest of you are working on blazor apps and want to bat around some ideas please feel free to reach out and start a discussion. After several years of using angular almost exclusively I can really appreciate the value of a strong development community (which angular most certainly does have). I have no doubt as more of us release blazor applications this technology will also get better and better. For now I am incredibly happy with our decision to use blazor and strongly encourage others to take a dive into this stack.