Gorky is a lightweight, markdown-powered static site generator designed for creating beautiful blogs and personal websites that can be easily deployed to GitHub Pages.
Gorky is named after Maxim Gorky
The layout and design is inspired from garry.net
npm install -g gorkyOr install locally in your project:
npm install --save-dev gorkygorky init my-site
cd my-siteThis creates a new Gorky site with example content and template files.
- Edit
site-config.jsto configure site settings and navigation - Add your markdown files to
content/ - Create blog posts in
content/posts/
gorky buildOr use npm:
npm run build- Push your code to GitHub
- Go to Settings → Pages
- Select the branch with
index.html - Your site is live!
Gorky makes it incredibly simple to create and maintain a static website using markdown files. No complex build tools, no database setup, just write your content in markdown and Gorky handles the rest.
All your content lives in markdown files. Whether it's blog posts, documentation, or custom pages, you write everything in familiar markdown syntax. Gorky automatically:
- Converts markdown to beautiful HTML
- Generates navigation from your sidebar configuration
- Creates a posts listing page
- Handles tags and filtering
- Provides syntax highlighting for code blocks
- Blog Posts: Create posts in the
content/posts/folder with YAML frontmatter for metadata - Custom Pages: Add any markdown file and link to it from your sidebar
- Dynamic Navigation: Configure your sidebar through
site-config.js - Tag System: Organize posts with tags and filter by them
- Analytics Ready: Built-in support for GoatCounter analytics
- ✅ Responsive Design: Works beautifully on desktop, tablet, and mobile
- ✅ Syntax Highlighting: Code blocks automatically highlighted with Prism.js
- ✅ Tag Filtering: Filter posts by tags with a simple URL parameter
- ✅ Client-Side Routing: Fast navigation without page reloads
- ✅ SEO Friendly: Meta tags and canonical URLs included
- ✅ Analytics Ready: Built-in support for GoatCounter
- ✅ Easy Theming: All theme properties in one
styles/theme.cssfile - ✅ Lightweight: Minimal dependencies, fast load times
gorky init [project-name]- Initialize a new Gorky sitegorky build- Build the static site
Edit site-config.js to customize site-wide settings, sidebar navigation, and analytics:
module.exports = {
// Basic site settings
baseUrl: 'https://yourusername.github.io/your-repo',
siteName: 'My Site',
authorName: 'Your Name',
defaultDescription: 'Your site description...',
defaultKeywords: 'keyword1, keyword2',
favicon: 'favicon.ico',
appleTouchIcon: 'apple-touch-icon.png',
// GoatCounter Analytics (optional)
goatCounterEnabled: false,
goatCounterCode: 'yourcode',
allowLocal: false,
allowFrame: false,
noOnload: false,
// Sidebar Configuration
sidebar: {
header: 'My Site',
homeDisplayName: '🏠 Home',
postsDisplayName: '✍️ Posts',
footer: [
{
text: '2025 © Your Name',
target: 'https://yoursite.com'
}
],
sections: {
'Links': {
'GitHub': {
target: 'https://github.com/yourusername',
openInNewTab: true
}
}
}
}
};The sidebar configuration includes:
header: Text displayed at the top of the sidebarhomeDisplayName/postsDisplayName: Display names for main navigation itemsfooter: Array of footer items (text or links)sections: Navigation sections with items (targetcan be?page=filenamefor internal pages or full URLs for external links)
Create a gorky.config.js file to customize paths (optional):
module.exports = {
contentDir: 'content',
outputFile: 'index.html',
templateFile: 'index-template.html',
stylesDir: 'styles'
};MIT