DjangoBrothers BLOG ✍️

2024/02/24

このエントリーをはてなブックマークに追加
Python Django

Pythonでブログが書けるCMS 「Sparrow」がとても良い

この記事ではDjangoでブログサイトが作れるSparrowというアプリを紹介します。

当サイトでは久しぶりの記事更新となりましたが、長らく記事を更新しなかった理由は「当サイトとは別のブログサイト」を立ち上げ、今はそちらを中心に更新しているからです。

最初は当サイトではPython/Djangoのことを書いて、新サイトではそれ以外のトピックを扱おうと考えていました。しかし、新サイトで使用しているCMS「Sparrow」の使い勝手が非常に優れているため、結局は全ての記事を新サイトで執筆してしまっています。

Sparrowは当サイトのユーザー様とも親和性の高いプロダクトだと思いましたので、この記事ではSparrowについて紹介します。

Sparrowとは

詳しくは公式サイトを参照して頂ければと思いますが、簡単にSparrowについて説明します。

Sparrowは CMSを作れるDjangoアプリ です。購入するとソースコードをダウンロードできるので、それを自分のDjangoプロジェクトにインストールするだけでCMS機能が使えるようになり、すぐにブログを書けるようになります。

設定手順としては、pip installしてアプリをINSTALLED_APPSに追加して...というDjangoユーザーにとってはお馴染みの流れです。初期設定についての説明はこちらで、これ通りにポチポチ設定していくとブログが立ち上がります。

公式サイト自体がSparrowのデモサイトを兼ねているので、初期のデザインは公式サイトと同様のものとなりますが、見た目や機能はカスタマイズすることが可能です。

DjangoBrothersのブログ管理機能について

そもそもですが、当サイトはWordPressなどのCMSは使っておらずブログ管理に必要な機能は自分で実装した経緯があります。 記事の作成・編集はDjangoの管理画面から行えるようにしています。Markdown形式で書けるようにはしてるものの、自作した分使い勝手はかなり悪く、記事の管理にはとても手間が掛かっています。

例えば、画像を貼るときはアップロード画面から画像をアップロードして発行された画像URLを編集画面にコピペする、といったことをしなければなりません。また、コードブロックを表示したいときもなかなか独特の記法で書かなければいけません。

↓ 当サイトの記事執筆画面。

あとは間違えて執筆途中でブラウザを閉じてしまうと、確認メッセージも出ずにそこまでの内容が全て失われてしまうというCMSとしてはかなり微妙なものとなっています。。この辺の悩みをSparrowがまるっと解決してくれるので大変助かっています。

ブログを持つ重要性

今のタイミングでブログを始めることに懐疑的な人もいるかもしれませんが、私はエンジニアがブログを運営するメリットは計り知れないものがあると思っています。

私自身、当サイトでブログを書いてきたことで数々の恩恵を受けてきました。ブログサイトを運営するのには以下のようなメリットがあると感じています。

知識が深まる、定着する

技術的な記事を公開するということは、当然その知識について自分でしっかりと理解して人に説明できる状態にならないといけません。「人に説明できる状態」になる過程で多くのことを学べたり、その知識がしっかり自分のものとして定着していきます。ただただインプットするのと、世にアウトプットするのでは記憶への残り方が段違いです。

また、アウトプットの場があることでインプットへのモチベーション意欲が高まります。ブログを更新していない日々が続くと、最近新しいことを学ぶ機会が少なくなっていることが可視化されるのも良い点です。

就職・転職に使える

技術ブログはそれ自体が自分の技術力のアピールとなり、転職時のポートフォリオとしても使えます。私は転職面談時に当サイトを運営していることを伝え、それが評価されたことで当時一番行きたかった会社に転職することができました。周りにもブログを書いていたことが就職に有利に働いたというエンジニアさんがたくさんいます。

技術力の向上

ブログを執筆するには、ZennやQiitaなどのプラットフォームを利用する手段もありますが、エンジニアであれば自身でウェブサイトを構築し、運営していくことがおすすめです。サイトを段階的に改良していくプロセスで、技術的なスキル向上が期待できるからです。私自身の経験としては、DBのバックアップ処理を怠ってしまい、データを一度失った経験や、キャッシュシステムの導入によって表示速度が著しく向上した経験などがありますが、こういったミスや成功体験がエンジニアとしての成長に繋がったと感じています。こういった経験はブログ以外のWEBサービスの開発でも得られると思いますが、自分用のブログというのは技術的に色々と挑戦しやすい環境なのでおすすめです。

