A modern, responsive Ghost theme with static homepage and blog functionality. Features dark/light theme switching, comprehensive content block support, and extensive customization options.
- Static Homepage - Resume/portfolio page at root (
/) - Blog at
/blog/- Full blog functionality with categories - Dark/Light Theme - Automatic theme switching with localStorage
- Responsive Design - Mobile-first approach with DaisyUI
- Ghost Content Blocks - Full support for all Koenig editor blocks
- Search Integration - Ghost Sodo Search functionality
- Customization Options - Extensive theme settings via Ghost admin
- Download or clone this theme
- Edit your personal data into
data.json - Upload to your Ghost installation via Admin → Design → Themes
- Activate the theme
- Configure customization options in Admin → Design → Customize
This repository serves as a template for creating your own Ghost theme. Follow these steps to create and deploy your own version:
- Click the "Use this template" button on GitHub
- Name your new repository
- Choose visibility (public or private)
- Click "Create repository from template"
If you want to pull new changes from this template in the future, add an upstream remote:
git clone https://github.com/<your-user>/<your-repo>.git
cd <your-repo>
git remote add template https://github.com/IlyaZh/personality_theme.git
git fetch templateWhen template has updates:
git fetch template
git merge template/mainTo enable automated deployments and theme updates, you need to create an integration in your Ghost admin panel:
- Go to your Ghost admin panel:
https://your-ghost-blog.com/ghost - Navigate to Settings → Integrations → Add custom integration
- Give it a name (e.g., "GitHub Theme Deployment")
- Copy the Admin API Key and Admin API URL
- Keep these credentials safe - you'll need them in the next step
- Go to your GitHub repository
- Navigate to Settings → Secrets and variables → Actions
- Click "New repository secret" and add:
- Name:
GHOST_ADMIN_API_KEY - Value: Paste your Ghost Admin API Key
- Name:
- Click "New repository secret" again and add:
- Name:
GHOST_ADMIN_API_URL - Value: Paste your Ghost Admin API URL (e.g.,
https://your-ghost-blog.com)
- Name:
These secrets will be used by GitHub Actions to automatically update your theme on your Ghost blog when you push changes.
- Header Style: Choose between
default,centered, orminimal - Show Announcement Bar: Toggle announcement bar visibility
- Show Search: Enable/disable search functionality
- Show Resume Button: Toggle resume download button
- Show Featured Posts: Display featured posts section on blog page
- Posts per Page: Number of posts displayed (default: 10)
- Show Author Bio: Display author information in posts
- Show Reading Time: Display estimated reading time
- Show Share Buttons: Enable social sharing buttons
- Show Related Posts: Display related posts section
- Primary Color: Main theme color (default: #4f46e5)
- Secondary Color: Secondary theme color (default: #7c3aed)
- Accent Color: Accent color for highlights (default: #06b6d4)
- Text Color: Main text color (default: #1f2937)
- Background Color: Page background color (default: #ffffff)
- Font Family: Choose from Inter, Roboto, Open Sans, Lato, Poppins
- Font Size: Select small, medium, or large text size
- Sidebar Position: Choose left, right, or no sidebar
- Footer Style: Select simple, detailed, or minimal footer
- Show Social Links: Toggle social media links in footer
ghost-theme/
├── assets/
│ ├── css/
│ │ └── screen.css # Compiled CSS
│ ├── favicon.svg # Site favicon
│ └── resume-ilia-zhitenev.pdf # Resume file
├── partials/
│ ├── navigation.hbs # Site navigation
│ ├── footer.hbs # Site footer
│ └── announcement.hbs # Announcement bar
├── src/
│ └── screen.css # Source CSS with Tailwind
├── default.hbs # Base template
├── index.hbs # Static homepage
├── home.hbs # Blog listing page
├── post.hbs # Individual post template
├── page.hbs # Static page template
├── tag.hbs # Tag archive template
├── routes.yaml # Custom routing
└── package.json # Theme configuration
- Node.js 16+
- npm or yarn
-
Install dependencies:
npm install
-
Start development mode:
npm run dev
-
Build for production:
npm run build
The theme uses Tailwind CSS with DaisyUI. Source files are in src/screen.css and compiled to assets/css/screen.css.
Add custom styles to src/screen.css:
/* Custom styles */
.my-custom-class {
@apply bg-primary text-white p-4 rounded-lg;
}All templates use Handlebars syntax and support Ghost's built-in helpers. Key templates:
default.hbs- Base layout with head/footindex.hbs- Static homepage (resume)home.hbs- Blog listing pagepost.hbs- Individual post display
To add new customization options:
- Add to
package.jsonundercustomsection - Use
{{@custom.field_name}}in templates - Access via Ghost admin interface
- ✅ Content API
- ✅ Admin API
- ✅ Koenig Editor (all content blocks)
- ✅ Search functionality
- ✅ Navigation management
- ✅ Tag management
- ✅ Author profiles
- ✅ Featured posts
- ✅ Announcement bar
- ✅ Custom routing
- ✅ Theme customization
- Chrome 90+
- Firefox 88+
- Safari 14+
- Edge 90+
MIT License - see LICENSE file for details.
For issues and questions:
- Create an issue on GitHub
- Check Ghost documentation
- Review theme customization guide

