与 Marcy Sutton 一起粉碎播客第 20 集:什么是盖茨比?
已发表: 2022-03-10今天,我们谈论的是盖茨比。 它是什么以及它如何适合您的 Web 开发堆栈? 德鲁麦克莱伦与专家马西萨顿交谈以找出答案。
显示注释
- 盖茨比
- 马西在推特上
- 马西的个人网站
每周更新
- “在 Google 的帮助下让您的网站快速、可访问且安全”
迪翁·阿尔马尔 - “了解 Gatsby 中的插件开发”
由 Aleem Isiaka - “使用 Tauri 和 Vue.js 创建微型桌面应用程序”
开尔文·奥默雷肖内 - “消除电子商务运输和库存警报的恐慌”
苏珊娜·斯卡卡 - “Vuejs 和 Nuxtjs 中的 CSS 转换”
蒂米·奥莫耶尼
成绩单
Drew McLellan:她是 Gatsby 开发者关系团队的首席工程师。 此前,她从事开源 axe-core 可访问性测试库的工作,还曾在 Adobe 担任可访问性工程师。 她热衷于为残障人士改进网络,并经常在会议上谈论它。 2016 年,O'Reilly 因其在可访问性方面的工作而授予她的网络平台奖。
德鲁:她还共同领导了当地的无障碍西雅图和西北科技女性聚会。 因此,我们知道她是一位熟练的工程师和无障碍专家。 但你知道她想把天使瀑布装在桶里吗? 我的好朋友请欢迎 Marcy Sutton。
马西·萨顿:你好。
德鲁:你好。 马西。 你好吗?
龙美诗:我要崩溃了。 你好吗?
德鲁:我很好。 谢谢你。 我今天想和你谈谈盖茨比。 因为它出现在我上一集关于与 Mina Markham 学习 React 的对话中。 我意识到我有危险在互联网上做一个典型的人,对我没有直接经验的事情发表意见。 所以这不是我们在 Smashing 做事的方式。
德鲁:我想确保我们正确地报道了盖茨比。 有什么比和一个从内到外都知道的人交谈更好的方法呢。 所以,假设我可能听说过盖茨比这个名字。 但是我不知道在构建网站时它适合堆栈的位置。 盖茨比到底是什么。
龙美诗: Gatsby 是一个网站生成器,它目前使用 React。 但它会为你创建一个静态网站,然后再合成一个完整的 React Web 应用程序。 因此,您确实可以通过快速构建获得两全其美的效果,您正在编译的 HTML 文件将为用户快速加载。 然后,您可以使用 JavaScript 获得所有这些增强功能,从而制作真正交互式的动态 Web 应用程序。
龙美诗:所以,进入这个领域真的很令人兴奋。我一直在学习文档方面的工作,现在在 Devrel 团队,我专注于让它尽可能好,了解 JavaScript 的可访问性挑战并试图从内到外修复它。
Drew:我想我们中的许多人都会熟悉静态站点生成器的概念。 盖茨比似乎很适合这个角色。 但对我来说,它似乎比大多数 SSG 做得更进一步。 大多数站点生成器都与前端代码无关。 似乎在使用 Gatsby 时,您最终会将 Gatsby 代码作为您网站的一部分运行。 这是一个公平的评价吗? 如果是这样,Gatsby 在你的前端实际上做了什么样的事情?
龙美诗:是的,我想说其中最大的部分是客户端路由。 所以,盖茨比现在正在使用引擎盖下的到达路由器。 它有自己的实现方式。 但这就是当您第一次加载静态站点时,那里有 HTML 文件。 因此,如果用户出于某种原因关闭了 JavaScript,您的网站应该仍然存在,仍然有内容。
龙美诗:但是如果启用了 JavaScript,那么当你在 Gatsby 网站中使用链接时,就会发生这种水合步骤,它会从该页面预取资源,因此加载速度会更快。 所以,这一切都是通过 Gatsby 提供的 JavaScript 层实现的。 因此,除此之外,它实际上取决于您在网站中使用的内容最终会出现在那个 JavaScript 包中。
龙美诗:但对于那些需要大量交互性的东西,比如可访问的界面,那是个不错的地方。 对我来说,我真的很喜欢随时使用 JavaScript,并且让我的标记处于一个好位置。 我知道这是一个偏好问题,无论您是否希望您的 HTML、JavaScript 和 CSS 都整齐地耦合,并且在构建 Gatsby 中存在变化的空间
龙美诗:你不必总是使用 CSS 和 JS 之类的东西。 但这实际上是关于获得动态 JavaScript 层的强大功能,在您编写网站时可供您使用。 它不像这个添加在单独的文件中。
Drew:当我想到静态站点生成器通常如何工作时,我想到的可能是 Markdown 文件中的内容。 生成器会运行该内容并将其与模板合并,并创建数十个、数百个、数千个 HTML 文件,这些文件是您网站的页面。 当我想到一个 React 站点或应用程序时,我更多地考虑的是单页体验,其中界面由 React 动态创建。 所以,你是说盖茨比两者都做? 它正在创建所有页面并使用 JavaScript 对其进行增强?
龙美诗:是的,是的。 Gatsby 将在构建时使用 Node.js,它会检查你的 React 组件并将它们编译成 HTML 文件。 老实说,当我第一次看 Gatsby 时,我并没有关闭 JavaScript,而是说,“好吧,这里还有其他页面吗,这是什么?” 我很高兴 Gatsby 默认就是这样工作的。 它将从你的 react 组件创建构建文件,这很棒。
龙美诗:我已经探索了更多的渐进式增强方法,因为它是在 JavaScript 中的。 就像你想为用户输出一些逐渐增强的东西,如果他们确实关闭了 JavaScript,你不希望所有这些假设 JavaScript 存在的损坏代码。 所以它有一些怪癖。 但是您至少可以针对您希望某人仍然能够购买东西的核心用户流解决这种问题,您可能需要添加一些支持并针对这些用例。
龙美诗:但我对盖茨比默认推出的方式感到惊喜。 因此,他们以这种方式构建网站是他们做出的选择,我们一直在评估它。 它仍然是最好的方法吗? 我们需要做些什么来为我们的用户提供他们所要求的东西? 因此,我们在内部进行了一些探索,继续进行只是为了确保 Gatsby 在构建网站方面做得最好。
龙美诗:所以保持包的大小很小,并确保为了权衡我们所说的具有预取功能的高性能代码。 比如,我们有数据支持吗? 作为开发人员倡导者,我对这种事情非常感兴趣,确保我们在网站上打包和捆绑的东西确实是需要的,并且真的会成为它可以制作的最好的 Gatsby 网站。
德鲁:你在那里提到了性能,并且非常关注性能。 从盖茨比呈现自己的方式看来,这当然是肯定的。 这是 Gatsby 的真正特征还是只是 JAMstack 网站的本质?
龙美诗:我认为这可能是 JAMstack 网站的特性。 最终,这将取决于您在网站上捆绑的内容。 因此,无论您使用什么框架或工具,我们仍然必须考虑为最终用户在这些捆绑包中添加的内容。 但盖茨比真的旨在为您提供良好的默认值。 不仅是为了性能,也是为了可访问性。
龙美诗:但这总是需要评估,我们总是必须确保如果我们添加了一些东西,它仍然是高性能的。 但是,是的,获取静态文件的初始有效负载,它们加载速度很快。 比我以前拥有的经典 WordPress 网站快得多。 但随后使用 JavaScript 对其进行了增强。 肯定有一些权衡。
龙美诗:但它真的很有效,很多人,他们真的很喜欢他们的 Gatsby 网站。 因此,全职工作并了解像 Gatsby 这样的 JavaScript 框架的来龙去脉是很有趣的。
德鲁: Gatsby 实际采用了哪些性能特性来加速您的网站?
龙美诗:嗯,对于链接的预取,这个客户说路由的东西,我会说这可能是最大的一个。 使生成渐进式 Web 应用程序变得非常容易。 因此,拥有一些离线功能,您可以根据离线和 PWA 类型的内容来挑选您想要的内容。 但他们确实使这部分成为最初体验的一部分,就像您可能开始的许多入门示例网站都有使用清单的示例,以及制作您网站的现代版本。
龙美诗:真的,这就像不发送你不需要的代码一样。 这是其中很大一部分。 缓存,这实际上是链接的预取。 这就是我要说的最大的一部分。
德鲁:所以这就是网站实际预测用户要去哪里的地方。 它是否像那样智能,还是预先获取页面上的所有内容?
龙美诗:不,它基于用户交互。 因此,如果用户向下滚动查看端口,则会发生预取。 如果您将鼠标悬停在链接上,它会估计您很有可能会转到该页面。 我们一直在内部讨论,好吧,我猜,关于预取是否也应该发生在键盘焦点上的开源,所以可访问性和性能的交叉点非常有趣。
龙美诗:这里有一些取舍,比如键盘用户不能使用鼠标并在每个链接中按标签进行导航,是否真的要为每个链接获取内容,因为鼠标用户可能更有选择性关于他们将鼠标光标放在哪里。 所以,我觉得这些对话非常有趣。
龙美诗:并尝试考虑我们还需要哪些数据来验证这些假设。 所以,是的,查看这些默认值以及我们可以进行哪些改进并真正检查获取的数据量是非常有趣的? 这真的是一件好事吗? 只是为了加快速度? 或者没有它是否足够快? 是否有替代解决方案可以作为框架工作乐趣的一部分,因为能够评估所有这些权衡。
Drew:这是预先获取用户在他们的网站上免费获得的东西。 那么他们是否必须做任何工作来实施它?
龙美诗:你确实可以通过 Gatsby 链接免费获得它。 所以它是 Gatsby 附带的一个组件,当你使用它时,它会输出锚标签。 因此,您的 HTML 是真正的 HTML,并且您已经以这种方式利用了 Web 平台。 但是在您的 React 组件中,您直接使用 Gatsby 链接组件。 这具有所有这些机制......它会查看您未来的 HREF 将是什么,对于您想要访问的那个链接,它会从那个链接获取资源并预加载它们。
龙美诗:而且它只在您的网站内部。 因此,它不会尝试在其他网站上获取内容。 但它似乎工作得很好。 我知道有些用户正在积极寻找方法,就像您实际上必须选择退出其中一些事情一样。 至少路由,不使用预取。 您只需使用常规锚标签。 然后你并没有真正得到那个功能。 使用其他东西非常容易。 但是我们正在进行的一些讨论是围绕客户端路由,以及如何使它成为最好的。 所以,这也是一个非常有趣的空间。
Drew:如果我想拥有自己的链接组件,你必须在 Gatsby 生态系统中的工作有多密切? 那完全没问题,我不会为了做那种事情而与盖茨比抗争?
龙美诗:不,你可以插入任何你想要的组件,只要它们与 React 运行时一起工作。 这就是它的美妙之处。 任何可以放入 React 应用程序的东西,都可以放入 Gatsby 应用程序。 甚至还有一个 pre-React 插件。 因此,与 Gatsby 合作有一些替代方案。 但我喜欢你可以使用任何你想要使用或编写自己的现成组件的方式。
龙美诗:我认为人们真正喜欢的是灵活性。 需要注意的是它使用了 React 运行时。 因此,您必须对使用 react 或使用这个 pre-React 插件感到满意。 但就我个人而言,我真的很喜欢 react 和 JSX 处理可访问性和模板,尤其是使用 React 钩子。 所以,能够在我的 Gatsby 网站上使用小屋真是太酷了。 我很喜欢。
Drew:构建 Gatsby 站点的过程是怎样的?大概是一个节点模块,您可以直接安装它,并且您会像使用任何其他静态站点生成器一样进行构建?
龙美诗:是的。 您可以全局安装一个 CLI。 我想这是您是否要在全球范围内安装它。 这就是我们的建议,因为这样您就可以从计算机上的任何目录运行它,但它会拉取您构建 Gatsby 站点所需的任何内容。 然后你可以添加,比如你想使用 WordPress 作为无头 CMS 或其他一些内容源。
龙美诗:您可以安装软件包、插件来使其工作,然后将其与您的站点集成。 还有一些启动器和主题可用于更快地启动和运行。 如果我想测试某些东西或快速启动一个站点以进行特定的集成,例如 Drupal 或 prismic 或任何 CMS 或电子商务解决方案或我想使用的东西,我会使用这些。
龙美诗:有很多例子。 因此,您并不总是通过反复试验来尝试找出答案,但您可以将这些构建块拼凑起来并创建……这就是我们所说的内容网格。 因此,您可以使用这些同类最佳的集成来创建网站,而不是,如果我有一个经典的 WordPress 网站,那么创作体验和与团队合作真的很棒。
龙美诗:但是前端有一些缺点,比如它在移动设备上的工作方式。 还有什么? 如果我想要一个电子商务解决方案? 我认为现在有些事情更容易做,但是能够选择你想要的任何一种最佳的身份验证解决方案,或者任何现代的东西,你就像,“我希望我可以使用它。 ” 使用 Gatsby,您可以将很多这些东西整合在一起,让这种内容网格化的构建方式非常令人耳目一新。
龙美诗:尤其是当您仍然可以使用像 WordPress 这样的集成并且仍然与团队合作时。 因此,我们对这种新的工作方式感到非常兴奋,您可以在其中选择您喜欢的所有技术,或者为您的团队工作的技术。
Drew: Gatsby 大力吹捧的一大特点是能够从各种不同来源提取数据或内容。 你提到了 WordPress 和 Drupal 之类的东西,以及你有什么。 传统上,如果我使用像 Jekyll 或 Eleventy 之类的东西,或者类似的东西,我需要自己连接它以与 API 交互,也许将内容拉下来并将其写入 Markdown 文件或 JSON 文件,然后让生成器工作与那些文件。
德鲁:所以这将是一个两步过程,可以使用类似源位的东西,我们在上一集中提到过这样的事情? 我是否正确理解 Gatsby 具有以其他静态站点生成器不具备的方式使用不同来源的本机能力?
龙美诗:我认为让 Gatsby 在这一领域真正强大的是它的 GraphQL 数据层和插件生态系统。 因此,很可能有人已经为您要构建的任何数据源编写了一个插件。 如果没有,可能有一些接近的东西。 但是使用 GraphQL,是它的底层工作。 使所有这些集成成为可能的层是使用 GraphQL。
龙美诗:所以,你可以加入很多可能性,我们也努力让编写插件变得容易。 因此,学习如何编写插件以及它创建的 AST 或抽象语法树以及了解所有这些如何工作真的很酷。 但是,是的,我想说,有很多现成的东西你可以拿起,而不必自己写,这非常棒。
龙美诗:很高兴能够灵活地引入降价。 假设您的开发人员想要编写他们的博客内容降价,但营销团队对此并不满意,您可以组合内容来源,并从多个地方获取它们。 我见过人们从其他 GitHub 存储库中采购东西,他们使用 get 插件以这种方式提取降价内容。 很大的灵活性。
Drew:我猜你可以选择编写自己的插件来从自定义数据源中提取数据。 假设您有一些遗留系统,并且您想在它的前面放置一个漂亮、闪亮的新网站。 您可以编写一个插件,以所需的任何格式获取数据并将其转换为比使用更大的东西吗?
龙美诗:你可以。 因此,插件可以实现这一点。 然后是在此之上的抽象,我们称之为盖茨比主题。 这些不仅是用户界面代码,还可以是 GraphQL 查询、设置插件的配置,所以它就像一个插件,使用方式捆绑在一起。 你可以在 NPM 上分发这些主题。
龙美诗:然后,他们的版本,你可以把它们拉进来。对于那些说你有多个 repo 并且你想把数据拉到其中的团队来说,整个 API 也很有趣,如果有相同的查询,那将是非常重复的在同一代码中的所有这些存储库中。 所以,把事情弄干一点,不要重复太多。 您可以使用这些称为主题的抽象来围绕启用该源插件的逻辑或代码进行分发。 因此,您可以在这些抽象层之上构建这些抽象层,我们听说团队现在真的从中得到了很多。
德鲁:所以盖茨比世界中的主题不是像 WordPress 这样的 CMS 的外观和感觉。
龙美诗:是的,我的意思是,它可以,但还不止如此。 因此,命名事物是非常困难的。 但是我真的很喜欢学习关于灵活性和能够的主题,是的,你可以包含一些用户界面代码。 但是那里也可能有一些查询语言代码。 但事实上它是捆绑在一起的,因此很容易分发。 是的,这是一个非常简洁的抽象,看到人们正在构建什么以及他们正在发布什么主题以及所有这些都很棒。
德鲁:是的,我可以想象它会导致盖茨比的一些相当创新的用途。 你有没有看到什么,特别是让你注意到客户正在做这件事特别有创意?
龙美诗:是的。 好吧,就主题而言,我的意思是,我读到的第一个关于盖茨比博客的案例研究,我想来自阿波罗。 他们使用 Gatsby 主题编写了一个文档站点,并使用了获取源插件。 因此,它确实可以将您的采购和内容解耦,从而使团队可以引入一个主题以在多个存储库中使用。
龙美诗:我想说这对我来说是最有趣的,因为我可以想象它能够实现什么,就像我过去所在的团队必须获取内容一样,我们非常有限,代码可以在哪里存在以及可重复性如何它可能是。 所以,现在看到一个解决方案,团队就像,“哦,这很好用。” 那甚至是去年夏天,或者就像前一段时间的案例研究一样。
龙美诗:所以从那时起,API 一直在改进,并且有一整个团队致力于 Gatsby 主题。 而且我知道他们将在接下来的几周内推出一些重大改进。 所以,我不想抢走他们的风头,但主题中有一些巧妙的东西。 他们一直在彻底修改一些博客主题,例如我们从 Gatsby 提供的核心主题。
龙美诗:我知道他们在内部使用它来构建我们自己的一些产品公告,或者将在接下来的几周内在这里宣布的产品改进。 所以,很多很酷的东西都与盖茨比主题有关,人们出售自己的主题和开胃菜。 我觉得这也很有趣。
德鲁:盖茨比周围出现了一些市场。
龙美诗:有,是的。
Drew:如果有人想要的话,是否有任何形式的在线培训和类似的东西……如果有人决定他们真的要进入 Gatsby 并且他们需要快速学习它? 有没有可用的信息让他们可以去跑步的地方?
龙美诗:很多吗? 是的。 肯定有 Gatsby Doc 的网站,即 gatsbyjs.org/doc's。 我们有教程,我几乎每周都在为 Gatsby 的东西做直播。 有很多教育工作者在 YouTube 和各种学习平台上拥有 Gatsby 材料。 蛋头,我想我在盖茨比的一些队友也有蛋头视频。
龙美诗:所以,那里有很多东西。 如果你找到什么,我会说检查它的日期。 我们一直在积极更新 Gatsby Doc、一些较旧的第三方视频和可能会检查这些日期的内容,因为我们无法监控每个学习资源的更新。 很难跟上我们自己的员工。
龙美诗:因为有多少内容采购选项和用例。 这是一个非常广阔的空间。 但是那里有很多学习材料,还有很多入门方法,你可以尝试找到一些东西,比如取决于你在学习范围内的位置。 您是否处于起步阶段,您是否来自其他技术,您只需要了解 React 是什么。
龙美诗:你可以根据你所处的位置挑选适合你的材料。 我最近一直在通过名为 Gatsby Web Creators 的直播课程进行课程,我们从初学者 HTML、CSS 和 JavaScript 一直到创建我们的第一个 Gatsby 网站。 我们周五刚刚完成。 所以,从头到尾真的很好。
龙美诗:而且因为 Gatsby 的很多材料,它使用了 React。 因此,开始使用它是一个很大的飞跃。 所以,我真的很想回去并采取步骤,一路用 React 和 Gatsby 构建东西。 所以那真的很整洁。 我很高兴能继续走这条路,这样会有更多的初学者材料和更多的东西来帮助人们了解如何使用 Gatsby 构建网站,因为其中很多技能都可以移植到其他框架中。
Drew:对于任何正在考虑使用 Gatsby 构建某种客户项目网站的人来说,其中一个大问题将会出现,其中一个大问题是关于管理内容并将东西放在客户面前。 您已经提到了 Gatsby 如何连接到不同的内容管理系统。 这是您处理该问题的主要方法吗? 或者盖茨比在其生态系统中是否有任何东西可以让人们以任何方式编辑内容?
龙美诗:是的,我会说拥有 CMS 或其他东西可以使这些团队关系更好地工作。 我遇到过开发团队喜欢“学习 HTML”的用例。 你从客户那里看到了这种釉料,“不,我不敢相信你刚才这么说。” 因此,拥有一个人们可以以最适合他们的方式完成最佳工作的系统是非常非常重要的。
龙美诗:就像你无法处理营销商 GitHub,并且可能在某些时候工作,但不是一直工作。 因此,拥有类似的预览和构建基础设施会使情况变得更好,这就是 Gatsby 云产品空间进入竞争的地方。 有一些方法可以进行预览。 如果没有付费的云端,Gatsby 云确实为个人项目提供免费层,因此并非全部付费。
龙美诗:但是我们有这个,就像开源和产品生态系统一样,这样 Gatsby 可以作为一个创始组织,赚到足够的钱来保持开源框架,保持它的健康,并让我们的社区随之滚动. 所以,这就是开源商业方面的结合,真正实现了团队需要的一些工作流程。
龙美诗:一些事情,比如快速预览、快速构建和部署。 因此,有专门针对 Gatsby 云端的解决方案,然后无论有什么开源方式可以让 Gatsby 像使用预览服务器或其他东西一样工作,我们都会尝试记录它并确保我们的社区知道什么是什么以及如何去做满足这些团队的需求。
龙美诗:是的,我想说的是,您需要某种方式来预览您的 CMS 更改,因为这就像即时满足。 您不想等待一个小时才能看到一些内容。
德鲁:所以这很有趣。 Gatsby 云服务为您提供了使用无头 CMS 服务的能力,您只是在处理内容,但您无法直观地看到它在您的站点中的外观,使您能够预览该内容的效果会工作。 那正确吗?
龙美诗:是的,是的。 因此,它是解耦的一部分,你的无头 CMS,可能有,像 WordPress,你可以只查找前端,但我们给它一个新的前端,并可能引入其他来源以及 WordPress 不知道的其他事情。 因此,以这种方式将其解耦是有道理的。 但是,作为团队成员,您仍然必须能够以您很快习惯的速度完成工作。
龙美诗:所以,这就是 Gatsby 预览的地方,Gatsby 构建的目的是将前端交还给团队,以便他们可以协作、做出决策、交付一些东西。 因此,这在去年如雨后春笋般涌现,一直在获得更多功能和改进,我们从一些团队那里听说,他们真的开始看到速度提高了。
龙美诗:正如我们发现的那样,“好吧,如果这个构建进展缓慢,那是为什么呢?” 这通常是因为该网站非常非常大。 因此,我们一直非常关注大型网站的改进,并真正改进这些团队协作工作流程。 这是团队现在的一个重点。
Drew:所以 Gatsby 云是,我猜它的核心是托管服务。 它是用于部署 Gatsby 站点的 CDN,其中包含大量 Gatsby 特定功能和特性吗?
龙美诗:我认为它更像是一种持续交付产品,因为它不是真正的 CDN。 它与 Fastly、Netlify 等 CDN 集成。 您可以连接许多不同的提供商,其中一些是免费的。 您可以免费做很多事情,这非常棒。 前几天我刚刚在我们上次的 Gatsby 网络创建者会议上做了这件事,我们使用 Gatsby 云和 Netlify 来构建我们的网站。
龙美诗:特别是它可以让你让 Gatsby 网站更快,因为它确实有这些改进。 它只需要建立一种类型的网站。 因此,Gatsby 云可以做出一些其他平台无法做出的改进,因为他们正在努力支持所有这些不同类型的网站,而且他们都做得很好。
龙美诗:但对于盖茨比来说,如果这就是你正在建设的全部内容,并且有不少机构都在关注盖茨比,他们希望尽快完成。 所以,这就是 Gatsby 云可以专门为 Gatsby 做一些性能改进的地方,因为它不必担心任何其他平台。
Drew:所以,Gatsby 云会做你的构建,然后它会将它部署到 Netlify 之类的东西,或者可能是一系列不同的地方。
龙美诗:是的。 是的,它会的。 因此,它是 Netlify 的一部分,它将在上传这些构建的包时使用。 建档。 它没有使用他们的构建,所以构建是在 Gatsby 云基础设施上进行的,这就是可以发生很多速度提升的地方。 然后仍然有上传步骤将其发布到 CDN,无论您选择哪个。
龙美诗:但是,是的,团队似乎真的很喜欢这种观察能力。 我的意思是,这是您可能会错过的功能。 所以,这是一个必要的补充,是能够进行这些协作预览并获得签字和所有这些。
Drew:所以,Gatsby 云是由 Gatsby 公司作为服务提供的,还有 Gatsby 开源项目。 这是否与 WordPress 和自动拥有类似的关系,您有一个商业实体开发开源产品?
龙美诗:我会说是的,比如 Drupal。 这些创始组织在科技领域有先例,这是一种良性循环。 我们现在正在努力发布一些治理文档,以确保我们的社区非常清楚我们如何做出决策。 但整个目标是保持 Gatsby 的可持续性,这样它就可以继续成为一个开源项目,人们甚至可以使用它,甚至可以进入 Gatsby 云。
龙美诗:如果你愿意,你可以使用其他解决方案。 因此,我们需要足够的业务来维持,就像从事这项工作的人一样。 所以,我介于两者之间,就像我在开源和商业方面之间徘徊,并试图确保我们优先考虑事情。 我的意思是,正如您可以想象的那样,我们正在处理很多事情与空间的广泛性,我们都有我们喜欢的利基用例,感觉非常强烈,我们需要为我们的工作做。
龙美诗:加起来就是很多小众用例。 所以,我们试图兼顾和优先考虑,并真正倾听我们的社区关于现在什么伤害、什么痛苦、什么进展顺利。 所以,这对我个人来说是一段有趣的旅程,让我重新回到 devREL 并真正听取社区的意见,我们如何才能让我们变得更好?
德鲁:盖茨比周围有一个很大的社区,有很多人在使用它吗?
龙美诗:有很多人在使用它,很多贡献者。 所以对于很多人来说,这可能是他们第一次为开源做出贡献,比如来到我们的码头并加入我们参加 Hacktoberfest 之类的事情。 因此,很高兴看到 Gatsby 的大型社区拥有什么,尤其是在可访问性和试图确保框架免费提供开箱即用的所有功能方面。
龙美诗:所以,有这个,我不知道,可访问性和盖茨比的子集或交集,那是我快乐的地方。 但是更广泛的社区,很多人通过 Gatsby 学习 React 或学习 Web 开发。 因此,看到我们的社区取得进展真是太好了,希望我们能让人们做出贡献,即使这是一个问题或类似的东西,“嘿,这个链接坏了,或者码头的这一部分让我感到困惑或者它已经过时了。”
龙美诗:就像只是告诉您使用的框架或项目一样,有些东西可以更好是一种很好的贡献方式,因为您可以帮助我们深入了解可以改进的东西。 所以这是一个很好的贡献方式。
Drew:您提到了可访问性,当然,人们会知道您是可访问性专家。 And they might be surprised to see you working with sort of fully featured front end framework like React, thinking that perhaps the two don't really go together. Is that always the case at JavaScript heavy front ends are worth less accessible?
Marcy: Well, I wish it weren't the case. But I think the data has shown that a lot of websites that do use front end frameworks are less accessible than those that don't. A project that comes to mind is the Web a Million. And actually, I have a blog post, I'm refreshing the Gatsby site to see if my blog post has launched yet. But webbing through the web a million this project, they used their automated wave tool to crawl the top 1 million home pages and evaluate them for some accessibility violations.
Marcy: And it was really depressing results. Like they've run it twice now I think, and I think it got worse. So, it's not great, but I don't think you can really point to any one framework because there's plenty of sites that don't use frameworks that have lots of accessibility problems. So, it's kind of a broader industry issue, a really society.
Marcy: And so, for me working on a full featured web framework, I saw as an opportunity to try and get more accessibility awareness in the mainstream. And so, that was an intentional move on my part to go and try to make an impact on a lot of sites like working on one site is cool. You can solve some really interesting problems. For me, I wanted to advocate accessibility much more broadly and try to make frameworks the best they can be from the inside.
Marcy: So even if something is rough right now, trying to play that long game of like, “Okay, what web standards things can we talk about? What framework improvements can we make so that if this is kind of rough, like not just give up on it.” So, even if I know it's… I don't know, JavaScript is some folks enemy I feel like I like it. You need some JavaScript to make accessible user interfaces, you just do.
Marcy: So, I am trying to like straddle those viewpoints and do the right thing while listening to my activist colleagues and friends kind of out there like pushing us forward as an industry. And then on the inside, I can be the messenger and the person that could try and reconcile some of those huge trade offs and ethical questions about What are we building?
Marcy: So, it's challenging, but I really like it, because I have an impact to make on the web. And so, web framework. Lots of people are building Gatsby sites. So, seems like a good place to try and make an impact.
Drew: You mentioned briefly that Gatsby uses React at the moment. Is there a possible future where Gatsby might work with other frameworks, might receive a view version of Gatsby?
Marcy: I would love that. I've certainly talked about it. There is a pre React plug in, as I mentioned earlier. So you can swap that out. I think a big part of what we are talking about is sustainability of projects, trying to make the right call, these aren't easy choices to make. It's not just like rip it out and start over. There's a lot of concerns that go along with that. It goes deep.
Marcy: So, it's something we're actively talking about. And I don't really have anything specific to share right now. But we do have some internal meetings coming up soon to talk about that sort of thing. So, it's being discussed, and I would love to have a view flavor, that'd be amazing. But as you can imagine there's some interesting challenges that come along with that, and we want to make sure it's the right move so that we're not like, I don't know, going down a path and having it not work for whatever reason, then we're maintaining two frameworks, like how do we make that actually realistic in terms of what we can maintain and make succeed for an open source community?
Drew: So I've been learning all about Gatsby. What have you been learning about lately Marcy?
Marcy: Well, I wish it was better but work life balance. I've been learning about, for me, unfortunately, I'm in like a burnout cycle. And so, I feel like I'm continually learning the lesson of how to be productive, especially this year in 2020. There's just like one thing after another. So, trying to get really clear focus on where I want to go in my career, what makes me happy?
Marcy: How can I sustain, and we're talking about sustainability. Like how can I sustain my own life after a career of really pushing hard on accessibility in particular like, “Okay, how can I kind of take a little step back and make sure that what I am putting out there, what I am doing is meaningful, worth the energy.” See, a lot of my lessons have been kind of that intersection of work and life and trying to make the most of the time that's been… I don't know about you, but it's been pretty stressful for a lot of people including me.
Drew: It's been very, very stressful. We are at very difficult times, isn't it?
Marcy: Yeah, yeah. I mean, we have so much to be thankful for in this industry, having opportunities and skills that you can apply. Seeing a lot of layoffs in our industry, really trying to make decisions that reflect where we're at and not just going through the motions. So that was a big motivator for Gatsby web creators was, “Wow, there's a lot of school age kids not in school this year, it would be really cool to see an outcome of turning some kids' eyes onto web development.”
Marcy: Like when I was in seventh grade, and someone came to a class of mine to talk about photojournalism. I was like, “I want to be a photojournalist.” So that actually did work. I got some feedback from someone that said, “My seventh grader's learning from you, and now they're really excited about code.” So, that was a really good thing to spend some energy on, in a time where like, that wasn't something I would have necessarily thought of before being in these circumstances in 2020.
Marcy: So, really trying to be like nimble and make choices that kind of reflect where I want to go and what's happening.
Drew: If you the listener would like to hear more from Marcy, you can find her on Twitter where she's @marcysutton and find all her latest goings on, on her personal website, marcysutton.com. And of course you can find out how to get started with Gatsby from Gatsbyjs.org. Thanks for joining us today Marcy, do you have any parting words?
Marcy: Make the most of it wherever that might be.