All of the pages of this site are written in markdown. I use IntelliJ IDEA as an IDE and it supports markdown, and so the content files, config and theme form an IntelliJ project. The markdown files (which live in a content directory) are compiled to the actual HTML by Hugo, a static site generator. Hugo also has a live update server built in, which is great for checking the site as you write the pages. Once any updates are complete, I sync the final site directory to AWS S3, and the site is served from there. To make this process a little more streamlined, I created a shell script that runs hugo and then does the sync. This is working quite nicely.
Previously I had a more complicated (although admittedly cooler process). Rather than running hugo directly on my Mac, I upload my markdown files to an Amazon bucket, and an AWS Lambda service automatically ran Hugo and put the resulting site into a different S3 bucket. I followed this blog post to set it up. It worked well, but was a bit of overkill for this small site - so I simplified.