ユーザージェネレーテッドかどうか
YES → SSR
NO
↓
ページ数が多くそれぞれのページのSEOを気にするか
YES → SSG
NO
↓
SPA
動作が早いがデプロイ環境がnode.jsサーバーがホスティングされている必要がある。firebase hostingを利用すれば無料で環境を構築できなくもないがやや面倒。私はロリポップマネージドクラウドを利用している。
ユーザージェネレーテッドなWebアプリをJAMStack構成でやる場合、ページ数合計100ページくらいだと、Github Actionの無料枠2000分のビルドから逆算すると多くても150回程度しかCIを回せない。
そんなにページ数がない、そんなにCIを回さないのであれば可能だが、ユーザー投稿後ページとして出来上がるまでのダウンタイムはやはり無視できない
基本はSSG+github actionでJAMStack構成でやっていきたい。SSGであればhosting先はgithub pagesでもいいので、ドメインさえ気にしなければ無料でできてしまう
SSGを諦める理由としては、上記ユーザージェネレーテッドコンテンツの存在が大きい。
投稿者がコントロール可能なWebメディアなんかはJAMStackが最適だと思う。出力された静的ファイルをCDNでホストすれば爆速になると思う。
ただ課題もあって、1000件をこすようなコンテンツ量であればCIのコストがかかるだろうし、都度デプロイで静的サイトを足していく方法では、CIによっては過去ビルドはリフレッシュされてしまう使用のものも少なくないので気をつけたい。またJAMStackの特性として特定時間に公開といった処理は難しいのでそういった用途では選択を避けたい
これは正直選びどころがわからない。サーバーで動作させたくないライブラリを利用している場合(そんなときSSGでもprocess.clientで絞ればいいが。。。)とかはSPAにしとくと楽かもしれない。
やったことはないが、限られたページかつ、流入がトップからがほとんどなネイティブアプリに近いような作りで、PWAやelectronでネイティブで動作するようにし、ばらまく前提で作っているようなアプリはSPAで開発してPWAでストアにアップすることがおすすめかも知れない。
反Apple信者の私が移動用のメインマシンをiPad Pro(第5世代) 12.9インチに変えてからしばらく経ったので現在の構成を紹介
2022年8月9日(火) 15時27分41秒 | 918 viewPlayCanvasのOrbit-cameraを制御して指定位置にカメラを移動させる
2023年2月27日(月) 10時7分43秒 | 300 viewグリグリリック 開発秘話
2020年12月8日(火) 4時30分37秒 | 161 viewactions-js/push@masterでのデフォルトブランチがmasterからmainに変わっていてCIが動かなくなっていた
2021年8月30日(月) 8時49分10秒 | 74 view健康生活
2020年11月5日(木) 14時57分32秒 | 12 view