https://github.com/demchaav/blog
Personal technical blog (Hugo + PaperMod) by Artem Demchyshyn
https://github.com/demchaav/blog
Last synced: about 1 month ago
JSON representation
Personal technical blog (Hugo + PaperMod) by Artem Demchyshyn
- Host: GitHub
- URL: https://github.com/demchaav/blog
- Owner: DemchaAV
- Created: 2026-06-15T09:38:27.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2026-06-15T11:46:15.000Z (about 1 month ago)
- Last Synced: 2026-06-15T12:27:26.414Z (about 1 month ago)
- Language: HTML
- Size: 6.39 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Artem Demchyshyn Blog
A minimal technical blog for Java backend engineering notes, built with Hugo and the PaperMod theme.
**Live:**
## Stack
- Hugo
- PaperMod
- GitHub Pages
- GitHub Actions
- No Node.js required for this setup
## Project Structure
```text
.
|-- archetypes/
|-- content/
| |-- about.md
| |-- archives.md
| |-- search.md
| `-- posts/
|-- themes/
| `-- PaperMod/
|-- .github/
| `-- workflows/
|-- hugo.yaml
`-- README.md
```
## Local Development
Install Hugo Extended `0.146.0` or newer. PaperMod declares this as its minimum Hugo version.
Clone the repository with submodules, or initialize them after cloning:
```powershell
git submodule update --init --recursive
```
Run the site locally:
```powershell
hugo server -D
```
Open:
```text
http://localhost:1313/
```
Create a new post:
```powershell
hugo new posts/my-post-title.md
```
Set `draft: false` when the post is ready to publish.
## Publishing to GitHub Pages
The site is already live at and redeploys automatically on every push to `main`. The one-time setup (kept for reference):
1. Push this repository to GitHub.
2. In the GitHub repository, open `Settings` -> `Pages`.
3. Set `Source` to `GitHub Actions`.
4. Push to `main`.
The workflow in `.github/workflows/hugo.yaml` builds the site with Hugo and deploys `public/` to GitHub Pages. The workflow sets the production `baseURL` from GitHub Pages automatically, so it works for both user sites and project sites.
## Analytics
Analytics use [GoatCounter](https://www.goatcounter.com/) (privacy-friendly, no cookies). It is enabled in `hugo.yaml` with the site code `demchaav`:
```yaml
params:
analytics:
goatcounter:
enabled: true
code: "demchaav"
enableInDevelopment: false
```
Stats: . The script loads in production only, so local `hugo server` visits are not counted.
## Comments
Comments use [giscus](https://giscus.app/) backed by this repository's GitHub Discussions (Announcements category). The loader lives in `layouts/partials/comments.html` and is enabled via `params.comments: true`; the widget follows the site's light/dark theme.
## Updating PaperMod
```powershell
git submodule update --remote --merge themes/PaperMod
```
Then test locally and commit the updated submodule pointer.