Inspiration
I’ve always wanted a personal blog that reflects a quiet, thoughtful aesthetic—minimalist yet rich in detail, with subtle Eastern undertones and a touch of literary warmth. Existing Hexo themes felt either too flashy or too sterile. So I decided to build my own: a lightweight, semantic, and responsive theme tailored to my voice and audience—especially for sharing ideas with global readers.
What it does
My custom Hexo theme renders clean, fast-loading blog pages with a 3:2 cover image system, elegant typography, dark/light mode support, and optimized for both reading and SEO. It’s designed to put writing first—no distractions, just clarity and calm.
How we built it
I started from Hexo’s minimal landscape base and rebuilt everything in EJS and SCSS:
- Structured layout with semantic HTML5
- Used
post.coverfront-matter to auto-process cover images (later optimized via CLI to 3:2 and <5MB) - Implemented dark mode with CSS variables and
prefers-color-scheme - Added critical CSS inlining and lazy loading for performance
- Deployed via GitHub Pages with a simple
hexo deploy
All assets are local—no external CDNs—keeping the theme truly lightweight and private.
Challenges we ran into
- Responsive cover alignment: Ensuring 3:2 images looked consistent across devices without layout shift. Solved with
aspect-ratioCSS andobject-fit: cover. - Font pairing: Found a balance between Western readability and subtle East Asian typographic rhythm using system fonts (
-apple-system,BlinkMacSystemFont,"Noto Sans CJK SC"). - Build speed: Early versions had heavy SCSS nesting. Flattened structure and purged unused styles cut build time by 60%.
Accomplishments that we're proud of
- A theme that loads in under 0.5s on desktop (Lighthouse score >95)
- Fully accessible (keyboard nav, semantic headings, alt-text support)
- Personal design language: quiet margins, restrained color palette, and thoughtful spacing that feels like a well-bound notebook
What we learned
Building a theme from scratch teaches you how every layer of the web fits together—from Markdown parsing to CSS cascade to deployment hooks. Simplicity isn’t minimalism; it’s precision. And the best tool for expression is often the one you make yourself.
What's next for Mindbrew
- Add native support for bilingual posts (EN/ZH) with language toggle
- Integrate a lightweight search using FlexSearch
- Create a companion script to auto-generate optimized cover images (linking back to that
convertCLI workflow!) - Open-source the theme for fellow I-type creators who value silence over noise
Built With
- hexo
- node.js
- webstorm
Log in or sign up for Devpost to join the conversation.