为每个用户动态生成一个网站。使用 Gatsby 产生一个好主意吗?

Dynamically generating a website for each user. Is using Gatsby to generate a good idea?

我正在创建一个网站,每个用户都将创建一个个人网站 site/book。将有许多可重复使用的内容,有些将基于用户的输入。

现在我正在弄清楚我将在 JSON 中整理用户输入,并将使用这些输入生成一个使用 Gatsby 的站点。但是,为每个用户生成静态站点对我来说似乎不是一个好主意。我应该使用 Gatsby 还是应该使用普通的 reactjs 来显示内容?

欢迎提出任何想法?

这个问题是基于意见的,在很大程度上取决于你的具体需求,所以我会尽量保持笼统,并通过列出不好的方面和一些好的方面来给你选择最佳方法的方法。

基本上静态网站在内容变化时生成成本高,但查阅起来很轻松。因此,如果更改的时间确实有限(例如,仅当管理员更改某些配置时),使用 gatsby 可能是个好主意。

鉴于 gatsby 生成网站所花费的时间,您是否希望您的用户等待那么久才能在线看到他们的更改?如果不是,那么您是否准备好在每次有人进入管理区域时启动 gatsby 的开发实例?您准备好确保这样做不会引入远程代码执行的安全漏洞了吗?

谈到安全性,gatsby 生成一点也不安全,因为它只会执行您提供给它的任何代码。您准备好限制用户输入以避免这种情况了吗?您准备好部署确保每个客户的发电安全所需的基础设施了吗?

从好的方面来说,一旦生成,您将只托管静态网站,具有真正快速的用户体验、简单的负载平衡和非常简单的基础架构的所有好处。它可以成为您服务的主要卖点。

另一个好处是,您可以将用于生成网站的基础设施(一个构建器实例和一个管理实例)与为它们提供服务(一个或多个静态实例)完全分开。安全性更容易,因为您可以将三个部分之间的要求分开,并且只需传递 json/html 个文件。