Open-source project
g1eny0ung/hugo-theme-dream avatar
g1eny0ung/hugo-theme-dream

hugo-theme-dream: a Hugo theme built by one blogger for himself

🌱 A Hugo theme named Dream.

589 stars195 forksCSSMIT

At a glance

What is it?
Dream is a Hugo theme whose main features are a masonry layout for posts and a flippable about page, with light and dark modes and a separate Zen mode for readers who want less interface. Its build is a Tailwind and Babel pipeline driven by pnpm, and the interesting detail is that the theme is versioned separately from the site that uses it.
Who is it for?
hugo-theme-dream is a good fit for a blogger who wants a clean Hugo site with a masonry home page and a light and dark mode without assembling a theme from parts, because the two features that usually require custom work are already the theme's headline.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 6 days ago.
What is it written in?
Mainly CSS, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.

Editorial analysis

A theme that is also a personal site

Dream is a Hugo theme, and the README is direct about its origin: the author builds it for his own blog. The example link points at that blog and its source code, and the demo site for Zen mode is published separately.

That framing matters for evaluation. A theme built for one person's site is a design with an opinion and a working reference implementation, not a configurable framework. You are adopting both the look and the decisions behind it, and the documentation gives you a live site to compare against rather than a set of options to weigh.

The main features are named as two things, Masonry Layout Posts and Flippable About Page. The masonry layout is the one that shapes the theme's identity, since it is what the home page becomes, and a flippable about page is a small, opinionated interaction rather than a static section.

Light and dark mode support is out of the box, and there is a separate Zen mode for people who prefer a simple and clean interface, which the README describes as more concentrated on reading and writing.

The audience is a Hugo user publishing a personal blog who wants a distinctive home page without writing templates, and the repository is a self-contained theme with a MIT licence and a single author.

Version 3 is a rewrite, and the v2 branch is still there

The readme opens with an important note that is easy to scroll past. The latest version of Dream is v3.x, and if you are using v2.x you should check the v2 branch and its documentation, which live at separate URLs.

So there are two parallel lines, and the split is not cosmetic. A v2 branch with its own docs site means the older theme is still supported rather than abandoned, and a site owner has a defined place to look when something behaves differently between versions.

The release history is regular. v3.17.0 came on 2026-08-02, v3.16.1 on 2026-07-20 and v3.16.0 on 2026-07-13, which is a pattern of a minor release every few weeks with patch releases following quickly after. The repository is not archived, and the last push was on 2026-10-17.

For an adopter, that cadence is the main thing to plan around. A theme that ships a release every few weeks will need updating, and since the theme is a set of templates and compiled assets in your own repository, an update is a merge rather than a package manager bump. The readme does not describe an upgrade procedure, which is a gap worth knowing about before you have twenty posts live on the site.

The build: Tailwind and Babel through pnpm

The theme does not ship prebuilt assets, so there is a build step, and the package.json describes it precisely.

json
  "scripts": {
    "css": "tailwindcss -i ./src/input.css -o ./assets/css/output.css",
    "js": "babel src --out-dir assets --presets=@babel/preset-env --no-comments",
    "build": "pnpm run css && pnpm run js",

Two compilers do the work. Tailwind CLI takes src/input.css and writes assets/css/output.css, and Babel takes the src directory and outputs to assets with the @babel/preset-env target and comments stripped. The build script runs both in sequence, and the watch script runs them concurrently in watch mode.

The dependency list explains the design choices. The Tailwind CLI and Tailwind itself are at version 4, and daisyui at version 5 is a component layer built on Tailwind rather than a separate framework. The typography plugin is what makes rendered Markdown prose look like prose, and Babel 8 handles the JavaScript.

The engines field asks for Node 22 or later, and the package manager is pnpm with a workspace file at the root. There is a pnpm-lock.yaml, and the theme itself is marked private, which is normal for a theme that is consumed as a Hugo module rather than published to a registry.

What is in the repository, and the parts that are not the theme

The directory listing is bigger than a simple theme and a few of the entries explain why.

There is layouts/ for the Hugo templates, assets/ for the compiled output, src/ for the Tailwind input and the JavaScript sources, and config.toml and theme.toml for the theme's own configuration. The hugo.example.toml is the example configuration a user copies and edits, and archetypes/ holds the front matter templates that generate new content.

Then there are three directories that are not part of the theme itself. The docs/ directory holds the documentation site, which is what the documentation link points at. The decapCMS/ directory points at Decap CMS, the git-based content management system, so the theme can be edited through a browser interface rather than a text editor. And i18n/ holds the translation files, which is consistent with a theme that aims to be usable outside English even though the readme itself is in English.

The images/ directory holds the screenshots used in the readme, and there is a .prettierrc, a .editorconfig and a pnpm-workspace.yaml.

The primary language listed for the repository is CSS, which matches the src and assets directories being the largest part of what is actually maintained.

Where Dream is the wrong choice

Three things to weigh before you build a site on this theme.

The first is the build requirement. If your deployment pipeline is Hugo only, with no Node step, this theme will not build, because the stylesheet and scripts in assets/ are generated by Tailwind and Babel. A static site generator theme that needs a second toolchain is a real constraint for CI, and it is not mentioned in the readme beyond the package.json.

The second is the lock-in to the two signature features. The masonry layout and the flippable about page are what make Dream recognisable, and if you do not want them you are modifying templates rather than configuring them. Themes in general work this way, but a theme whose readme leads with two unusual interactions makes it clearer that you are taking the design as well as the code.

The third is the upgrade path. With the v2 and v3 lines living on separate branches, the readme does not explain how to move a site from one to the other, and the version note does not say whether the two share a configuration format. If you have an established site, that question is worth asking before you migrate, and worth resolving in the theme's own documentation rather than by trial.

For a blog, none of this is disqualifying. For a site you cannot break, it is a reason to start with a copy of the source rather than a submodule pointer.

Editorial conclusion

hugo-theme-dream is a good fit for a blogger who wants a clean Hugo site with a masonry home page and a light and dark mode without assembling a theme from parts, because the two features that usually require custom work are already the theme's headline. It is a poor fit if you are on Hugo v2 of the theme and expect v3 features, since the v2 line lives on a separate branch with its own documentation, and a poor fit if you cannot run a Node build step, because the CSS and JavaScript are compiled rather than shipped ready to use. Before adopting, read the version note at the top of the readme, check that the theme's Tailwind and daisyUI versions are compatible with the Hugo version you run, and plan for the upgrade path from the v2 branch before you migrate an established site.

Frequently asked questions

What are the main features of the Dream Hugo theme?

The README names two main features, Masonry Layout Posts and a Flippable About Page. It also supports light and dark mode out of the box and ships a separate Zen mode for people who want a simpler interface focused on reading and writing.

Which version of the Dream theme should I use?

The latest version is v3.x. The readme notes that if you are using v2.x you should check the v2 branch and its separate documentation, so the two lines are maintained apart.

How do I build the Dream theme assets?

With pnpm and Node 22 or later. The package.json scripts run tailwindcss to compile src/input.css into assets/css/output.css, and Babel with the @babel/preset-env preset to compile the src directory into assets, with a build script that runs both and a watch script that runs them concurrently.

What licence is the Dream Hugo theme released under?

The MIT Licence, as stated in the readme and in the package.json license field. The author is g1eny0ung.

Official sources

  1. g1eny0ung/hugo-theme-dream on GitHub
  2. License: MIT
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/g1eny0ung-hugo-theme-dream.svg)](https://hysenlabs.com/projects/g1eny0ung-hugo-theme-dream)

Was this useful?