Have you ever heard about the SaaS platform for if a number is even? Well, I've decided to recreate a service like this of my own! 😄
Not for the profit, of course - who would need the paid service for checking the parity of a number? 😄 I wanted to create a full-stack project from start to end and then deploy it. It seemed like a great challenge that would require gathering all my knowledge, structuring it, and maybe even learning some new stuff along. So this idea of creating a non-real SaaS platform fascinated me!
The main idea behind this SaaS platform is that a customer can purchase a plan (different plans allow different API usage). He can then perform an analysis of a number via a protected route. Users must use API Key to have access to that route. The application tracks the usage for each user, and if he reaches the limit, he can no longer use our services.
Core features are:
- Users can signup and login,
- User can place orders and fulfill them,
- User can create API Keys
- User can use the service within his credits limit
- User can monitor the usage of his credits
The project gathers some of the best practices of project development and maintenance. It shows how one can implement a working system from start to end, deploy it and monitor it. This project contains of:
- modern Frontend application written in
- robust Backend application written in
- infrastructure as a code with
- Typescript codebase for every application
- docker environment for local development
- monorepo manager to control all the and its dependencies
- CI/CD pipelines for running tests and deployment
The frontend application is deployed on
Vercel, one of the first choices for deploying the
The backend application is deployed on
AWS ElasticBeanstalk. I've found this challenging to create an infrastructure setup with AWS CDK, but it was worth it! Infrastructure as a Code is fantastic because now I can set it up from the start in no time!
This whole project is a template, ready to copy and use accordingly to your start-up idea! Feel free to fork it and adjust to your needs 😉
I've decided to use some new modern technologies in this project. One of the essential mentions is
React with that library.
Other worth mentions are:
- Rush.js as monorepo manager
- Next.js as frontend framework
- Nest.js as backend framework
- Multiple AWS services like: Cognito, RDS, EBS, ELB etc.
I encourage you to have a look, examine the code, and write your thoughts. What do you think about this project? What's missing or what could have been done differently?
If you have a suggestion to improve this project, please fork the repo and create a pull request. You can also open an issue with the tag enhancement. Any contributions are welcome.
If you wonder why I decided to go with monorepo, here are some good reasons that I've written in my previous article:
Also, I've written a more hands-on tutorial for setting up the infrastructure with AWS CDK: