Loading page...Загружаем страницу...正在加载页面...
AtlasRepo

Building a Multilingual Blog Pipeline That Auto-Posts to Zenn, dev.to, and velog

Description and use

An automated multilingual publishing pipeline that pushes articles from a single GitHub repository to Zenn, dev.to, and velog using Zenn’s GitHub integration, dev.to’s REST API, and velog’s internal GraphQL API.

Problem

Manually copy‑pasting articles into three platforms (Zenn, dev.to, velog) is impractical for a Korean engineer in Japan.

Outcome

Automated multilingual publishing pipeline reduces manual effort, ensures consistent deployment across platforms, and maintains private drafts in a private repo.

Workflow

  • Set up repository layout with directories for each platform and a material.md backlog
  • Configure Zenn GitHub integration from Zenn side and push an empty commit to trigger deployment
  • Create GitHub Actions workflow to post dev.to files via official REST API, embedding front matter in body_markdown and setting canonical_url
  • Create GitHub Actions workflow to post velog files via internal GraphQL API, passing an empty object for meta and handling access/refresh tokens
  • Configure workflows to process only newly added files using git diff --name-only --diff-filter=A
  • Store API keys and cookies in GitHub Actions Repository Secrets and avoid logging them

Evidence

If you install the Zenn Connect app from the GitHub Marketplace side first, the integration never shows up in Zenn's dashboard

Source

dev.to was the pleasant one, since there's an official API

Source

velog was the hard one. There is no official API, so I ended up calling the internal GraphQL endpoint used by the web frontend

Source

  • Record date: 2026-10-08T12:41:01.240Z