This webpage was built for Gretchen Louise Photography to display their work and attract new clients. There is also an accompanying admin site where Gretchen Louise can upload new blogs, update current blogs, view site stats, and interact with submitted forms.
Hosting
The production site that is exposed to the public is hosted on Vercel. The reason I chose Vercel to host is because this project is using Vercel’s framework (Next.js) for the front-end.
- Main Domain
- Admin Domain (Hosted separately on GuldenTech )
Image Hosting
The images are hosted and stored on a Google Cloud Storage bucket. I chose this for the ease-of-use and the ability to publicly expose the images so the bucket can act as a content delivery network (CDN). CDN’s can be very expensive, however, with the current usage of Gretchen’s site, the cost is very inexpensive.
Front-end
The front-end framework of choice for this project was React with Next.js . I chose this because I wanted a framework with options to have dynamic content as-well-as the option for static pages. Also, Next.js has one of the best image optimization tools built into the framework. For styling, I went with Material UI since I knew it was one of the most popular styling options with React.
Back-end REST API
I chose Go Fiber for my back-end REST API. I went with Go Fiber because I wanted to use Go for the speed and familiarity and Go Fiber was a nice fit for my use case. They have outstanding documentation which made it easy to rewrite the orginal back-end API, written in Python with Django .
Database
The database I used for this project was Postgresql . I wanted to use a relational database due to familiarity and the low likelyhood of needing to scale in the future.
CI / CD
Vercel has an easy to use built in CI / CD with their deployments. For the admin site I am using GuldenTech’s CI / CD deploying the admin site, back-end API, and Postgresql database as docker containers on their Kubernetes service.