このブログはNext.jsとContentfulで自作しています。技術ブログを始めようとするとき、選択肢として考えられるのが「自作するかどうか」だと思います。
この記事では「技術ブログの自作ってどうなんだろう」という疑問に対して、技術ブログを自作するとはどういうことか、自作するメリット・デメリット、技術選定に対する考え方について書きます。
この記事を読むことで、技術ブログを自作するかどうかの判断材料になると思います。このブログを元にした体験談も書いているので、ブログ作りの参考になればうれしいです。
テクニカルライター。元エンジニア。共著で「現場で使えるRuby on Rails 5」を書きました。プログラミング教室を作るのが目標です。
技術ブログを自作するとはどういうことか
ここでいう技術ブログの自作とは、「ブログを自分で開発・運用すること」です。WordPressやブログサービス、静的サイトジェネレーターなどのツールを使わずに、自分でコードを書きつつ開発することをいいます。技術ブログの自作は、私の経験から次のように考えています。
- 技術的な成長・パフォーマンスの追求には最適な選択
- ブログを長く継続するという意味では避けたい方法
これについて、技術ブログを自作するメリット・デメリットの観点から書いていきます。
技術ブログを自作するメリット
技術ブログの自作は、次の4つのメリットがあります。
- 技術的に成長できる
- 表示パフォーマンスを追求できる
- 費用を抑えられる
- ポートフォリオになる
技術ブログを自作しようと考えるとき、まっさきに思いつくのが「技術的な成長」だと思います。使ってみたい技術がある、身につけたいスキルがある、などです。例えばRuby on RailsやGoのスキルを高めたいからそのフレームワーク・言語を使って作れる、というのは自作の大きなメリットです。
また表示パフォーマンスを追求できるのも大きいです。ブログサービスは表示が遅いところがほとんどで、WordPressもサーバーによっては早くなりますが、自作にはかないません。
例えばNext.jsのようなフレームワークを使うと、次のような高速化にとことんこだわれます。
- 静的ページとしてビルドできるため、アクセス時にデータベースとのやりとりが発生しない
- CDNを通して近くのサーバーからファイルを配信できる
- バックグラウンドでプリフェッチできるので、リンククリック時に高速でページ遷移できる
こういったフロントエンドのスキルは、技術的な成長にもつながります。また、維持費がかからないようにもできます。VercelやNetlifyといったサーバーは個人用途では無料で、ContentfulやmicroCMSといったHeadless CMSも無料の範囲で利用可能です。パフォーマンスの高いブログを低コストで運用できるのは魅力的です。
最後に、ブログを自作したという経験は対外的にも大きなアピールポイントになります。転職・副業に活かしたいという考えをもっているなら、自作という選択肢を検討するといいと思います。
技術ブログを自作するデメリット
反対に、技術ブログを自作するデメリットは次の5つがあります。
- 運用コストがかかる
- 記事の更新方法が手間
- 費用がかかる
- セキュリティを担保する必要がある
- SEOの知識がいる
技術ブログを自作すると、言語・フレームワークやそれに依存するライブラリをアップデートする必要が出てきます。技術的な挑戦という意味で開発中はいいですが、いざメンテナンスするとなると面倒だったりします。これはブログの更新が止まってしまう大きな要因のひとつです。
また、実装方法によりますが、ブログサービスやWordPressより記事を更新する方法が手間になりがちです。更新のUXが徹底的に考えられているブログサービスなどに比べると、自作のシステムは記事の更新がわずらわしくなりがちで、これもブログの継続という意味ではデメリットになります。
ブログの自作は費用もかかってきます。例えばRuby on Railsのようなアプリケーションサーバ・データベースが必要な技術構成だと、個人としては大きな費用がかかります。コストを抑えようとすると、今度はパフォーマンスが下がってしまいます。今後数年、数十年と運営することを考えると、コスト面もしっかり検討したいです。
セキュリティの担保も必要です。データの更新部分も自作する場合、セキュリティの知識がないと攻撃を受けることにつながります。ただ、裏を返すとセキュリティのスキルを高めるための学習材料にもなります。いずれにしてもリスクがあるということは頭に入れておきたいです。
最後に、SEOの知識が必要になります。技術ブログは性質上ほとんどが検索流入になります。ただ、記事を公開しただけでは検索エンジンの流入はふえづらいです。これはHTML・内部リンクなどの最適化が必要になるためです。ここに技術的な興味をもって取り組めるならいいですが、興味がないとつらいです。また、検索流入の必要がないなら問題にはなりません。
技術ブログにおける技術選定
上述の通り、技術ブログは「ブログを継続する」という意味だと一番ハードルの高い選択肢です。元も子もないですが、あまり継続のことは考えず、成長・興味という点で好きなように作るといいと考えています。各技術については、例えば次のような選択肢が考えられます。
項目 | 内容 |
---|---|
言語 | Ruby, Node.js, Go, Python, PHP |
フレームワーク | Ruby on Rails, Django, Laravel |
データベース | RDM, Headless CMS (Contentful, microCMS) |
サーバー | AWS, Heroku, Vercel, Netlify |
体験談:本ブログの場合
このブログはNext.jsとContentfulで開発していて、言語としてはTypeScriptを採用しています。この背景は技術的な興味で、単純に次のことが理由です。
- Next.jsでプロダクトを開発してみたかった
- TypeScriptのスキルを習得したかった
- Headless CMSを導入してみたかった
私は過去にRailsで技術ブログを作り、1年以上運用したことがあります。管理画面も自分で作りましたが、とにかく記事の更新が面倒でした。ライブラリのアップデートへの追随も面倒で、維持費を抑えた結果パフォーマンスもわるくなりました。
自作ブログにおいて、継続することを前提にするなら、記事の管理のしやすさ・維持費・表示パフォーマンスは大切だと思っています。Next.jsとContentfulならこの点をクリアできるということもあり、採用にいたりました。
技術ブログを継続するモチベーションという意味でも、個人的には問題になっていません。たくさんの方に読んでいただいて、ブログを始めてからTwitterのフォロワーもふえ、コメントをもらうこともあります。
広告を貼ることで収入も生まれつつあります。技術ブログにかける時間をかなりとっているので、自作という選択肢は間違っていなかったと思っています。
もし技術ブログを継続する前提で、時間をあまりかけることを考慮していないなら、ブログサービスやWordPressを採用する方がいいと思います。技術ブログについては、作り方を次の記事で詳しく書いていますので、参考にしてみてください。