Photographer in Sendai, Japan
As someone who loves photography, I have always wanted to build my photography portfolio from scratch as a challenge for myself to step out of the usual comfort zone. In the past, I used to run a WordPress blog focused on travel in Japan, interspaced with some photography experiments. Although the blog did not go as well as I had expected, the idea of launching my photo portfolio persisted.
After several months of tinkering around my schedule, I finally launched the site in the summer of 2019.
I used Next.Js as a React framework to develop my photography portfolio website, just as I used the same framework for this technical website. The original intention was to leverage Next.Js hybrid client-side/server-side rendering capability for SEO performance.
But as time went by, Next.Js kept evolving with new shiny features, and right now, it gives me the best developer experience for dabbling in frontend. Combined with the ease of hosting with Vercel, I would probably stick around with Next.Js for a while.
For CMS, since I have already used WordPress from the time I started writing back in 2016, I decided to keep it as it is. I realize there are probably better (read: fascinating) options out there, such as Ghost or MDX other than good old WordPress, but I don't think I have the time to switch right now. At least I don't have to worry about setting up WordPress myself as I'm using Bitnami WordPress Stack for AWS inside EC2.
There is also a 'favorite function for blog posts and photos' usingAWS DynamoDB to store the data. Many people say DynamoDB is a database 'for large-scale projects', but I found it relatively easy to use for a smaller-scale project as well.
Last part I want to mention is the usage of AWS Cloudfront as CDN for some assets that I want to deliver fast, straight from S3 bucket.