A minimal, high-performance Ghost CMS theme built with modern tools (Vite + Tailwind CSS 4 + Alpine.js) to deliver a sleek, dark-mode-first publishing experience.
🖥️ Live Screenshots Demo: https://frontendweb3.github.io/pulse/screenshots/
- Vite & HMR: Hot Module Replacement for Handlebars (
.hbs), CSS/Tailwind, and JavaScript assets - Tailwind CSS 4: Utility-first styling with
@tailwindcss/typographyand sleek design tokens - Alpine.js: Lightweight, reactive UI interactions for comments, menus, and collapse components
- Code Syntax Highlighting: Automatic code block highlighting via
highlight.jswith a built-in copy button (highlightjs-copy) - Lucide Icons: Scalable SVG icons initialized dynamically
- Automatic Image Optimization: Integrated
Sharpimage optimization pipeline viavite-plugin-image-optimizer - One-Command Packaging: Exports a production-ready
.ziptheme archive compatible with Ghost 6.x
If you want to use this theme on your Ghost website without setting up code or development tools, follow these step-by-step instructions:
- Open the latest releases page in your browser:
👉 https://github.com/frontendweb3/pulse/releases/latest - Scroll down to the Assets section at the bottom of the latest release.
- Click on the
.zipfile (e.g.,pulse-1.0.0.ziporpulse.zip) to save it to your computer.
💡 Important: Do NOT unzip or extract the downloaded file. Ghost CMS requires the theme file as a compressed
.zipfile.
- Log into your Ghost Admin Dashboard (e.g.,
https://yourdomain.com/ghost). - Click the Settings icon (⚙️ gear icon located in the bottom-left corner of the sidebar).
- Select Site design (or Design).
- Click Change theme located at the bottom-left of the design sidebar.
- Click the Upload theme button in the top-right corner.
- Drag and drop your downloaded
pulse-1.0.0.zipfile into the upload box (or click to browse and select the file from your computer). - Click Activate to apply the Pulse theme to your Ghost site.
If you want to customize the theme source code or develop new features locally:
- Node.js 22+ and
pnpminstalled globally - A local or remote Ghost instance (v6.0.0 or higher)
-
Clone the repository:
git clone https://github.com/frontendweb3/pulse.git cd pulse -
Install dependencies:
pnpm install
-
Start development server with Hot Module Replacement (HMR):
pnpm dev
This starts the Vite dev server on
http://localhost:5173. Open your local Ghost site athttp://localhost:2368to view live changes. -
Build production assets & generate release zip:
pnpm build
This compiles optimized assets into
assets/dist/and generatespulse.zipin the root directory.
-
Symlink the theme folder into your local Ghost installation:
ln -s /path/to/pulse /path/to/ghost/content/themes/pulse
-
Restart Ghost:
ghost restart
-
Open Ghost Admin (
http://localhost:2368/ghost), go to Settings -> Site design -> Change theme, and activate Pulse.
- Client Injection:
default.hbsautomatically detectslocalhost/127.0.0.1and injects Vite's client script (@vite/client). - Template Reloads (
.hbs): When you edit any.hbsHandlebars template, the customghostHmrPlugininvite.config.tsinvalidates Vite's module graph (re-scanning Tailwind v4 classes) and sends a full-reload signal to your browser. - Instant CSS & JS Updates: Styling and JS changes update instantly in the browser without full page refreshes.
Code syntax highlighting is pre-configured for code blocks inside posts and pages.
- Loaded dynamically on post and page templates (
{{#is "post, page"}}). - Copy Button: Powered by
highlightjs-copyfor one-click code snippet copying. - Supported Languages:
bash,css,javascript,typescript,json,xml/html.
- Templates:
author.hbs,default.hbs,index.hbs,post.hbs,page.hbs,tag.hbs,error-404.hbs - Partials:
partials/(header, footer, navigation, pagination, cards, share, show-comment) - Components:
partials/components/icon.hbs(Reusable SVG icon helper powered by Lucide) - Assets:
assets/css/,assets/js/, compiled by Vite intoassets/dist/ - Build Config:
vite.config.ts
pnpm dev— Starts Vite HMR dev server on port 5173 for live reloading.pnpm build— Compiles production assets and generatespulse.zip.pnpm test— Validates Ghost CMS 6 compatibility usinggscan.pnpm screenshot— Captures full-page screenshots of all routes across mobile, tablet, and desktop viewports.
Released under the MIT License (see LICENSE.md).