Summary
I am proposing to explicitly (with a multi-year transition period) to divide Hugo into ‘core’ (the part I see as being like Make+GCC or the Go compiler) and ‘web-builder’ subprojects.
Reasoning
The purpose of the hugo
binary
As I commented on another user’s post, I think of Hugo as being like Make+GCC rather than a website builder per se, but seems there are many users who expect Hugo to be a drop-in website builder.
The Technical context
Mixing things like internal templates and ‘starter’ websites into a ‘make/compiler-like’ tool seems to me to be mixing content with the tools that build the content. In addition, things like internal templates have a greater frequency for need for changes to meet the current web environment than a build tool itself.
I think it would help the ‘core’ developers to separate concerns and focus on build tool development as a different exercise than template or ‘starter’ development.
Further, no templates or ‘starters’ are going to meet all user’s needs, and deal with that takes time away from tool development.
The social context (negative approach)
A number of those users have had what I feel is a very negative, even hostile approach the Hugo project as it now, and comments like
make me wonder if this part of a campaign for what I would term a ‘hostile fork’ of the project.
Hugo of course is open source and folks are free to do what they wish with the code as long as they abide by the license terms, but the part that bothers me is that it ‘feels’ like an effort to discredit and/or take over the great work of folks like @bep, rather than an effort to improve how the Hugo project and/or community is organized.
The social context (docs & desire to build websites by non-developers)
Despite the warnings when one first logs into the forum
there seem to be many folks expecting a more ‘WordPress’-like experience.
In addition, I think the Hugo docs are a great reference, but for non-developers learning Hugo from the docs can be a challenge. In addition, ‘the interwebs’ are full of blogs posts and themes that are based on, or use, very old versions of Hugo and contain information that is out-of-date, not best practice, or outright wrong. So there is a valid need for docs that are helpful for new, non-developer, users.
Caveats
External Resources
There are of course folks like CloudCannon, Netlify, and sever others, who are making things like CMS frontends for Hugo and the new book ‘Hugo in Action’ mentioned elsewhere on this forum.
Community & Developer Time & Resources
Developing good new-user documentation takes a great deal of time and effort, and is probably best done by community members who are closer in skill-sets to the types of users targeted by the documentation. Further, the ‘core’ developers are busy developing Hugo.
It is not clear that there are enough accurately knowledgeable community members of the right skill-sets who would work on this.
Would Need a Framework to Work In
Overview
Should separating the build tools from scaffolding, starter templates, and end-user / new-use documentation be deemed desirable, those who would be working on the ‘web-builder’ vs ‘build tool’ aspects would need both technical and organizational structure to be able to work effectively.
Technical
There would need to be some discussion of the proposed ‘web-builder’ framework and how it would be organized in terms of repos, building, and in general “what’s in, and what’s not”. There would also need to be an initial framework developed to get things started.
Organizational
This could be a ‘sibling’ project to ‘gohugoio’. That would make it easier (IMO) to give collaborator access to ‘web-builder’ contributors / developers than if it were part of the ‘build tool’ organization. There would also have to be some thought to how collaborators get added/removed, decision making, etc, since I imagine this part is going to pull in more folks than the ‘build tool’ part, and therefore is more likely to have more ‘office politics’ to deal with.
Offer to Be Point on This
If there is an interest in this, I am willing to offer myself (or support someone else who I trust to do a good job of it) as ‘point’ on this.
In many ways, if this is a separate ‘organization’ it doesn’t require permission from the current Hugo core, but I’d only want to do this if there were ‘buy in’ from folks like @bep, @jmooring, @davidsneighbour, @zwbetz, etc, so I wonder if they and others could comment on their thoughts and willingness to support such an endeavor.
Conclusion
I know this is long, but I hope it makes some kind of sense, and folks consider it a worthwhile concept to pursue.