Background: Architected and developed by 3 senior engineers working in a FAANG company.
We wanted to share some insights into our tech stack, which we designed meticulously, keeping in mind the needs of indie product developers like ourselves. Our goal was to create a highly efficient, scalable and easy-to-maintain stack.
Here's a quick overview:
Let's dive deeper into the reasons behind choosing each technology:
1. .NET Core Backend with Domain Driven Design (DDD)
As indie product developers, we need a powerful and versatile backend framework. .NET Core is an open-source, cross-platform framework developed by Microsoft, which allows us to build high-performance, scalable applications.
Moreover, Domain Driven Design (DDD) enables us to focus on the core business requirements and model our software accordingly. This helps us in maintaining a clean and modular codebase. With DDD, we can easily adapt to evolving requirements, making it an excellent fit for indie developers who often need to pivot or iterate on their products quickly. This topic is so big that it can have it's own post.
2. React Frontend with MaterialUI
React has proven to be an incredibly popular and powerful choice for frontend development. Its component-based architecture, excellent performance, and wide ecosystem of libraries make it an ideal choice for indie developers. We can create reusable components, which streamlines our development process and saves us valuable time.
MaterialUI is a React UI framework that follows Google's Material Design guidelines. It offers a comprehensive set of pre-built components and styling options, ensuring a consistent look and feel across our application.
3. NoSQL Database on CosmosDB
As indie developers, we need a database that can scale with our projects as they grow. CosmosDB, Microsoft's NoSQL database, is a perfect fit for our needs. It offers seamless scalability, low-latency access to data, and support for various data models, including document, key-value, graph, and column-family.
By using a NoSQL database, we can store data in a flexible format, which makes it easier to work with and modify as our application evolves. This flexibility is essential for us, who often need to adapt their data models to changing requirements and make data migrations super easy.
4. Hosting on Microsoft Azure
Moreover, Azure's pay-as-you-go pricing model is budget-friendly for us, ensuring that we only pay for the resources we use. This enables us to keep our costs low while still benefiting from a powerful and reliable cloud platform. For example, we have set automatic schedules to shutdown certain dev environments when there is no work being performed -- and the static web hosting has a free plan which is perfect.
We hope our insights into our tech stack choices have been helpful to you. We believe that this combination of technologies provides indie developers with the tools they need to create successful products efficiently and effectively.
Feel free to share your thoughts and experiences with similar tech stacks or any questions you may have about ours.
We also offer an early access program that gives all features on the platform for free forever to accepted users. Apply here to try FusedHR for free and transform the way you manage your projects.