🌟 New release: v0.9.0 🌟

Take a look at all the changes here!



BuhoCMS app icon

BuhoCMS

A free and open source local CMS for static site generators written in Flutter and Dart licensed under the GPLv3

Table of Contents

  1. What is BuhoCMS?
  2. Downloads
  3. Contributing
  4. Roadmap
  5. Packages used
  6. License

What is BuhoCMS?

BuhoCMS is a local Content Management System for static site generators (list of supported SSGs).

See BuhoCMS as a GUI for static site generators. Easily create or open a website, choose your theme and add your first posts. With BuhoCMS, adding and editing content is as easy as a few clicks. No more terminal commands, folder hunting or manual Front matter edits πŸ₯³

Who is BuhoCMS for?

BuhoCMS is made for... you πŸ˜ƒ

...that is, everyone using a static site generator who wants an easy to use, graphical way to edit content, so that you can make the best use out of the power of a static site generator: Creating and editing content.

BuhoCMS is for you if you land in at least one of the following categories:

  • You already have a static site from a supported SSG and want to easily edit your content from now on
  • You want to create a new static 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

:warning: Alpha warning

BuhoCMS is currently in Alpha. While most things should work as expected, bugs :bug: are likely to exist. It is a good idea to backup πŸ’Ύ your website folders just in case. Also, remember that many more features are planned! :sparkles:

Screenshots

Screenshot 1 Screenshot 2 Screenshot 3 Screenshot 4

Downloads

  • Currently supported platforms: Windows, Linux
  • Planned: macOS, Web (possibly in the future)

Windows

Download and execute the BuhoCMS-Windows.exe file from the GitHub releases page.

macOS

macOS support is planned. Unfortunately I do not currently own a macOS device; to build and test BuhoCMS, a macOS device is needed.

Linux

Supported Planned
Flatpak (Flathub) Snap
AppImage AUR
.deb .rpm

To install BuhoCMS as a Flatpak, head over to Flathub. In order to run executable commands on your host system, you need to give the following permission in your Terminal: flatpak --user override org.buhocms.BuhoCMS --talk-name=org.freedesktop.Flatpak

Download on Flathub


To install BuhoCMS as an AppImage, download the BuhoCMS-Linux.AppImage file from the GitHub releases page, make it executable and run it. For better desktop integration consider using AppImageLauncher.

Download as an AppImage


To install BuhoCMS as a .deb package, download the BuhoCMS-Linux.deb file from the GitHub releases page and install it.

Features

  • SSGs supported:
  • Create or open a site
  • Install themes for your site
  • 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 server with a click
  • Build your final website and open its folder
  • Privacy: BuhoCMS is a local program with no internet connection required – no ads, no tracking
  • Free and open source: Licensed under the GPLv3
  • Themes: Material Design with multiple color themes, both light and dark
  • Fully responsive
  • Multiple languages supported – Contribute translating your language!
  • ...and many more features planned

Contributing

These are the ways you can contribute to BuhoCMS:

Translating

Languages currently supported:

  • English πŸ‡¬πŸ‡§
  • German (Deutsch) πŸ‡©πŸ‡ͺ
  • Chinese (δΈ­ζ–‡) πŸ‡¨πŸ‡³

First steps:

  1. If not already supported (see above), request a new language by opening an issue on GitHub and I will add the necessary code for the second step.
  2. Translate an already existing language (see below).

Translating guide: Weblate support is planned. For now, go to the .arb file of the language you want to translate (for example, app_de.arb file for German) and change the text inside the "" quotation marks. Use the English translation as a reference for the text to be translated to the target language. If the keys listed in the untranslatedMessages.txt don't exist, simply create them just like the others.

Send in your translated files as a Pull request

Bug Reports, Feature Requests and Improvements

Open an issue on GitHub: Open issue. Remember to check for duplicates and try to give important information such as the app version, your operating system, etc.

Code

Feel free to send in a pull request! To get started with Flutter, follow this link: https://docs.flutter.dev/get-started/install

  1. Clone this repository
  2. Switch to the project's directory and run flutter pub get to get all necessary packages. To receive all localized strings, run flutter gen-l10n. To test the app, run the project in debug mode by selecting a device in your preferred Flutter IDE and running the app in debug mode
  3. Build BuhoCMS (see steps for the different platforms below)

Windows executable: Run the following command in your terminal on a Windows machine: flutter build windows – the output file will be generated at buhocms\build\windows\runner\Release\buhocms.exe.

Linux executable: Run the following command in your terminal: flutter build linux – the output files, including the executable, will be generated at buhocms/build/linux/x64/release/bundle.

Roadmap

General:

  • Integration with git when "publishing" site (optional)
  • Language filter for l10n
  • Fix system light/dark color scheme
  • Custom app theme colors
  • Markdown Toolbar: "Add media" button for images for selecting an image
  • Configurable shortcuts
  • Markdown Toolbar: Shortcuts (v0.5.0)
  • Localization: Markdown Toolbar tooltip texts (v0.4.0)
  • Show terminal output (v0.3.0)

Hugo specific:

  • Work with both hugo.* and config.* names (see Hugo Documentation)
  • hugo/config.toml, hugo/config.yaml, hugo/config.json editor (+ create a .bak backup file)
  • Be able to delete themes and open the theme folder button
  • Git-submodules for themes support

Project:

Packages used

The packages used for this app, also listed in the pubspec.yaml file. See their respective licenses.

Package Use case
context_menus Right click context menus
convert Convert json
dropdown_search Add Front matter with a searchable Dropdown button
file_picker Picking file paths
flex_color_scheme App color schemes
flutter Flutter SDK
flutter_localizations Localization
flutter_markdown Markdown preview
flutter_svg Displaying SVG files
intl Localization
markdown_toolbar Markdown Toolbar
menu_bar Menu Bar
package_info_plus Display the programs version number
process_run Run terminal commands
provider State management for localization, themes, navigation, etc.
shared_preferences Saving local app data, including settings
smooth_page_indicator Page indicator in the onboarding screen
url_launcher Open links in Browser
window_manager Set minimum window size and window title

License

This project is licensed under the GNU General Public License Version 3. For details, see LICENSE