Files
hoelee-blog/docs/content-guide.md
T
2026-09-09 03:07:29 +08:00

5.8 KiB
Raw Blame History

Content Guide — what to write & what to avoid

Read this before planning or writing any post on blog.hoelee.com. It encodes the positioning, taxonomy, post types, cadence, and anti-patterns so every piece of content serves the two goals: get hired, and win freelance clients.


1. The job of every post

A post is not "content marketing". It is a proof-of-expertise artifact. After reading it, a recruiter or client should think: "this person can actually do this, and I trust how they explain it."

Two hard rules flow from that:

  1. Attach your identity to every post — photo, bio, links. Anonymous content kills E-E-A-T and defeats the whole purpose.
  2. Pitch to learners, not experts. Most search traffic comes from people learning. Write down, not up.

2. Categories (stable — don't invent new ones casually)

Use these 7 categories. Everything else is a free-form tag (traefik, solidity, gitea, n8n…).

Category What goes in it
engineering Java/Spring, PHP/CodeIgniter, React/TS, WordPress deep dives
devops Docker/Portainer, Traefik, Cloudflare tunnels, NAS, backups, monitoring — my most differentiated material
ai n8n workflows, Telegram bots, local LLM (LM Studio), mem0 memory stack, TTS
web3 Solidity, Foundry/Hardhat, ERC-20/721, Chainlink — honestly framed
tutorials Beginner-facing how-tos
case-studies "How I built X" — the portfolio
notes Short low-friction entries: fixes, gotchas, link roundups

3. Post types that work (ranked by hiring ROI)

  1. "How I built X" case studies — highest value. Recruiters read these. (DigiKedai bot, self-hosted mem0, mailcow email platform, NAS product delivery, SifuMail.)
  2. "Hard problem → solution" tutorials — e.g. "The Traefik forward-auth gotcha that cost me a day", "Site-to-site OpenVPN behind CGNAT".
  3. Gotcha / debugging posts — short, extremely Google-friendly, compound over time.
  4. Tool roundups & comparisons — I have genuine first-hand material (Astro vs WP, Gitea vs GitHub, Foundry vs Hardhat).
  5. Config / recipe posts — reusable Traefik/Docker/Pi-hole configs with explanation.

4. The "hard job done → public post" template

When I finish a difficult piece of work, publish with this shape. It is simultaneously a tutorial, a case study, and a proof-of-expertise — the highest-ROI post type I can write.

① The problem       → phrased as the searchable question a learner would type
② What I tried & why it failed → the debugging story (this is what no one else can copy)
③ The fix           → runnable code/config, explained
④ What I'd do differently → shows judgment, not just luck
⑤ The result        → one quantified outcome

5. Cadence

  • Realistic target: 2 posts/month to start, then 1/week.
  • Sonmez playbook: Month 12 = 1/week → Month 3 = 2/week → Month 4+ = 12/week mixing 500-word tactical posts with 2,000+ word guides.
  • Ship a notes entry anytime I solve something — keeps the feed alive between deep posts.
  • Long guides bring search traffic; short posts keep me consistent.

6. Frontmatter shape (reference)

---
title: "How I built the DigiKedai Telegram bot"
description: "A ~155-char meta description with the target keyword."
pubDate: 2026-09-06
category: case-studies
tags: ["telegram", "n8n", "docker", "cloudflare"]
ogImage: "/og/digikedai-bot.png"   # 1200×630, custom per post
draft: false
---

No lang: field — language is derived from the file location:

  • posts/hello-world.md → English (en)
  • posts/zh/hello-world.md → Chinese (zh), served at /posts/zh/hello-world/

7. What to AVOID (anti-patterns)

Anti-pattern Why it hurts
Anonymous / no author identity Kills E-E-A-T; defeats the name-search strategy. Always show photo + bio + sameAs links.
Writing for experts, not learners Most search traffic is beginners.
AI-spam / content-farm filler Google aggressively demotes unedited AI churn. My first-hand case studies are the moat — never dilute them with filler.
Perfectionism before publishing Procrastination. Ship it, edit later. A dormant blog is worse than an imperfect one (mine was dormant Dec 2023 → now).
Reused logo as og:image Every post needs its own 1200×630 image, or shares look broken.
Orphaned / thin pages hoelee.com has ~400 orphaned image-attachment pages. Don't recreate — keep the sitemap clean.
Hosting on Medium/Dev.to as primary Platform risk + no SEO ownership. Use them for syndication only (cross-post + canonical back to my domain).
Overclaiming Web3 experience Be honest: "learning Foundry, deployed test ERC-20/721" is credible; "production DeFi engineer" is not yet.
Broken resume/CV link About page + author bio must link a working resume. Fix the source of truth.
Monetizing before audience No ads, sponsored posts, or ebooks yet. Build trust + traffic for a year first.

8. i18n policy

  • English is primary and non-negotiable — the whole SEO strategy targets English queries.
  • Chinese (zh): translate every post. Same filename in posts/zh/ (auto language-switch). Opens zh-SG/zh-MY search and covers bilingual recruiters.
  • Malay: skip for v1 — no dev-audience demand (the main site already has a dangling Malay config; don't repeat it).

File layout (enforced by code)

  • English posts: src/content/posts/*.md (flat, no subfolder).
  • Chinese posts: src/content/posts/zh/*.md (subfolder → /posts/zh/<slug>/).
  • Language is derived from the folder (see src/lib/lang.ts), so do not set a lang: field in frontmatter.
  • Never let "I should translate this" block publishing an English post.