kentcdodds.comがGPLv3だが本人がRemix作者の一人なので派生コードがMITで配布されている話
kentcdodds.comみたいなサイトが作りたい
これは2022年4月14日現在Remixで作られた中で最大のWebサイト、https://kentcdodds.com/ のリポジトリである。
Kentさんは個人サイトっていうレベルじゃないマルチリージョンなデプロイをしており、この記事を読む限りでは6個のリージョンにNode・Postgres・Redisが配置されている。「ただ個人サイトを作るだけなら参考にするな」と書かれている通り、この構成は個人HP作成にしてはオーバーエンジニアリングである。
- TypeScript
- ESLint
- Postgres + Prisma
- Jest
- Cypress
- MDXをパースしてRedisにキャッシュ
- マジックリングによるログイン
- Discordとのアカウント連携
という機能が揃った素晴らしいリポジトリなのだが...
GPL v3で「非商用only」というライセンスとなっている。個人のWebサイトなんだから仕方ない。
が、どうしても同じような構造のサイトを商用利用可能な状態で作りたい場合、どうすればいいのか?
答えはブルース・スタックである。
Blues Stackとは
メインのContributorがKentさんだし、実質的にkentcdodds.comの骨組み部分みたいな状態になっている。
なお、元は「Fly Stack」と名付けられていたらしく、その名の通りFly.ioへのデプロイが前提となっている。
ちなみにRemixのチュートリアルではIndie Stackが使われている
しまった。テーマ切り替えが分からない
左がKentさんのコード、右がそれを解説しているMattさんのコードだが、ちょっといじっただけなのでGPLv3の改変の範囲内であり、これは使えない。
が、MattさんがRemix本体のexamplesにPRして、この改良版コードを追加している。
で、これをKentさんが承認しているため、いよいよ元のGPLライセンスの意義が分からなくなってきた。
// hi there dear reader 👋
// this is how I make certain we avoid a flash of the wrong theme.
このコメントは「kentcdodds.comの読者」を想定して書かれたが、ここでは文章がほぼそのまま「Remixのチュートリアルの読者」に向けたコメントになっている。
推測
Kentさんはワークショップ用に教材系リポジトリを大量に保持しており、サイトのライセンスと同様の文章が使われている。
つまり、kentcdodds.comはKentさんの他の教材系リポジトリのライセンスをそのまま使いまわした結果GPL v3になっている が、Remix黎明期のexampleとして重要な役目を果たしており、本人が派生コードをMITで再配布している、という結論でいいだろう。
つまり、Stackにないものは公式のexampleを参照すればいいということだ(もちろん利用時にはMITライセンスとして著作権表記を忘れてはいけない)。
もっとも、2022年4月14日現在Stackにライセンスが明記されていないのが気になるが...