Newsletter
Join the Community
Subscribe to our newsletter for the latest news and updates
Responsive, clean Hugo theme porting Hexo Cactus, with four color schemes, client-side search, Disqus/utterances comments, and 17 languages.

Warm editorial Hugo theme for technical notes with WebP covers, full-text fuzzy search, and article-focused SEO.

A Hugo theme that renders a blog as an X/Twitter-style profile timeline, configured via TOML and JSON data files.

Fast Hugo theme for multilingual personal blogs with typography-first design, dark mode, SEO, and optional Telegram integration.

Native Hugo port of Hexo Theme Solitude: elegant, feature-rich blog theme that builds without Node.js.
Cactus is a responsive Hugo theme—a faithful port of the Hexo theme hexo-theme-cactus by Pieter Robberechts—that turns Markdown content into a clean personal blog or portfolio with four color schemes, fully client-side search, and flexible comment options.
Cactus is a Hugo theme that transforms Hugo content files and site configuration into a static personal blog or portfolio website. The port is maintained on GitHub under iahsanujunda/hugo-theme-cactus. It requires Hugo extended (version 0.158 or newer) and a separate Dart Sass install because the SCSS source uses Sass modules and Hugo's css.Sass function with the vars option; the older LibSass transpiler will not build it.
colorscheme param and compiled into the stylesheet by Dart Sass./index.json index generated at build time, with zero server or external search dependencies.direction is set to rtl.photos front matter), banner/thumbnail images, and a link-style layout for off-site titles.main.js is vanilla JavaScript; the gallery is a vanilla justified layout and the copy button uses the native Clipboard API.Cactus suits Hugo users who want a straightforward blog theme without a Node build step or a CSS framework. Static-site bloggers can publish with tags, categories, recent posts, and archives, while developer-portfolio owners can pair an about page with a GitHub projects link and Chroma-syntax-highlighted code samples. Multilingual authors benefit from the 17 included languages and right-to-left script support.
monokai.direction: rtl, and get automatic Vazir font loading for Persian or Arabic content./index.json, and Umami analytics can replace Google Analytics for lighter tracking.Install by adding a git submodule (git submodule add ... themes/cactus) or importing it as a Hugo Module; both options appear in the repository README. After that, set the theme value in the site configuration and copy the annotated TOML blocks from exampleSite/hugo.toml. The build environment must include Dart Sass, so deployment services (GitHub Actions, Netlify, Cloudflare Pages, Vercel) need a step such as npm install -g sass before hugo --minify.
The port keeps the same minimalist look but removes jQuery from the JavaScript, replaces Stylus with SCSS compiled by Dart Sass, uses Hugo's Chroma for syntax highlighting instead of seventy bundled themes, and fixes the utterances issue-term so it honors the configured value rather than hard-coding pathname.
Yes. The theme's SCSS uses Sass modules and the css.Sass vars option, so Hugo must be the extended edition (at least 0.158) and Dart Sass must be installed on the machine or CI environment. If the Sass transpiler is missing, the site fails with a TOCSS-DART error.
It expects Hugo content files with date, title, and taxonomies and it reads optional front matter such as thumbnail, banner, photos, and comments. The site config must include JSON in the home outputs for the search index; the archive is paginated and grouping is by year.
Yes, the theme is released under the MIT license. The original Hexo theme is copyrighted by Pieter Robberechts and the port carries attribution back to it.
Yes, you can enable either Disqus (set shortname) or utterances (set repo, issueTerm, label, and theme) in the site params. Comments are disabled by default on each post; a post's front matter must include comments: true to turn them on.
Google, Umami, Baidu, and Cloudflare analytics are all included. Each is disabled by default and enabled by setting its own ID string in the params; for Umami you also provide a host and script name.
