Hacker News new | ask | show | jobs
by fishywang 1430 days ago
Does Hugo have a cloud backend integration that you can create new post/edit existing post without redeploying everything?

There's an open source, self-hosted clone of BearBlog, called PolarBearBlog [0], that builds a docker image and run it on Google Cloud Run. It uses Google Cloud Storage to manage a single JSON file for the whole blog contents (yes all your blog posts are in a single json file, which probably will start to show issues when you have hundreds of posts, but then again it's just markdown text so maybe that won't be a big issue anyways), and you only need to redeploy it if you made code change or system level config changes, which really is really more convenient than the whole static approach.

I made a fork of PolarBearBlog to add some of the features I care about, like cactus comment integration and rending full posts in the RSS feed. [1]

[0]: As far as I could tell PolarBearBlog has no affiliation with BearBlog, but it did get a mention in BearBlog's README: https://github.com/HermanMartinus/bearblog/blob/master/READM...

[1]: https://b.yuxuan.org/my-fork-of-polarbearblog

2 comments

Creator of Bear Blog here. Both Jan and Joseph (mentioned in the README) contacted me prior to publishing to get my permission to use the Bear theme and chat through the project :)
Hugo is very fast in updating a website. Unless you have thousands of blog posts I would not bother.

You can self-host it on a "cheap" webhost and rsync the changes (that's the way I do it). Or you can integrate it with Github and host it with

- Netlify https://gohugo.io/hosting-and-deployment/hosting-on-netlify/

- AWS Amplify https://gohugo.io/hosting-and-deployment/hosting-on-aws-ampl...

- Cloudflare Pages https://developers.cloudflare.com/pages/framework-guides/dep...

to name a few. The hugo site has a couple of howtos.

Some hosting solutions require that the entire website is stored in a separate branch, others regenerate the HTML through a CI pipeline and store it in an object store.