Minimalist, text-focused blog built with Kirby CMS.
Inspired by N-O-D-E — monochrome aesthetic, Share Tech Mono typography, maximum readability.
- Article pages with reading time estimation
- Related posts shown at bottom of articles (based on shared tags)
- Archive page grouping posts by year and month
- Search functionality for finding content
- RSS Feed at
/feed
- Lazy loading for images with blur-up placeholder effect
- Responsive images with automatic srcset generation
- Sitemap.xml auto-generated for search engines
- OpenGraph/Twitter Card meta tags for social sharing
- Cache headers optimized for static assets
- Gzip compression enabled
- Syntax highlighting via Prism.js (supports PHP, JS, CSS, Bash, YAML, JSON)
- GitHub Actions CI/CD workflow for automated builds and deployment
- Tailwind CSS for styling with custom N-O-D-E theme
- Custom 404 page with helpful navigation and search
- CMS: Kirby 5
- Styling: Tailwind CSS
- Comments: Giscus (GitHub Discussions)
- Search: Built-in Kirby search
- RSS:
/feed - Sitemap:
/sitemap.xml - Archive:
/archive
# Install dependencies
composer install
npm install
# Build CSS
npm run build:css
# Watch CSS for changes
npm run watch:css
# Local dev server
php -S localhost:8000 kirby/router.phpPosts live in content/blog/. Each post is a text file with YAML frontmatter:
Title: My Post
Date: 2026-01-30
Category: Technology
Tags: tag1, tag2
Cover: my-image.jpg
----
Post content here...Upload images to the article folder. Use the Cover field for featured images:
Cover: my-photo.jpgImages automatically get:
- Lazy loading with blur-up effect
- Responsive srcset generation
- Alt text from filename or explicit
Altfield
Use fenced code blocks with language specification for syntax highlighting:
```php
<?php echo "Hello World";
Supported languages: PHP, JavaScript, CSS, Bash, YAML, JSON
## Deployment
The repository includes a GitHub Actions workflow (`.github/workflows/deploy.yml`) that:
- Builds CSS on every push
- Runs Kirby health checks
- Creates build artifacts
- Can deploy via rsync (configure secrets to enable)
### Required Secrets for Deployment
- `DEPLOY_USER` - SSH username for server
- `DEPLOY_HOST` - Server hostname
- `DEPLOY_PATH` - Path on server
- `SSH_PRIVATE_KEY` - Private key for authentication
## License
Personal blog — custom code under MIT License. Kirby CMS requires a [license](https://getkirby.com/buy) for production use.