Social Media Site
Overview
It's no Twitter or X or whatever you want to call that site, but Quackr is a functioning social media app where users can log in and make posts. I built the Quackr app using Flask documentation, but later deployed it to Google Cloud and then Render where it lives now.
Deployment
For this project, my objective was to successfully deploy a dynamic website using Google App Engine. This experience provided me with hands-on exposure to the Flask framework, website security, and various Google Cloud deployment practices including Dockerfile and yaml.
Challenges
Hosting cost. Using the Google App Engine (GAE) flex environment means that at least one instance of the site will run at all times. I learned that by default, two instances spin up when you deploy to GAE flex, so I added manual scaling to my app.yaml to limit the instances to one. Although doing this cut the cost in half, it's still relatively expensive to run a personal project on GAE. So, I created a dev version of my site that I can toggle on and off with one Google Cloud SDK command. Unfortunately, this means I generally had to leave the site down unless I was working on it. Currently, the site is hosted here on Render using their free tier service. Render has been my go-to hosting service because of their developer-friendly free tier, but the downside is that the site spins down after inactivity, so it can take some time to load up initially. In the future, I may switch back to the GAE standard environment, but I understand there are some differences such as not being able to use a Dockerfile to modify the runtime.