ユーザーから得られるフィードバック

積極的に発信していると、読者の方から嬉しいフィードバックを頂けることがあります。特に当サイトを立ち上げた頃はDjangoに関する情報が少なかったのでお礼のメールをたくさん頂けたりもしました。また、間違いを指摘して頂けることもあるのでそれだけ学びの機会が増えます。

採用、仕事募集への活用

ある程度ブログにアクセスが集まるようになると、採用や開発案件の募集などのビジネスにも活用することができます。私の場合は、自分が運営するプロジェクトでエンジニアが必要になった際に当サイトで募集記事を出してエンジニアを採用することができました。通常、エンジニアを採用しようとした場合は紹介サイトに相当のお金を支払わなければいけないのですが、採用コストを大幅に抑えることができました。

Sparrowを使う利点

新ブログを始めるにあたっては、何かしらのCMSを使いたいと思っていました。

CMSの最初の候補としてはWordPressが上がると思いますが、WordPressは使いたくありませんでした。何度か必要に迫られて使用したことがありますが、慣れていないPHPを触るのに抵抗があったり、管理画面の使い勝手が悪くとてもストレスフルでしたのですぐ選択肢から外しました。

Python製のCMSを調べたところ、Wagtaildjango CMSMezzanineが候補として上がりました。ダントツでWagtailが良さそうだったので、初めはWagtailでCMSを作ろうとしたのですがなかなか開発が大変で挫折してしまいました。そこで、Wagtailを使う過程で知ったSparrowを購入することにしました。

Sparrowを使っていてメリットを感じるのは以下のような点です。

Python製のCMS

1つ目のメリットはなんといってもSparrowがPythonで作られており、Djangoアプリで提供されているという点です。最も馴染みがある & 好きな言語なのでストレスなく扱えるというのはとても嬉しいです。 Sparrowでは見た目やページ構造をカスタムができるのですが、これをPythonコードで対応出来ます。CMSを使う際は執筆以外のところでなるべく時間を使いたくないので、慣れてる言語で扱えるのはありがたいです。ローカル環境で動かすときや、デプロイするときも普段利用しているDjango案件と同じ要領で扱えるので余計なストレスが掛からないです。

使いやすいエディタ

エディタの使いやすさは記事の更新頻度に直結する重要な要素です。Sparrowはエディタに特徴があります。Wagtailの「ブロック」というのを組み合わせて作られたエディタなのですが、これがサクサクと記事を書けるので気に入っています。(当サイトのエディタとは比較にならない便利さで感動しています。)

↓ Sparrowのエディタ

エディタの詳細は公式サイトで解説されています。

CMSに必要な機能が一通り揃ってる & 日本語に対応してる

一度自分でCMSを作ってみようと思ったのですが、CMSに必要な機能はかなり多く、自分で完成させるのは無理という結論になりました。(時間とやる気がある人はCMSを自作できたらそれが1番なのですがほとんどの人は挫折すると思います。) Sparrowは通常のDjangoアプリと同様に pip install でインストールして、ちょっと設定を追加すればすぐに記事が書ける状態になるのでとても便利です。

また、日本語でサイト管理しやすいように対応されているのが良いです。puputというWagtailベースの無料で使えるCMSがあるのですがこれだとちょっと物足りなく感じました。Sparrowの場合は問い合わせも日本語で出来ますし、長い期間に渡ってずっと使えるものなので購入する価値はあったなと思います。

Wagtailベース

SparrowはWagtailというCMSライブラリをベースに作られています。なので、カスタマイズしたい場合はWagtailの仕様に沿ってカスタマイズすることになります。

Python製のCMSライブラリはいくつかあるのですが、おそらくWagtailが最もメジャーかと思います。開発もすごい勢いで行われており、どんどんバージョンアップされていきます。Slackでの交流も活発です。人気がある分、ドキュメントが充実していたり調べた時の情報量が多いのが良いなと感じています。

最後に

ブログを書いていきたいPythonユーザーの方にとって、Sparrowは有力な選択肢となると思います。爆速でブログが構築でき、Pythonコードで自分好みにがっつりカスタマイズしていけるのも魅力です。

私は、今後も基本的には新サイトでのブログ更新となると思いますが、まだまだ当サイトにアクセスしてくださる方も多く、思い入れのあるサイトではあるので、たまにこちらでも記事は更新していこうと思います。(Sparrowは既存のDjangoプロジェクトに組み込むこともできるので、当サイトに導入することも可能なのですが、過去記事のデータ移行が少し億劫なので今のところその対応は保留中です。)