I hope this question is not too broad for this category. I am curious what the benefits of building and using a theme over building bespoke sites with Hugo without a theme.
I can see why you would choose a theme if you intend to sell it as a product. I can also see the benefit if the theme provides only atomic components and some basic setup. That way, you can reuse the same base theme for all the projects, and once you update the base theme, all projects using the theme will get the update.
The latter can also be a double-edged sword if changes to the base theme could break some projects or cause noticeable (but unintended) changes in a project’s UI.
Is there an option to opt out of updates for a theme?
I ask this specifically when the theme is added as a git submodule. ?If it is a Git submodule, does Hugo pull the latest from GitHub during a build, or is there a version string that needs to be bumped manually?
Some of the details on the theme components page sound interesting:
But I also noticed that there is a notice that the docs here may be outdated and is being rewritten.
I have a repository published to NPM and use via
npx when starting a new Hugo project. I kinda like this because I still do
hugo new site . using the latest Hugo version and then run
npx @project-calavera/hugo-skeleton --output=. to get all my latest scaffolding. I do wonder if I am missing out on something though.
You could also have a bespoke Hugo set up as a template repository on GitHub. Whenever you start a new Hugo project, you create your new repository using the template repository.
The downside is, updates to the template repository do not carry over to older projects created from the template.
Anyway, I am rambling a bit now. I guess in the end, there is no ONE way to build with Hugo. I would love to hear people’s thoughts on this. Thanks!