I created a GUI for Hugo static sites and would love your feedback: BuhoCMS

After someone suggested posting about my project on the Hugo Forum, I though it would be a good idea. I hope it can be helpful to a lot of people. You can read more about the project (including Screenshots) on the GitHub page: https://github.com/iakmds/buhocms

Here is a shortened description of what BuhoCMS is:

BuhoCMS is a free and open source local CMS for Hugo on your Desktop. See it as a GUI for static site generators.
BuhoCMS would be for you if you land in at least one of the following categories:

  • You already have a Hugo site and want to easily edit your content from now on
  • You want to create a new Hugo site from zero with a graphical user interface
  • You are a beginner looking for a simple way to begin your journey in using static site generators

A (non-exhaustive) list of the features:

  • Add new posts and edit your Markdown content and Front matter with ease
  • Edit content: Use the Markdown toolbar for quickly adding styles
  • Markdown preview: Use the Markdown viewer to check your syntax
  • Front matter: Graphical User Interface (GUI) for each field like a Text field, Switch, Date picker, Tag editor, and more
  • Switch between GUI and raw text mode
  • Start, open and stop your local Hugo server with a click
  • …and much more!

Currently, Windows and Linux are supported. I would love to get your feedback. Thank you!

12 Likes

Hello. Thanks for a great tool. I’m sure many people would find it useful.

Questions:

  1. Does it parse front-matter from existing sites/projects?
  2. Are Hugo command line switches supported (and how so) in start/stop/build etc?
  3. Is there a non GUI way to easily edit front matter on a GUI editor? Meaning, the GUI editor should have an option for both quick/easy manual front matter editing, as well as GUI if that’s what people want. Switching the entire display to text only just to edit a few quick things may get tedious.
  4. Does the markdown preview use Hugo serve or a client-side only preview? I am curious whether the preview supports short-code rendering.

Thanks, and I’ll try it sometime and provide actual feedback.

Hello there, thank you for the questions.

  1. If I understand that correctly, yes – that is, after adding your entries to the global Front matter list of BuhoCMS. Once they are added, all posts with the corresponding schemes will appear in the GUI. By default, there are 4 Front matter list entries:
    • title [String]
    • date [Date]
    • draft [Bool]
    • tags [List]
  2. Are you referring to the command flags, like here https://gohugo.io/commands/hugo? If so, not yet – but it’s a great idea I will note down. Let me know if I misunderstood you.
  3. I think I get what you mean, are you talking about a switch in the Front matter section while using GUI mode that will display the Front matter text, instead of switching to Text mode altogether? If yes, I will note down that feature!
  4. It uses a client-side markdown preview, so unfortunately it doesn’t support short-code rendering. If it would use Hugo server, are you thinking about a Web view of the localhost, i.e. displaying the whole Website as a preview?

I hope I could help, let me know if you have any further questions

Hi. You’re welcome.

  1. You have understood correctly. Though it seems we need to manually add our front matter directives to the CMS first before it can use it? Can you parse front matter and auto create whatever that needs be created in the CMS? So this step isn’t manual, where we need to add front matter to the CMS manually before it can process it.

  2. Correct. Would like to see a checkbox option to enable/disable most useful command line hugo arguments. Or a box to enter our own args.

  3. You understood correctly. The GUI should have the option to stay in full GUI, while displaying the front matter or the article source in TEXT. Should be a radio box that we can select that displays GUI markdown editor, or a simple textarea etc.

  4. An embedded webview would handle shortcode generation. It’s pretty easy to open a webview control or an iFrame (not sure what stack you’re building in) and give the source as localhost:1313

Let me know if I can help out with coding or anything else. Thanks.

  1. Right, it is indeed semi-manual. I could add a button that will try to automatically detect the front matter of all files :+1:
  2. Sounds good!
  3. Good!
  4. I’m using Flutter & Dart, and it looks like opening a WebView is indeed possible not possible on Desktop, unless using a plugin that has some runtime inconveniences on Windows.

Again, thanks for all the ideas. I think I can implement all these features.

Great project @iakmds.

It is indeed.

I am waiting for something like this since

  • Forestry is susetting
  • Netlify CMS is no longer under development
  • Hokus CMS is no longer under development
  • Cloudcanon is costly & doesn’t have a free tier
1 Like

Another great alternative for developers is: https://frontmatter.codes

Hello all🐧

Oh i iove this, is exactly that what i has search for hugo. Have great day :strawberry::+1:

The future of Netlify CMS: The future of Netlify CMS | Usecue web development

1 Like

Good news @Hash_Borgir and others,

a new release (0.2.0) is now out on GitHub, which includes your 2. and 3. feature requests (+other fixes, improvements, etc.). The first feature request will be implemented in a later version :+1:

1 Like

@Hash_Borgir and to those interested,

another new release (0.3.0) is out on GitHub :tada:, which includes the 1. feature request by @Hash_Borgir, that is, is an Auto-Detect Front matter feature (+ other improvements, fixes etc.).
Would love to know what you think.

3 Likes

Thanks a lot. Fast progression. Great work. When I get some time, I’ll check it out and suggest more optimizations, useful features etc. Cheers.

1 Like

Seems counter intuitive, but if you put everything Boho in its own directory in the build directory root, ‘.boho/’, and use the paths in the UI as paths to render Boho files, there will be more flexibility.

A ‘Save’ button (if no auto-save) will save text files in ‘.boho/’, with whatever extension the user chooses.

A render button will render the current file (in the editor input) to markdown, or scss, or whatever, in the directory at end of path specified in the UI.

Files in ‘.boho/’ can contain multiple blocks wrapped in a start delimiter, with the path specified, and an end delimiter (with folding).

Hi all, with the new release 0.6.0 the static site generator Jekyll is now also supported besides Hugo :tada:
This can be great if you are switching between Hugo and Jekyll websites, as BuhoCMS now supports both.

As always, I appreciate any feedback :smiley:

1 Like

What are the runtime inconveniences you found?