This article will describe the basics of Notify Me tech stack. What is Notify Me - It's an app which sends you an email notification whenever a site you are tracking changes, along with the summary of the changes.
I saw this question as one of the example prompts, and since I never actually wrote about our stack, it just seemed like a fun thing to do. So let's get started!
Whole app consists of Frontend completely written in React, and Backend - almost completely written in python.
We mostly use Google Cloud (GCP) as our infra provided, with just a small number of things running on AWS.
Since I'm originally a backend engineer and I never touched frontend code in my life before working on Notify Me, I can proudly say that this is my first ever frontend project.
As far as the tech stack goes, whole app is just one pretty basic React app with Tailwind as our CSS library.
I went with react because, me being a BE engineer, I only had basic HTML understanding and react just looked like HTML with a couple of extra steps.
Tailwind was again chosen because of the sheer simplicity needed to use it - you just put classes directly into your HTML files.
…
Backend is written almost completely in python, with one exception being our MJML converter function, since MJML doesn't have a library for python. As for what MJML is - it's an awesome email templating library which I highly recommend - https://mjml.io/
Our architecture is based on microservices mostly because we are running on serverless, so having single purposes services is a must if you want to save money.
Python was choosen mainly because it's super simple to use for web scraping purposes, and since we have an AI part of the code which analyses the keywords, using python for ML is a no brainer.
…
We use terraform coupled with cloudbuild to deploy both FE, and BE, and our running cost as of today is about ~15$ a month, and most of that sum goes on storage, so you can say that we are basically running for free #serverless
…