Tailbliss
TailBliss is a Hugo Starter theme built on TailwindCSS 4, and Alpine.JS.
Install / Use
/learn @nusserstudios/TailblissREADME
📚 Table of Contents
- 📁 Theme Structure
- 🚀 Quick Start
- ⚙️ Configuration
- 🔄 Migration Guide
- ✨ What's New in Tailwind CSS 4
- ✨ Features
- 📧 Contact Form Setup
- Credits
📁 Theme Structure
TailBliss follows the standard Hugo theme structure, making it easy to use in any Hugo site.
🎯 Standard Hugo Theme Structure
TailBliss is structured as a proper Hugo theme following Hugo's conventions:
- Theme files in root: All theme files (
layouts/,static/,assets/,archetypes/,theme.toml) are located in the root directory - Example content: Located in
exampleSite/directory for reference and testing - Symlink setup: The
exampleSite/themes/tailblisssymlink points to the parent directory (the theme itself)
🔧 Using TailBliss in Your Hugo Site
When you add TailBliss to your Hugo site, it goes in the themes/ directory:
# Your Hugo site structure will look like:
my-hugo-site/
├── content/
├── themes/
│ └── tailbliss/ # ← TailBliss theme here
│ ├── layouts/
│ ├── static/
│ ├── assets/
│ ├── archetypes/
│ └── theme.toml
├── hugo.yaml
└── ...
This is the standard way Hugo themes work - you reference the theme in your site's hugo.yaml with theme: tailbliss, and Hugo looks for it in the themes/tailbliss/ directory.
📦 How It Works
-
Theme Repository Structure (this repo):
- Theme files (
layouts/,static/,assets/, etc.) are in the root exampleSite/contains example content for testing- This follows Hugo's standard theme structure
- Theme files (
-
Using in Your Hugo Site:
- Clone or add as submodule to
themes/tailbliss/in your site - Reference it in your site's
hugo.yamlwiththeme: tailbliss - Hugo automatically finds and uses the theme from
themes/tailbliss/
- Clone or add as submodule to
-
Why This Structure?:
- ✅ Standard Hugo convention - works with all Hugo tooling
- ✅ Easy to update - just update the submodule
- ✅ Clean separation - your content stays separate from theme files
- ✅ Multiple themes - you can use multiple themes if needed
🔄 Migration from v0.5
If you're upgrading from v0.5, you'll need to migrate your content. See the Migration Guide below.
🚀 Quick Start
Option 1: Use as Hugo Theme (Recommended)
This is the standard way to use TailBliss in your Hugo site. The theme will be placed in your site's themes/ directory:
# Create a new Hugo site
hugo new site my-tailbliss-site
cd my-tailbliss-site
# Initialize git (required for submodule add)
git init
# Add TailBliss as a theme (places it in themes/tailbliss/)
git submodule add https://github.com/nusserstudios/tailbliss.git themes/tailbliss
# Copy example content (optional, excluding themes folder)
rsync -av --exclude='themes' themes/tailbliss/exampleSite/ .
# Or manually copy specific directories:
# cp -r themes/tailbliss/exampleSite/content themes/tailbliss/exampleSite/hugo.yaml themes/tailbliss/exampleSite/i18n .
# Install dependencies and build CSS (use pnpm or npm)
cd themes/tailbliss
pnpm install
# or: npm install
pnpm run build:css:dev
cp static/css/main.*.css ../../static/css/
cd ../..
# If you see "no layout file" warnings: add theme = "tailbliss" to hugo.toml,
# or remove hugo.toml so the rsync'd hugo.yaml (which has theme: tailbliss) is used.
# Start developing
hugo server
(The rsync creates static/css/ in your site; the theme uses the built file from there so Hugo does not need PostCSS in the project.)
Note: Your site config must reference the theme. If you keep the default hugo.toml from hugo new site, add theme = "tailbliss" to it. The rsync'd hugo.yaml already has theme: tailbliss; if you remove hugo.toml, that file will be used.
Option 2: Clone for Development/Contributing
If you want to develop or contribute to the theme itself, clone the repository:
# Clone the repository
git clone https://github.com/nusserstudios/tailbliss.git tailbliss-theme
cd tailbliss-theme
# Install dependencies
pnpm install
# Test the theme using exampleSite
cd exampleSite
hugo server --themesDir=..
Note: This option is for theme development. For using the theme in your own site, use Option 1.
🎯 Automatic Content Setup
TailBliss includes an intelligent installation script that automatically sets up example content for you:
# The install script runs automatically with pnpm install
# Or run it manually:
pnpm run install
# or
node install.js
What the install script does:
- ✅ Checks for existing content - Won't overwrite your existing content
- ✅ Extracts from git repository - Gets the latest example content from the repository
- ✅ Creates complete structure - Sets up
content/directory with:- Sample pages (
about.md,contact.md,prose.md) - 14 example blog and news posts
- Proper directory structure (
posts/subdirectory)
- Sample pages (
- ✅ Safe operation - Only runs if no
content/directory exists - ✅ Clear feedback - Shows progress and next steps
First-time setup:
git clone https://github.com/nusserstudios/tailbliss.git my-site
cd my-site
pnpm install # Automatically runs the install script
pnpm run dev # Start developing immediately
📋 Available Commands
Setup & Installation
# Install dependencies (automatically runs content setup)
pnpm install
# Manual content setup (if needed)
pnpm run install
# or
node install.js
Development
# Start development server with auto CSS rebuilding (RECOMMENDED)
pnpm run dev:watch
# Alternative: Traditional approach
pnpm run dev
# Manual CSS rebuild (when not using dev:watch)
pnpm run rebuild
Production Build
# Full production build
pnpm run build
🔄 Development Workflow Explained
TailBliss offers two development approaches - choose the one that fits your workflow:
🚀 Recommended: Auto-Watch Mode
pnpm run dev:watch
This command:
- Starts CSS watcher (automatically rebuilds when Tailwind classes change)
- Starts Hugo server with caching disabled
- Opens your site at
http://localhost:1313 - No manual rebuilding needed - changes appear instantly!
📦 Traditional: Manual Mode
pnpm run dev
This command:
- Builds CSS once in development mode
- Starts Hugo server with caching disabled
- Opens your site at
http://localhost:1313 - Requires manual rebuild when changing Tailwind classes
Making Changes
✅ When changing HTML/Tailwind classes:
- Edit your
.htmlfiles inlayouts/ - Hugo automatically detects changes and reloads
- No rebuild needed!
🔄 When changing colors/CSS variables:
- Edit
assets/css/main.css - Run:
pnpm run rebuild - Hugo automatically detects the new CSS and reloads
What Each Command Does
| Command | Purpose | When to Use | |---------|--------
