The choice of a relevant tech stack is particularly challenging for us, Whenever we want to build a product from scratch, the option is always to go with the easiest solution, however, easy is far more enough, the main aim of a developer is not just to build a professionally, functioning software, but something more than that — maintainability, scalability and security of the app, the levels of which would be determined as per the requirements.
I’ve decided to share our experience for choosing the most appropriate tech stack for our applications.
There is no server at all, we build Serverless applications! Why Serverless? because it is cool, AWS lambda can be automatic scalability, high availability and reduces costs dramatically. It also makes things simpler since there are less moving parts: no servers, no load balancers, no auto-scaling groups…
The main techs we use are:
Authentication and Authorisation
We designed centralised fine-grained authorisation flow using Amazon Cognito User Pools with federation to Azure AD and store user role policy to DynamoDb, with this design, one Cognito user pool can auth all users from different apps and websites.
Here are the major frontend technology stack we use
- Apollo Graphql Client
- AWS Amplify
- AWS Amplify
Where is the Redux? How do you handle local state? While implementing the Apollo client, i realised that application with local state keys can use apollo-link-state to replace Redux for managing local state.
Docker is not serverless, however We only run development and test builds using Docker, which fixes mismatched node version causing different behavior between developers and testers.
We use Sentry for our error reporting, and we love it. It is simple, gives options for a lot of different use cases, and can easily be integrated to AWS.
Check out this Awesome Article!
Sneak a Peek, Our Way of Testing
We are working on Admin website for our mobile application My Health Prompt. This is a sort of quick view of how we…
My favourite deployment tool is CircleCI, We use CircleCI to automatically deploy our web apps to Amazon S3 buckets
I always think to use the right techs for the job. I’m very excited about the Serverless stack we have been using for our projects. In our case, building our production projects proved that Serverless is mature enough to run production loads.