← Back to Open Source

blog

The Markdown source for coreyverse.dev/blog, with GitHub as the CMS

Markdown GitHub Actions Node.js
Coreychen4444/blog License: NOASSERTION Language: JavaScript

About

The source of truth for the blog on this site. Posts are Markdown files with frontmatter, grouped by topic (tech, travel, finance, thoughts); a GitHub Action regenerates the posts.json manifest on every push, and coreyverse.dev renders from it. Content is CC BY-SA 4.0, code is MIT.

Key Highlights

1

GitHub-as-CMS: commit a Markdown file to main and the site picks it up

2

posts.json manifest rebuilt by a GitHub Action (scripts/build-manifest.mjs)

3

Four topics: backend engineering, travel essays, investing from first principles, and essays on technology and society

4

Open content: CC BY-SA 4.0 for posts, MIT for scripts and workflows; typo and fact-fix PRs welcome

English | 简体中文

Corey's Blog

License: CC BY-SA 4.0 License: MIT Live site

Personal writing by Corey Chen — a Go backend engineer based in Singapore. The content is open source: share it, adapt it, translate it — just give credit and keep derivatives under the same license.

Rendered at coreyverse.dev/blog via a GitHub-as-CMS pipeline (this repo is the source of truth). Posts are written in one language (often Chinese) and published in four: English, 简体中文, 繁體中文 and 日本語 — see Languages.

What's inside

Topic What I write about
tech Backend engineering, Go, distributed systems, MySQL/Redis/Kafka
travel Essays from trips — food, streets, people
finance Investing and markets, from first principles
thoughts Essays on technology, society and where things are heading

Browse by topic: posts/tech/ · posts/travel/ · posts/finance/ · posts/thoughts/

Reuse and attribution

Everything in posts/ and i18n/ is under CC BY-SA 4.0. You can:

  • Quote, translate, repost, remix — in any medium, commercial or not.
  • Required: credit Corey Chen, link back to the source post on coreyverse.dev/blog, and license your derivative work under the same CC BY-SA 4.0.
  • Not required but appreciated: open an issue to let me know, especially for translations — I'd love to link to them.

Code in scripts/ and .github/workflows/ is MIT — see LICENSE-CODE.

Contributing

Found a typo, broken link, or factual error? PRs welcome — see CONTRIBUTING.md. For content suggestions or translation interest, open an issue.

Repo structure

posts/                  # Originals, one per post
├── tech/               # Backend engineering, Go, systems
├── travel/             # Essays and food notes
├── finance/            # Investing and markets
└── thoughts/           # Essays on tech, society and the future
i18n/                   # Translations: i18n/<lang>/<topic>/<name>.md
├── en/  ├── zh/  ├── zh-TW/  └── ja/
posts.json              # Auto-generated manifest — do not edit by hand
scripts/
├── build-manifest.mjs  # posts/ + i18n/ → posts.json
├── i18n.mjs            # translation status / sourceHash helper
└── lib/posts.mjs       # shared frontmatter parser, LANGS, sourceHash
.github/
├── workflows/manifest.yml
└── ISSUE_TEMPLATE/
LICENSE         # CC BY-SA 4.0 (content)
LICENSE-CODE    # MIT (code)

Writing a new post (for future contributors)

  1. Create posts/<topic>/<slug>.md with this frontmatter:

    ---
    title: "Post title"
    lang: "en"              # en | zh | zh-TW | ja — the language it is written in
    topic: "tech"           # tech | travel | finance | thoughts
    type: "essay"           # essay | note | case-note
    status: "published"     # published | draft | updated
    date: "2026-04-17"
    updatedDate: "2026-04-20"   # optional
    excerpt: "One-sentence hook."
    author: "Corey Chen"
    authorUrl: "https://coreyverse.dev"   # optional
    tags: ["Go", "Kafka"]
    readTime: 8
    featured: false         # optional
    ---
    
  2. Write the body in standard CommonMark Markdown. Fenced code blocks with language hints are highlighted via Shiki on the rendered site.

  3. Add translations under i18n/<lang>/<topic>/<slug>.md (see Languages).

  4. Commit + push to main. The GitHub Action regenerates posts.json and triggers a rebuild of coreyverse.dev.

Local manifest build

node scripts/build-manifest.mjs   # fails on broken frontmatter or translation links
node scripts/i18n.mjs status      # which translations are missing or stale

Languages

Each post has one original under posts/ and up to three translations under i18n/<lang>/, with the same <topic>/<slug> path. The manifest lists a post's original language (lang) and its translations; translations never appear as separate posts. Each locale of the site shows its own translation of the title, excerpt and body, falls back to the original with a note when a translation is missing, and flags translations whose original has changed since (sourceHash). Full rules: posts/README.md.

Contact