2022/3/22公開
2022/3/24更新
無料で作る!Next.js × tailwindcss × microCMS × Netlifyでアフィリエイト可能なJamstackブログの開発【目的・技術選定編】
こんにちはJUNYAです。
今回は、Next.jsを使用し開発したこのブログ「JUNBLOG.」についての記事になります。
開発に至った経緯、技術選定についてお話ししたいと思います。今後、Jamstackなブログって無料で公開できるの?アフィリエイトは可能なの?という方の参考になれれば幸いです。
結論:無料でJamstackなブログ(アフィリエイト可)は作れます!
Jamstackなブログは無料で公開できます。そして無料範囲でアフィリエイトを含む営利目的の運営も可能です。
Jamstackなブログは簡単に言うと、事前にページを生成しそれを表示する仕組みなので、サクサクとページを表示することができます。WordPressを代表とするCMSサイトと比べると表示速度は一目瞭然。ページリロードに2秒以上かかると離脱率があがると言われているので、この点でもWeb運用には、とてもメリットのある技術であることがわかります。また、直接サーバーを介さずCDNが静的なページを返すだけで表示が可能ですので、セキュリティ面の強さも人気の一つです。今回はメリットだらけのjamstackで「無料」そして「営利目的も可能」なJUNBLOG.を開発しました。
なぜブログを作ったのか?
過去にWordPressでブログを作ったことがありました。WordPressを習得することが目的で、それは達成できたのですが、肝心の記事を書くということに興味が湧かず、1年間でサーバーを解約し終了した経験があります。久しぶりにブログを作るに至った経緯を書きたいと思います。
技術的な興味
今後Web開発をしていく上で、ライブラリであるReact.jsの基本概念に惹かれ日々習得に励んでいます。更に爆速で表示ができると評判のReact.jsをベースとしたフレームワークNext.jsを使用した自分のブログが欲しい!と思ったのがきっかけです。
CSSについては、「React.js関連で最適なCSSは何がいいのか論争」に自分の中での解としてtailwindcssがいいのでは?と思い今回初めて導入してみました。その他にもヘッドレスCMSでは国産のmicroCMS、ホスティングサービスにはnetlifyを使用した開発に技術的な興味があったことが一つ目です。
モチベーション
知識の整理
今回は以前と違い、知識の整理のためのアウトプットを増やすという目的をもっています。一番のアウトプットは、開発を行い成果物を作るだけではなく、+1のアウトプットとしてブログが効果的。記事にすることで、習得した技術を体系的に整理することが目的の一つです。
情報発信欲
普段プログラミングの知識のほぼ全てを、インターネットから得ている自分としては、色々な方が日々発信している情報にとても感謝しています。このブログを開発するのにも、様々な記事を参考にさせていただきました。自分もそうだったように、少しでも誰かの役にたちたいという欲が出てきたのがもう一つの目的です。
技術スタック
基準
選定の基準としては、Jamstackな構成であること。後に収益性が出てきた際も対応できるように、アフィリエイトを含む営利目的の運営が可能なこと。
そして費用については、初期段階ではお金をかけずに運営でき、規模に応じて有料化できる構成であることを重要視しています。
構成
先程も少し触れましたが、JUNBLOG.を開発した技術構成は以下のとおりです。
- Next.js...フレームワーク
- taiwindcss...スタイル
- microCMS...ヘッドレスCMS
- Netlify...ホスティングサービス
それではひとつづつ説明します。
Next.js
React.jsが好きな私は、使わずにはいられないフレームワーク。Next.jsは基本的には全てのページをPre-renderingするため、爆速で表示することが可能になります。簡単にいうと開発にはReact.js(JavaScript)を使用するけど、クライアント側では静的なhtmlサイトとして表示されるため爆速で表示されるということでしょうか。この「爆速で表示」というユーザビリティに富んだ言葉に惹かれNext.jsを選定しました。TypeScriptを使用しています。
tailwindcss
React.js周りの技術を使用する際、CSSをどのように記述するかということに明確な答えを出せずにいました。
CSS in JS がいいのか、CSS modules を使用するのがいいのか色々開発しながら試行錯誤していました。
詳しく書くと長くなるので別の機会に記事にしたいと思いますが、結果自分の中では、tailwindcssは今のところの最適解となりました。今後もReact.js周りには積極的に採用していきたいです。静的なWebサイトやWordPressサイトなんかには向かないと思いますが・・・(今のところ採用する理由が見つからないです)
microCMS
Jamstackな構成で必要になるのが、ヘッドレスCMS。そのほとんどが海外製の中、microCMSさんは日本製。使いやすいUIと何よりも安心な日本語ドキュメント。
もちろん今回の選定基準である無料で使用できるという条件も完璧にクリアです。
無料の範囲が
1.無制限のAPIの呼び出し
2.最大3人のメンバー
3.最大3個のAPI
と個人ブログでは全く問題のない構成。
高い頻度で更新されるブログやyoutubeで「ジャムジャム!!jamstack」などのイベントも開催されていて、今後も期待値の高いヘッドレスCMSです。今回は無料範囲での使用させていただいていますが、規模が大きくなればAPIを増やし機能を充実していくためグレードアップも考えています。また、UIがわかりやすくWordPressで運用できている企業様であれば、難なく使えると思うので、今後企業案件にも積極的に採用できそうです。
Netlify
ホスティングサービスはNext.jsの開発元でもあるVercelにしたいところでした。しかし、無料であるVercelのHobby planはnon-commercialとあり、営利目的は範囲外。Netlifyの無料枠であるStarterは営利目的に関する事項の記載はなく、無料で運営できるということが選定理由です。実際はNext.jsとの相性はどうか心配でしたが、現在はNetlifyもNext.jsにしっかり対応していて、Vercelほどではないにしても、簡単な設定でデプロイすることができました。初期段階は無料で試験的な運用ができるサービスとして今回はNelifyを一択でした。
構成のまとめ
いかがでしたでしょうか?Next.jsは今後も更なる。tailwindcssも今回使用した感じNext.jsやReact.jsを使用する開発に、私自身一つの解を見出せました。またヘッドレスCMSやホスティングサービスは、他のサービスがたくさんあります。しかし無料で営利目的可能ということであれば、今回の構成が参考になるのではないでしょうか?
ブログを作ってみて
今回は比較的新しい技術で開発することができ、とても楽しく作ることができました。
どちらかというと時間がかかったのは、ブログ記事を用意すること。(公開時にたった2記事なのに・・・)
文章力の必要性を痛感しました。
Next.jsで開発されたブログは、本当に爆速での表示が可能です。これは、ユーザー体験に影響を与えるものになります。
React.jsは学習コストはそれなりにかかるものの、一度概念を理解すればさまざまなモダンな技術に応用できます。Next.jsもその一つになります。まだReact.jsの学習したことがない方は、是非やってみてください。わからないことがあれば、できる範囲でお答えします。是非Contact(お問い合わせ入力フォーム)もしくは、TwitterのDMで気軽にご相談ください。React.jsを始めモダンな技術を一緒に学んでいき、Webをより良い世界にしていきましょう!
おわりに
今回は、ブログはじめの挨拶として、ブログを始めた理由と技術選定についてのお話しとなりました。
JUNBLOG.の制作にあたっては、Netlify Functionsでめちゃくちゃハマったことや技術的な記事などは今後アップする予定でいます。
記事などご意見、お仕事の依頼などありましたら、Contact(お問い合わせ入力フォーム)又はTwitterのDMよりお気軽にお問い合わせください。
今後もなるべく高い頻度で有益な情報を発信していくつもりですので、また遊びに来ていただければ嬉しいです。
Web開発