こんにちは。システム開発部のNです。昨年、MCP サーバーの実装本「MCPサーバー実装入門」を書いて、技術書典(技術書オンリーの同人誌即売会)で売りました。企画から執筆、表紙、販売準備まで全部ひとりでやりました。サークル参加の申し込みから入稿までは2〜3ヶ月ほどでした。
「いつか技術書を書いてみたい」と思っているエンジニアは多いと思います。私もそのひとりでした。ただ、いざやろうとすると中身の執筆よりも手前の部分でつまずきます。何のツールで書くのか、表紙はどう作るのか、どうやって売るのか。書きたいことはあるのに、その手前で止まっていました。
やってみてわかったのは、この「中身以外」の部分は、いまはほとんど既存の仕組みに乗るだけで済むということです。組版はテンプレート、環境は Docker、表紙は画像生成ツール、販売は技術書典のプラットフォーム。特別なスキルが必要な場面はほぼありませんでした。
この記事では、やったことを実際の順番で書きます。中身の書き方の話はしません。書きたいテーマは人それぞれなので。
先に申し込む
原稿を書き始める前に、技術書典のサークル参加を申し込みました。
先に申し込むと開催日がそのまま締め切りになります。「いつか書く」のままだと進まないので、これで自分を追い込みました。仕事の納期と同じ理屈です。
技術書典は会場での即売会とオンラインマーケットの両方があり、初参加向けの案内も充実しています。最初の1冊を出す場所として選びやすいと思います。
環境は Re:VIEW + Docker
原稿は Re:VIEW で書きました。技術同人誌の組版ソフトの定番で、独自の軽量マークアップ記法で書いたテキストから、コマンド一発で本の体裁の PDF が出ます。章立て・コラム・脚注・図表番号といった書籍らしい見た目は、TechBooster が公開しているテンプレート(ReVIEW-Template)が全部整えてくれるので、組版のことを考えずに中身だけ書けます。プレーンテキストなので git で管理できるのも、エンジニアには馴染みやすい点です。
組版環境一式(TeX・日本語フォント・ビルドツール)が入った Docker イメージを使う構成も、このテンプレートに同梱されています。テンプレートに乗るだけなら、環境構築は30分くらいで済みます。
構成はこうです。
- 原稿とサンプルコードはリポジトリを分けて GitHub で管理
- Docker + Dev Container で、VS Code で開けばすぐビルドできる状態にする
- Re:VIEW の記法ハイライトなどの拡張機能も Dev Container の設定に書いて、自動で揃うようにする
リポジトリを分けたのは、サンプルコードを実際に動かして確認しながら書きたかったからです。原稿と混ぜると、コードだけ試したいときに邪魔になります。
環境を Docker に寄せておくと OS に依存しないので、PC を替えても git clone してコンテナを立て直せば元通りです。
この「開いたらすぐ書ける」状態を最初に作っておくと、後半のストレスがかなり減ります。やっておいてよかった作業です。
目次を先に固める
環境ができたら、本文を書き始める前に、最初の1週間で目次を9割固めました。
構成のコツは、基本編と応用編を分けておくことです。締め切りに間に合わなかったら応用編を落とせばいいので、全体を組み直さずに分量を調整できます。
目次が決まれば、あとは各章を埋めていく作業になります。GitHub Copilot や Codex などの AI エージェントを使いながら、1ヶ月半ほどコツコツ書きました。
仕上げと校正
8割できたあたりからが本番でした。PDF をビルドして、目で読んで、直す。このループが2〜3週間続きます。完成に近づくほど直しが細かくなって、なかなか終わりません。ここは覚悟しておいたほうがいいです。
校正は AI エージェントと分担しました。誤字脱字や表記ゆれの検出は AI に任せて、言い回しの調整は自分で読んで直しました。ここはかなり手を動かしました。表記ゆれ用に textlint も入れてみましたが、AI のほうが優秀だったので結局外しました。ひとりで書くとレビュアーがいないので、機械に任せられるところは任せて、人間にしかできない部分に時間を使うのがいいと思います。
表紙を作る
表紙には1〜2週間かけました。売れ行きの大半は表紙で決まると言われているので、ここは削らないほうがいいです。
やること自体は単純で、画像生成ツールでビジュアルを作って、Canva でタイトルと帯を載せるだけです。本文はテンプレート任せなので、デザインで悩むのは実質ここだけでした。基準は「サムネイルで何の本かわかる」かどうか。それだけで十分です。予算がある人は外注してもいいと思います。
入稿と販売準備
初参加で勝手がわからなかったので、紙は作らず電子版(PDF)だけにしました。
入稿は、表紙を組み込んで Re:VIEW でビルドするだけです。執筆中にずっと見ていた PDF と同じものなので、入稿用の特別な作業はほぼありませんでした。技術書典のページに PDF を登録すると簡単な審査があり、通ったら価格とサンプル画像を設定して販売開始です。
細かい話ですが、サムネイルは pdftoppm で PDF の必要なページを画像に書き出して用意しました。白い表紙を白背景のサイトに載せると輪郭が消えるので、ImageMagick で薄いグレーの枠を足しました。
# 表紙(1ページ目)を 150dpi の PNG に書き出す
pdftoppm -png -r 150 -f 1 -l 1 MCPサーバー実装入門.pdf page
# 白背景で輪郭が消えないよう、薄いグレーの枠を 2px 足す
magick page-01.png -bordercolor "#cccccc" -border 2 page-01_bordered.pngpdftoppm は poppler(macOS なら brew install poppler)に入っています。このあたりは凝りだすときりがないので、ほどほどで切り上げました。
結果
電子版なので販売はオンラインマーケットです。会期中に40冊、売上4万円でした。原価はほぼゼロなので、売れた分がそのまま利益になりました。売上の規模によっては販売手数料がかかるので、値付けの前に規約を見ておくといいと思います。会期後も月1〜2冊ペースで売れ続けています。
作業時間で割ると時給はアルバイト程度なので、稼ぐ手段としては割に合いません。ただ副産物が大きく、編集者の方から声をかけていただき、商業版(完全理解!MCPサーバー入門 TypeScript SDK実践ガイド)が技術の泉シリーズから出ました。同人版で書ききれなかった応用編を追加した内容です。こういう展開は狙っていたわけではないですが、出してみないと起きなかったことではあります。
おわりに
書く前は大ごとに見えていましたが、締め切りを作って、環境をテンプレートに乗せて、目次を固めてしまえば、あとは普段の開発とそれほど変わりませんでした。仕上げの2〜3週間はしんどかったですが、それも締め切り前のリリース作業だと思えば見慣れた風景です。書く過程で自分の理解が整理されるのもよかった点です。
書きたいテーマがある人は、次の技術書典に申し込むところから始めるのがおすすめです。
