That being said, a good stack that you know well can affect how quickly you build and how quickly you can adapt the product to changing market conditions.
So here's what we use:
- ASP.NET CORE( - Primarily ASP.NET Razor Pages for the web app. ASP.NET MVC Controllers for the internal and external APIs we support.
- C# - We try to stay on the latest version. The recent pattern matching improvements alone make our code so much cleaner.
- [HTMX](https://htmx.org/)\* - for front-end. We're not at the point where we feel we need a heavyweight front-end framework like React. We like the 37signals approach of shipping "HTML over the wire". We're also big on Web Components. That's a result of our [GitHub heritage](https://github.blog/2021-05-04-how-we-use-web-components-at-...).
- TypeScript - for our front-end JS. This is a recent addition. Most of our JS is still ES6.
- Azure Database for PostgreSql - PostgreSql is rock solid and great for storing all kinds of data.
- Azure Functions - we support three types of custom code skills that customers can use to enhance and customize the bot : JavaScript, C#, and Python. We run these in Azure Functions.
- App Insights - We use this for logging.
- Azure Managed Grafana - We have a nice Grafana dashboard based off our App Insights logs that helps us get a birds-eye view of how everything is doing.
- Azure App Configuration - For feature flags.
As you can see, it's pretty heavily Microsoft based. Part of that is my background. The other part is we got a lot of Azure Credits when we joined the [Microsoft for Startups](https://www.microsoft.com/en-us/startups?rtc=1) program. So it made fiscal sense for us to stick with Azure.
I do like that we can manage everything in a single portal. But some of these tools are not best-in-breed as we will be looking at other options down the road.