🔖

zenn techblogをGitHub Organizationで複数人で管理する

2024/07/25に公開

この記事について

この記事は、Zennを使って複数人でテックブログを運用するために実験的に行っている活動についてまとめています。
LLMが普及してきた今だからこそ取り組めるあたらしい形としてのテックブログを目指しています!

対象読者

  • これからテックブログを始めたいが、Organization とPersonal 両立する運用に悩んでいる方
  • エンジニアのためにテックブログの運用を開発環境に近づけたい方

誰が書いているのか

株式会社アラヤのエッジAI チームのプロダクトマネージャーの野末です。
普段は、新しいエッジAI開発・運用を効率化するためにSubnetXのプロダクト開発・提案などを行ったり、エッジAI開発のためのVFM/LLMを活用したエッジAI開発システムの研究などを行っています!

アラヤのエッジAIチームでは、アラヤの"人類の未来を圧倒的に面白く!"するというビジョンを達成するために、"すべてのモノにAIを乗せる"というミッションに取り組んでいます。
そこで、今回はもっと多くの方がエッジAIの開発を進められるようにテックブログを始めてみました!

なぜZennを使うのか

Zenn の良い点として以下の三つに大きく注目しています。

  1. GitHub連携

    • 組織的なレビューサイクルの実現
    • LLMを活用した自動校閲やチェックの可能性
  2. Zenn CLI

    • ローカルの慣れたエディタでMarkdown記事を作成可能
    • エンジニアの通常のワークフローに近い環境での執筆
  3. Booksフォーマット

    • まとまった情報を体系的に提供可能
    • エッジAI開発に必要な幅広い知識を効果的に共有

これらの着目点のうち、今回のテックブログでは、GitHub連携の運用について深掘りしていきたいと思います。

GitHub Organizationsでの実験的な運用

今回テックブログを運用する上で、チームメンバーとディスカッションを行い以下の要件を整理しました。

  1. 会社として作成するテックブログは、会社で統一的に管理をできるプラットフォームにする.(organization:org)
  2. 記事の読まれた数をダッシュボード管理できるようにする(dashboard)
  3. 実験的な運用のため、乗り換えができるように会社内の既存リソースで元データを管理できるものにする.(source)
  4. アカウントに紐づく形で、テックブログを誰が書いたのかわかるようにする. (account)
  5. マークダウンファイルは管理するが、UI操作などになれる負担を極力減らす. (local)
  6. テックブログは、レビュー運用を行い、品質を保つ.(review)
  7. レビューの運用負荷を減らすために、LLMを活用する.(LLM support)
  8. 想定読者はエンジニアとする.(reader)
    これらの要件を満たすプラットフォームとして、テックブログとして日々お世話になっているものをリストアップし調査を行いました。

テックブログ プラットフォームの比較

テックブログを始めるにあたり、各プラットフォームのプランでどの程度のことができるのかを調査しました。

NOTE : この表は、2024/7/1時点の簡易調査の結果です。最新の情報は各プラットフォームの公式サイトをご確認ください。

platform plan org dash
bord
source account local review LLM support reader
Zenn Publication Pro 🔺 🔺 🔺 eng
Zenn Publication 🔺 🔺 🔺 🔺 eng
Zenn + GitHub GitHub連携 🔺 eng
Qiita Qiita Organization eng
Qiita + Gtihub Qiita CLI 🔺 eng
medium Medium Team N/A N/A N/A N/A N/A pdm/eng
notion Notion Teams 🔺 🔺 🔺 pdm
note Note Pro 🔺 pdm
DocBase DocBase Teams 🔺 in team

NOTE : pdm = product manager, eng = engineer, in team : 社内向け
✅ : 機能提供あり
🔺 : API経由など連携機能追加で対応可能
❌ : 機能提供なし
N/A : 詳細確認できず

これらの調査の結果reviewを行いつつ、LLMの効率的なサポートを受け、エンジニアがテックブログを書きやすい環境を整えるには、Zenn + GitHub連携が良さそうだと考えました。Qiita + GitHub連携も検討しましたが、Qiita のGitHub連携が少し手間がかかるということと、複数人でGitHub Repoの共同管理を行うのにブランチ運用が少し難しいということから、Zenn + GitHub連携を選択しました。

Zenn + GitHub連携の運用

Zenn + GitHub連携は大きく二つの運用に分かれています。
一つ目は、Writing PhaseとしてOrganizationのRepo上で記事を書きレビューサイクルを回すものです。
二つ目は、Release PhaseとしてOrganization RepoからWriter RepoにForkした上でのGitHub のreleaseという形に分けられます。
それぞれについて、少しフローチャートを用いて概略を説明したいと思います!

GitHub Action でのLLMによる自動校閲とレビュー運用

今回は、GitHub Actionを使って、Zennの記事を自動校閲する仕組みを作成しました。

今回設計したワークフローは以下のような形です。

LLM Reviewでは、OpenAI のAPIを利用して、以下の点をレビューしています。

  • テックブログの内容が想定読者に合っているか
  • 文章全体がわかりやすいか
  • 定義されていない新規技術用語が急に出現していないか
  • タグが適切か
  • 表記揺れが存在するか
  • てにおは
  • Corporation Guide Lineに基づいた評価 メルカリの類似事例

実際のコメントの例は以下のような形です。
alt text

Pull Request Marge後の記事のデプロイ

このままだと、全員の記事がそのまま全員のアカウントに公開されてしまうため、Zenn Githubのブランチ指定機能を利用して、各アカウントのreleaseブランチに記事をデプロイする仕組みを作成しました。
この仕組みによって、各アカウントのreleaseブランチに記事がデプロイされるため、各アカウントのreleaseブランチをZennに連携することで、各アカウントの記事を公開することができるようになります。

まとめ

エッジAIチームのテックブログを運用するために、Zenn + GitHub連携を選択し、GitHub Actionを使ってLLMによる自動校閲とGitHub OrganizationとRelease Actionを利用したZennデプロイについて取りまとめました。少しは参考になりましたでしょうか?

エッジAIからLLM構築まで気軽にご相談ください!
株式会社アラヤの先端研究支援
株式会社アラヤのエッジAI
SubnetX

Discussion