为什么 Claude 推荐 Resend 以及公开构建的意义 | Better Stack 播客第 15 期
BBetter Stack
Computing/SoftwareAdvertising/MarketingSmall Business/StartupsJob SearchInternet Technology
Transcript
00:00:00欢迎收听 Better Stack 播客,我们将在这里讨论人工智能、软件开发,
00:00:04以及各种新兴技术。我是主持人之一 Richard,和我一起的有……
00:00:09我是 James。
00:00:10我是 Josh。
00:00:11我是 Chris。
00:00:12嘿,Chris。很高兴见到你。我们一直想筹备这期播客,
00:00:17终于能请你来了,我们很高兴。对于那些还不认识 Chris 的听众,
00:00:21我想让他自我介绍一下。那么,你是谁呢,Chris?
00:00:24好的。我叫 Chris Penningson。我是 Resend 的开发者体验工程师。我们是一家为开发者提供电子邮件 API 的公司。
00:00:32我过去几年还有一个 YouTube 频道,叫“Coding in Public”。
00:00:36我想我们就是通过这两者建立联系的,很高兴能聊聊这些,
00:00:40以及你们想谈论的任何事情。
00:00:42还有你那套很酷的麦克风视频录制设备。
00:00:45这得感谢 Resend。没错。
00:00:47太棒了。好的,我们稍后再深入探讨这个。
00:00:50但你认为是什么帮助你进入 Resend 的呢?
00:00:55因为你过去做过很多事情。
00:00:56那你如何解释你进入 Resend 的这段旅程?
00:00:59是的。我的意思是,很难不说我觉得自己超级幸运。
00:01:03很大程度上是这样。
00:01:04我只是觉得很多事情都是天时地利人和,尤其是和 Zeno 建立了联系。
00:01:09他是 Resend 的首席执行官。
00:01:10我开 YouTube 频道是想作为一个机会,让我能讲出我正在学习的内容。
00:01:16当时在 2023 年,我学习的内容之一就是 React Email。
00:01:21后来 Resend 出现时,我想 Zeno 实际上主动联系了我,给了我内测权限。
00:01:27在那两者刚发布的时候,我正好都发了相关内容。
00:01:32我当时并不知道这一点。
00:01:33但当团队看到时,Zeno 就联系了我。
00:01:36我们就这样成了朋友。
00:01:38我想我们在 2024 年那个夏天在旧金山见过面。
00:01:43我正好在城里,就给他发了信息,说,嘿,想见面聊聊吗?
00:01:47他是个超级大忙人。
00:01:48我以为他没时间,但他确实有空。
00:01:51我们最后基本上只是聊了聊生活。
00:01:53我并没有试图向他推销自己,他们也没有现成的职位空缺。
00:01:58但我们建立了友谊,那年秋天他联系了我,说,嘿,我们有个开发者体验职位的空缺。
00:02:05我很乐意让你考虑一下。
00:02:06我之前甚至都没往那个方向想过。
00:02:10后来一切顺理成章,我觉得这很合适。
00:02:13Resend 的人才是让这一切变得有意义的关键。
00:02:16团队之间有着真正的同志情谊。
00:02:19所以这一切都各就各位了。
00:02:21见了 Zeno,见了团队,就直接加入了。
00:02:24我想从他跟我谈话到我和整个团队在巴西见面,大概只用了四周时间。
00:02:30所以一旦一切发生,过程非常快。
00:02:33是的。
00:02:33我感到超级幸运能有机会教人们使用 Resend,并试图以一种希望对开发者友好而不是那种极力推销的方式向他人推广我们在做的事情。
00:02:44反正那种方式也不符合我的本性。
00:02:46是的,这就是我旅程的简短版。
00:02:49不错。
00:02:50我想我从 Grok 那儿得到了一些错误信息,因为显然你在频道里发过一个关于 React Email 的大型视频。
00:02:57事实上,它获得了大量观看,他们就是从那里联系到你的。
00:02:59但我猜那是不准确的。
00:03:01嗯,那也不完全是错的,因为那确实是我第一次见到 Zeno 的原因,因为他就是看了那个最初的视频后联系我,说,嘿,基本上就是说,你知道,我很想和你建立联系。
00:03:11然后我们就在那边聊了起来。
00:03:13然后我做了关于 Resend 的那个。
00:03:14然后我们亲身见面了。
00:03:15所以这一切确实是从那里开始的。
00:03:17那是第一件我认为让我进入他视线的事情。
00:03:20不错。
00:03:20好的。
00:03:21所以人工智能并没有完全产生幻觉。
00:03:24这次没有。
00:03:26其实在播客开始前我就说过,我早期在开发者 YouTube 频道制作的视频之一就是 React Email。
00:03:32那是我制作的第三个视频,内容就是 React Email。
00:03:35所以大约是在 2023 年,我制作它的时候。
00:03:38React Email 刚出来。
00:03:39但确实是。
00:03:41是的。
00:03:41我甚至不知道它刚出来。
00:03:43我想我在它发布的一周内还是什么的就做了视频。
00:03:46我只是在 Twitter 上看到了它,觉得,哦,这很酷。
00:03:47于是我就做了个关于它的视频。
00:03:48所以是很幸运的时机。
00:03:50在你和他们建立联系时,你当时有全职工作吗,还是 YouTube 那时候算是你的主要工作?
00:03:57是的,YouTube 就像是我当时做的副业。
00:04:02所以它不是我的主业。
00:04:03我在教会帮忙。
00:04:05我帮忙。
00:04:06我做了。
00:04:06我当时有自己做的副业。
00:04:09然后我也在一家公司兼职做文档工作。
00:04:11我做了大约八年。
00:04:13所以那是我的主要工作,那个文档工作。
00:04:16所以,你知道,生活里同时有多重身份。
00:04:19YouTube 其实只是个副业。
00:04:22当我刚开始做 YouTube 时,我六个月没告诉我的妻子。
00:04:25我只是录制、交谈,然后把它放上去。
00:04:27我从来没和任何人提起过。
00:04:28它本来就不该是个什么事业。
00:04:29我没打算让任何人看到它。
00:04:31这就像是,我的语言表达能力很强,我需要通过说出来才知道自己是否真的懂了某件事。
00:04:36而且,你们都知道做视频,有时候你坐下来录制时,你会觉得,
00:04:40我并不真正了解这是如何运作的。
00:04:41所以我也需要,我需要重新开始。
00:04:44所以有很多次,这只是我试图把某事讲出来。
00:04:48我把它录下来。
00:04:49它没成功,因为我心想,我显然不懂这个。
00:04:52所以我不得不重做。
00:04:53所以它一直只是个副业。
00:04:55最终我会发布一个讲透它的视频。
00:04:57以一种我感到舒服的方式,让我觉得理解了无论是什么主题。
00:05:00所以,是的。
00:05:01所以 YouTube 一直是个副业。
00:05:03而其他角色是我花费大部分时间去做的事情。
00:05:06但是在 Resend 之前真的没有开发经验,作为公司的一部分
00:05:12或者是其他类似的工作。
00:05:13所以,就像我说的,我感到超级幸运,是的,也很高兴 Zeno 能给我一个机会。
00:05:20是的,教学或者像,是的,比如创作内容,甚至只是教学,仅仅是自学就非常有帮助,
00:05:27让我理解事物是如何运作的,并将它们整合在一起。
00:05:30所以对此我感到超级幸福。
00:05:32就像你以为你懂了某事,然后当你去讲出来的时候,心想,我真的不知道自己在做什么。
00:05:37然后就变成了一件人为的事情,你做多了,准备了这些视频并发布出去。
00:05:46但你,它是非常刻意准备的。
00:05:48所以我几年前开始做的一件事就是直播,真正坐下来从头开始某件事。
00:05:54因为我心想,我需要多撞几次墙,真正看看我是不是真的懂。
00:05:59因为我曾经能很快策划出一个有意义的视频,但我其实并不完全理解它。
00:06:05或者我在录制期间需要查很多东西。
00:06:08所以我感觉直播就是终极考验,就是你到底知不知道你在谈论什么?
00:06:13很多时候你确实不知道,你会撞得头破血流,而这正是过程的一部分。
00:06:17但我认为如果你不怕失败,不怕撞墙,无论是在公开场合还是私下,
00:06:25其实并不重要。但我认为你可以真正地拓展和成长。
00:06:28但你必须适应那种感觉,这老实说也是成就开发者的原因。
00:06:32你必须愿意一次又一次地撞墙,然后说,我要搞定它。
00:06:37我要去研究它。
00:06:39现在有了 AI,你知道,有些事情变容易了,也有些事情更容易逃避,因为你可以跳过那些你必须去掌握的知识。
00:06:46我真的很佩服你在没有任何专业编码经验的情况下进入这一行。
00:06:51就像我完全不知道在制作视频方面该从哪儿开始。
00:06:55那你如何找到你的话题呢?
00:06:57因为你有关于 Astro 的内容,有关于 React 的内容。
00:06:59你是怎么找到制作视频的话题的?
00:07:02是的,对我来说,这一切发生得非常自然。
00:07:05我基本上就是那一周学了什么,就做了关于那个的视频。
00:07:09我频道一直都是这样。
00:07:11如果有人想把它当作职业、大事业或试图吸引注意力,这完全没问题。
00:07:16我认为那可能是一种获得受众、社区等各种东西的非常有用的方法。
00:07:21但对我来说,从来不是那样。
00:07:23我也曾有很多机会把它变成那样,但我真的只是尽量保持在每周所做的事情上。
00:07:28这就是我做视频的内容,这意味着我并没有,我没有任何视频是爆炸性增长的,就是传统意义上,你知道的,开发者视频那种爆炸。
00:07:35我有几个在几年内达到了 10 万观看之类的,但我认为我从未有过任何接近百万或类似数量的视频。
00:07:43因为那只是我在学习的东西。
00:07:44所以那不是什么热门话题。
00:07:47所以实际上当我坐下来时,我就想,好的,我要学习这个 JavaScript 概念,然后我要做一个视频。
00:07:53我在学习这个东西。
00:07:54而且我在 Astro 处于内测阶段时恰好做了很多相关的工作。
00:07:57它对我来说很有意义,尤其是当它添加功能时,我在自己的理解上取得了进展,当时的感觉是,哦,如果能在服务器上做些事情会很好。
00:08:07我当时甚至不懂服务器端渲染和静态渲染之间的区别。
00:08:11然后就是 Astro 在我需要学习它的时候不断添加功能。
00:08:15所以很多 Astro 的东西就是,我做了那些是因为我在学习过程中需要用到。
00:08:21所以我认为对我来说,这是一个非常有机(自然)的过程,无论什么时候学了什么,我就去教。
00:08:26而这刚好以一种方式取得了足够的关注,是的,我感到很幸运,以这种方式与人们建立了联系。
00:08:35但确实,这里面没有什么刻意性,我知道这是一条让我走到今天的捷径。
00:08:42是的,我认为这是一种非常健康的状态,不去追逐所谓的热门话题,而是谈论你正在学习的内容。
00:08:49我会说在 YouTube 上那曾经是一个有利可图的地方,但现在完全变了。
00:08:56我认为很多创作者都在说你不能靠做教程赚钱。
00:09:00你要么必须做热门话题,要么必须做娱乐性内容。
00:09:03你对此有什么看法?
00:09:04这会改变你频道的方向吗?
00:09:07我认为对我来说,这里面有很多事实。
00:09:09如果你真的想以此为职业,我认为我很幸运,因为我从来没有试图把它变成那样。
00:09:15所以它一直是一个有趣的副业。
00:09:17它一直是我的一种方式,希望不是以自私的方式,只是我需要一个机会去把正在学习的内容讲出来。
00:09:24我的确认为很多传统意义上的“分步教程”的观看量正在疯狂下滑。
00:09:30我认为你们做得非常、非常好。
00:09:32所以我认为你们有一种很好的融合,既具有教育意义。
00:09:37它不像是一个直截了当的演练。
00:09:39它更多像是概念性的东西。
00:09:40很多时候,比如 Richard,我很喜欢你拿出笔记本开始画图的时候。
00:09:44我心想,伙计,我也得那么做。
00:09:45那真是个好主意。
00:09:47所以我认为确实有一种教学方式可以捕获很多那种效果。
00:09:52但我认为传统的演练式教程,你可能得不到三四年前那样的观看量了。
00:09:58对我来说,因为那从来不是我的目标。
00:10:01这对我也不是什么大问题。
00:10:03我过去几个月已经没怎么更新 YouTube 了,但那主要是因为在 Resend 做营销、做教育的真的只有我一个人。
00:10:12我们雇了个人,她是我们的另一位开发者体验工程师,但她几乎完全转向做活动去了。
00:10:19所以我只能孤军奋战。
00:10:21我现在确实没什么精力。
00:10:23所以大部分情况都是生活现状自然而然的结果。
00:10:27我们正试图招聘。
00:10:28所以一旦我有了别人,我想那会腾出我更多的时间。
00:10:31我不确定我的频道未来会是什么样子。
00:10:34我认为我可能会继续做我现在这类事情,但我很想在某些方面更具概念性,然后在另一些方面更详细。
00:10:43所以我的初步计划是做更多概念性话题和内容的快速深度剖析,同时也做更多缓慢的内容,就是我从头学习,为自己从零开始教学。
00:10:56我不认为那些会表现得很好,但我没关系。
00:10:59就像我说的,对我而言,我的动力自从我开始以来就一直很单一,这有助于我,我认为,明确我的“指北针”并坚持下去。
00:11:07我也觉得能这样做很幸运,不必太担心观看量,但谁知道呢?
00:11:12走着瞧吧。
00:11:13我想 Bash Bunny 就是一个很好的例子。
00:11:16她在直播方面做得很好。
00:11:18我想她目前正在经历 Rust 的学习之旅,只是在教自己学习那个。
00:11:22我认为这是一个很好的例子,说明在没有 AI 干预的情况下,人们依然愿意观看别人编码。
00:11:29是的,这很有趣。
00:11:30当我不用 AI 时,我收到很多评论说,我真高兴终于有人不是在用 AI 了,所以我认为这也存在一种疲劳感。
00:11:41但我认为需要有一种方式来两者兼顾,因为 AI 从根本上改变了编码,而且它会继续这样做。
00:11:50我认为你必须弄清楚这个新世界是什么样子的。
00:11:54但我同时也认为,亲手触摸代码语法确实有某种触感。
00:11:59比如,我就是喜欢那样。
00:12:00所以我认为我心中总会有一个柔软的地方留给它,而且可能总是会为了乐趣做一些那种非 AI 辅助的编码。
00:12:09是的,我无法想象你哪里来的时间做这些,因为你还有 Resend,还有家庭生活。
00:12:17你是怎么找到时间去制作自己的视频、学习新技能以及手写代码,还有做所有这些事情的?
00:12:23我觉得像很多开发者一样,我很好奇,总能找到方法去兼顾各种事情。
00:12:28所以,你知道,我有三个孩子。
00:12:32甚至像一些小事,比如我教我的两个女儿踢足球。
00:12:37但即使是在教她们的时候,我也会想:噢,我可以为此建个小网站。
00:12:42所以这就是我能和她们一起做的事。
00:12:43我跟她们坐在一起。
00:12:44我们一起做。
00:12:45我会说,噢,有这么个概念。
00:12:46我想弄清楚如何从服务器流式传输这个东西。
00:12:49所以我以前也做过。
00:12:50我们曾经有几只小猫需要送养。
00:12:54于是,我和我的女儿们坐在一起。
00:12:56她们帮我编码那个页面,或者说是设计页面。
00:12:59然后我们把它写了出来。
00:13:00我想当时看来非常像出自六岁和八岁孩子之手的设计。
00:13:05所以我尽量把生活中的很多部分融合在一起。
00:13:08我有一台 3D 打印机。
00:13:10前几天我和我儿子正在做一个随机的应用程序,也是做类似的事情。
00:13:16我非常喜欢利物浦足球俱乐部。
00:13:18希望这不会破坏我在你们心目中的形象。
00:13:23那是跟我儿子。
00:13:24所以我们搞出了很多像这样的有趣东西。
00:13:25所以我认为我只是试着把那种创造力带到生活的各个方面。
00:13:31我喜欢做一些工艺美术之类的东西。
00:13:34我经常和孩子们一起做这些事情。
00:13:35所以我,我有用不完的精力。
00:13:38当我和别人一起做这些时,感觉并没有把我从他们身边拉开。
00:13:42反而感觉让我更亲近他们。
00:13:44无论是朋友还是我的孩子们。
00:13:48我尽量花很多时间在生活的各个方面运用这种创造力。
00:13:54然后我学到的东西会相互重叠,使我在工作中或在我的频道上运用它们变得更容易。
00:14:00通常我的频道内容我是在清晨录制的。
00:14:04所以我通常会在早上 5 点 36 分左右录制。
00:14:07我起得很早。
00:14:09那就是我处理频道内容的时间。
00:14:12然后,是的,工作占用了剩下的一天。
00:14:15晚上有时我会和孩子们一起做些事情。
00:14:18所以我不知道这是否真的解决了或回答了你的问题。
00:14:21但确实,我只是试着把创造力带到生活的方方面面,并让它成为连接我和人们的纽带,而不是把他们拉开。
00:14:27我正想说,我认为这是 AI 编程最酷的事情之一,我发现越来越多人不必非得回去教人们 HTML、React 的语法了。
00:14:39你可以说,只需提示 Claude,然后我们可以讨论并理解大致发生了什么。
00:14:43显然,让某人制作出第一个应用程序要容易得多。
00:14:49我认为,是的,我发现 AI 非常适合制作微型网站。
00:14:52现在我有任何小需求,与其去谷歌搜索是否有现成的服务,不如直接说:Claude,你能做这个吗?
00:14:58因为我是它唯一的使用者,所以我不一定在乎它的质量是否是顶级的。
00:15:04所以,是的,这很好。
00:15:05而且,听到你用这种方式和孩子们一起使用它,真的很酷。
00:15:08是的,是的,它确实加快了很多这类事情。
00:15:11它帮助他们想出点子,比如其中一个孩子,他们想和朋友一起办个图书馆。
00:15:16所以,他们做了所有这些自定义的小书,我们还建立了一个他们可以借书和还书的网站。
00:15:22那真的只是这四个小孩子,你知道,我的两个女儿和她们的两个朋友。
00:15:27但那真是件超级有趣的事情。
00:15:28而且她们感到超级受启发,说:噢,我们可以这样做吗?
00:15:31你知道,平时我根本没时间做这个。
00:15:34所以我认为有些方式,比如我在 Resend 的同事,她叫克里斯蒂娜,
00:15:41她说应用程序就像一顿家常便饭。
00:15:44就像你可以给某人做顿便饭一样,它不必非得意义重大。
00:15:48而 AI 让这变得更容易,因为你可以非常迅速地做到。
00:15:52是的,不,我真希望小时候就有这个,因为我是因为 Minecraft 才开始学编程的。
00:15:56我想给它添加插件。
00:15:58那意味着我必须学习 Java,我也不知道我是怎么做到的,但我还是学会了。
00:16:03是的,那令人印象深刻。
00:16:04是的,我是想说,你说你有两个女儿一个儿子,而我有两个女儿。
00:16:08我觉得我有第一个女儿时,这或许有点信息过载了,但当我有了第一个女儿,我还能侥幸不放马桶盖。
00:16:14但现在我不能那样做了。
00:16:16马桶盖必须始终放下来。
00:16:18我不知道你家里平衡如何,但确实有这种情况发生。
00:16:22是的,你必须作为女儿的爸爸改变你的生活方式。
00:16:26是的,没错。
00:16:27总之,我们来谈谈你在 Resend 的工作吧。
00:16:29听起来你有很多事情在忙。
00:16:31你做视频、文档,你还编写了电子邮件相关的技能。
00:16:34你正式的职位头衔是什么,你本职工作到底是什么?
00:16:40是的,我的工作与公司里的很多事情都有关联。
00:16:44总的来说,它属于开发者关系 (DevRel) 的范畴。
00:16:48我们称之为开发者体验工程师 (DX Engineer),因为我们希望它能吸引那些更有开发者思维的人。
00:16:56所以,是的,范围涵盖一切,从文档到博客文章、更新日志、我们所有的社交内容、视频、教育,可以说是产品各个环节的开发者零距离。
00:17:06我也经常与活动现场的人交流、演讲,诸如此类的事情。
00:17:10所以任何属于那个领域的任务都包括在内。
00:17:13但我也会接触产品,你知道,我也曾发布过功能。
00:17:17所以,它最终变得相当全面。
00:17:21随着团队的壮大,我们做的事情也越来越多。
00:17:24所以能向人们介绍 Resend 感觉超级棒。
00:17:28我不只是从产品的角度看待我的角色。
00:17:31显然,我希望人们了解我们在 Resend 做什么。
00:17:35但我认为很大一部分工作是帮助推动公司内部人员的声音向外传播。
00:17:40我之前提到过,对我来说,Resend 真正核心的是人。
00:17:45我们有如此出色的开发人员、设计师和客户成功工程师。
00:17:50他们正在做很多事情。
00:17:51所以我努力尝试做的是:我该如何放大他们的声音?
00:17:55所以很多时候,我在为他们代笔。
00:17:57我会采纳他们在会议中提到的一个想法。
00:18:00然后说:嘿,我能跟你做一个 20 分钟的快速采访,谈谈这个架构是如何运作的以及我们为什么选择它吗?
00:18:06然后我们把它作为更偏向工程的文章发布。
00:18:09我会做所有的工作,但是你知道,我会让他们审阅并发布它。
00:18:12所以对我来说,很多时候不仅仅是关于产品。
00:18:15这真的是关于 Resend 的思维方式。
00:18:17这是一家非常、非常注重文化的公司。
00:18:20我希望它能保持这种状态。
00:18:22随着公司规模扩大,要保持这一点很难。
00:18:25但我思考的很多内容不仅仅是推动产品,还有向其他人推介我们的人才。
00:18:31这就是我角色的全部范围,任何我刚才提到的内容都在其中。
00:18:36在 Resend,很多人也是这么想的。
00:18:39所以 Zeno,CEO,非常擅长社交媒体和谈论我们正在做的事情。
00:18:44我们的很多工程师也会发布他们自己的内容。
00:18:48所以并不是只有我一个人关心如何把事情传达给其他人。
00:18:52但我绝对不是传统意义上的营销人员。
00:18:56当 Zeno 雇佣我时,我问他:好的,从营销人员到教育者,这个角色到底在哪儿?
00:19:01因为我在这方面完全没什么感觉。
00:19:03我一点也不在乎那个。
00:19:05他说:没关系。
00:19:06我们真的只是想和人们谈论我们在做什么,并让它变得更自然、更有机。
00:19:11这就是我如何看待自己的——向人们普及我们的产品和 Resend 的员工。
00:19:16当你加入时,公司有多大,现在规模如何?
00:19:21我是第 10 名员工。
00:19:22嗯,我觉得我们现在大概有 45、46 人左右吧。
00:19:28我是一年半前加入的。
00:19:30酷。
00:19:31我想说点我们在电子邮件中讨论过的事情,Resend 非常擅长让 Claude 推荐它。
00:19:38我不知道你是怎么做到的。
00:19:40每当我构建需要发送邮件的东西时,Claude 的代码总是会说,用 Resend。
00:19:44尽管我确定还有许多其他替代方案存在,但它只会让我用 Resend。
00:19:48所以,是的。
00:19:49你能谈谈如果你做了什么努力来促成这一点吗?
00:19:53是的,我认为我们已经尝试在基础工作上加倍努力了。
00:19:56嗯,所以很多 SEO 相关的内容一直都很重要,但随着人们转向 Claude 作为很多决策的制定者,这似乎变得越来越重要。
00:20:06我的意思是,开发者其实不需要关心电子邮件。
00:20:08你只需要一个能用的东西。
00:20:09如果它能用,你就很满意。
00:20:11嗯,所以,你知道,你必须真的,呃,至少要涵盖基础知识。
00:20:17所以涵盖一切,从 JSON-LD,比如结构化页面,到基础工作,比如确保你的标题,你知道,你只有一个 H1 标题,你知道,这类 SEO 基础知识。
00:20:27嗯,我们尝试做了一些额外的工作。
00:20:30比如,显然我们有用于相关内容的 lms.txt。
00:20:33嗯,比如我们的定价页面,如果你做一个 curl 请求,它会返回 markdown,就是这类东西。
00:20:40嗯,我们还发现问答 (Q&A) 非常重要。
00:20:43所以只要有机会,我们就有一个包含问答的手风琴折叠菜单,大语言模型似乎更喜欢那种形式。
00:20:49我们还和其他公司做了一些交换,我们会做类似 “五个最佳通知 API”,他们做关于 “最佳电子邮件服务” 的文章。
00:20:58那些对 AI 来说似乎也非常重要。
00:21:01嗯,我觉得其中一些其实是近因偏差。
00:21:03呃,它似乎更倾向于,呃,较新的供应商。
00:21:08我想我们出现的时间恰到好处。
00:21:11嗯,公司成立于 2023 年 1 月。
00:21:14所以我们确实是在大语言模型真正开始被大规模训练时出现的。
00:21:18那种近因偏差似乎是其中的一部分。
00:21:21嗯,我也认为其中一部分是,我们一直在试图快速跟进很多 AI 相关的事情,比如 MCP 和技能之类的东西。
00:21:30嗯,所以置身其中使我们能够获得常规的 SEO 效果,如果你快速切入行业,其他同样快速的人就会谈论你或在他们的工具中使用你。
00:21:43嗯,所以我认为这些就是我们的起步点,但我不知道我们有什么完美的银弹。
00:21:50嗯,有很多公司试图破解 AI SEO 或 GEO,不管人们现在叫它什么。
00:21:57嗯,所以我们只要有机会,就会尝试遵循这些提示来改进该领域。
00:22:04但我觉得对我们来说,最主要的是做好 SEO 基础工作。
00:22:08优先跟进很多大语言模型内容。
00:22:10而且可能其中很大一部分,老实说,是近因偏差,这意味着我们必须继续投资这个领域,努力学习什么有效,并希望我们保持在名单前列。
00:22:20因为目前 Claude 大约有 70% 的时间会建议用户使用我们。
00:22:24是的,我认为这很神奇。
00:22:24我觉得你们是 Claude 偶尔会推荐的极少数公司之一,有时是 Railways,有时是 Fly,或者 Vercel,但是的,我不知道人们是怎么做到的。
00:22:34他们就是有这些疯狂的技巧,是的,我想 Claude 确实有一些建议人们去做的事情,比如把内容放到 robots.txt 里,但没人真正知道他们在做什么,这会很有趣,而且我想模型变化得如此之快,它们可能很快就会改变运作方式,所以你必须重做一切。
00:22:53所以,是的,这是一个有趣的环境,看看接下来会发生什么将非常有趣。
00:22:57是的。
00:22:57你也不想让它变得太游戏化,因为那样每个人都能做到。
00:23:01所以就像常规的 SEO 一样,我认为存在一点神秘感,而且我不确定模型提供商是否总是确切地知道为什么某些东西会被选中。
00:23:10所以,嗯,我不知道,我想这绝对会是一个不断移动的目标,你也不想在还没过线之前就庆祝。
00:23:17就像你说的,模型发生变化,突然间我们就不那么受推荐了,但至少目前看来,这是口碑与 Claude 以及其他大语言模型综合作用的结果。
00:23:29嗯,还有其他的,大语言模型,但我们希望能一直留在每个人的脑海中,无论是代理还是人类。
00:23:35你认为 AI 的内容对 Resend 的增长有什么具体帮助吗?
00:23:39因为我想 Zeno 一定发过推文,上面有一张 Resend 用户量大幅增长的图表,你认为这与 AI 有关吗,还是你觉得是其他因素,或者是两者皆有?
00:23:51是的,我希望我能,这些时候我希望我是一个真正的营销人员,因为我会有数据和所有这些东西,但我的确没有,我们正在努力在那方面做得更好。
00:24:00嗯,而且,我认为这是几个因素的结合。
00:24:03AI 当然是其中的一部分,但我不知道当有人问 “我该用什么” 时,这之间是否存在直接的联系。
00:24:09比如,举例来说,我们和 Supabase 的集成已经存在很长时间了。
00:24:15随着 Supabase 被 Lovable 和许多其他 AI 编程代理选中,人们想要添加电子邮件功能,而通过那种集成,这成了轻松的选择。
00:24:25所以我认为这是原因之一,随着我们与其他公司连接,不仅我们受 AI 影响,他们也受到影响,这就像是,是什么来着?
00:24:33就是那句,怎么说来着?水涨船高之类的。
00:24:36我们大家其实都在一起进步。
00:24:38所以我认为这就是其中的很大一部分。
00:24:39嗯,我认为最好的营销永远是口碑。
00:24:42人们会谈论你,他们爱你,我们很感激有很多这样的人。
00:24:46所以我认为那也是一个重要因素。
00:24:49我们仍然非常关注开发者,我们的重心就是先关注开发者。
00:24:54因此,在这个新的开发时代,我们有更多的 “氛围编码者” 和创作者在使用我们,但透明地讲,大部分用户仍然是开发者。
00:25:07所以我们正在试图弄清楚如何适应这一点。
00:25:09所以我认为目前,很多时候仍然是口碑驱动的,因为主要还是开发者。
00:25:14有时当我们迎来更多 “氛围编码”、创作者领域的用户时,他们可能会感到挣扎,因为涉及 DNS 和很多奇怪的东西。
00:25:22那不是我们的问题。
00:25:23那是电子邮件的工作方式。
00:25:24嗯,但我认为是 Level 和 Supabase。
00:25:29以及我们拥有的一些集成,让我们可以轻松地在他们上升时跟着一起提升。
00:25:35在讨论 AI 的同时,你个人是如何因为 AI 而改变工作方式的?
00:25:41是啊,伙计,呃,过去,大概五个月了,这可能是最大的变化。
00:25:46嗯,我想这在个人层面有很多,在工作层面也有很多。
00:25:50所以也许我会,我会主要谈谈工作,因为那是我投入最多精力的地方。
00:25:54嗯,对我来说,它在从其他人那里收集背景信息方面真的很有帮助。
00:25:59所以例如,我们有一个即将发布的更新日志,我了解功能大概是什么,但我会说:嘿,去调研一下。
00:26:05告诉我,看一看,使用 GAP CLI,我对 Claude 说,列出所有参与这个项目的人,阅读 RFC,诸如此类的事情。
00:26:14给我一个我们应该涵盖的内容的项目列表。
00:26:17我真的认为在写东西时,构思句式是有力量的。
00:26:21所以我真的试图自己写所有这些内容,但像那样的很多调研工作确实非常有帮助。
00:26:26嗯,我们的代码库中有很多常见的模式。
00:26:28所以如果我在做客户案例或者一个新的登录页面或者类似东西时,有很多我可以借鉴我们已经做过的内容。
00:26:35所以我经常让一个 AI 代理工作,比如:嘿,帮我建立一个新的登录页面。
00:26:41我会把所有内容放进去。
00:26:42我来写内容,但让它帮我搭结构。
00:26:44所以很多类似的事情
00:26:45确实加快了我的速度。
00:26:47我认为我们在智能体技能方面起步相当早。
00:26:50那时候Cursor还不支持这些功能之类的。
00:26:53所以当我听到相关消息时,我就想:我们真的得抓住这个机会。
00:26:57然后深入研究了这些到底是什么。
00:27:00为什么它们很重要?
00:27:01诸如此类的东西。
00:27:02所以这也是一个重要因素,就是搞清楚工具,我该如何使用这些工具。
00:27:08所以要弄清楚我喜欢用哪些技能,如何调用它们,Claude每天都发布七个新功能。
00:27:14所以我正努力跟上这些进度。
00:27:15嗯,那么在个人层面可能更多一些。
00:27:18我有一个开放的Claude智能体。
00:27:20事实上我们在Recent里也有几个。
00:27:23我们会把它们用于一些非常有限的任务。
00:27:26我用自己的智能体来管理所有任务,通过一个同步到GitHub的Obsidian库,我也可以在本地查看它。
00:27:33那是一个非常复杂的系统,你肯定不想听,但能与我的任务管理器进行这种对话真的非常有帮助。
00:27:40但我也可以在程序中打开它,并对其进行浏览。
00:27:44所以我认为在个人层面上,它帮我能够把事情先搁置,以后再处理,并信任那个系统。
00:27:50而在工作中,它主要加快了我的研究速度,能快速理解某些领域的情况。
00:27:56给我提供去哪里的方向,或者在编码方面,大多是处理一些小的功能请求,比如:嘿,Cursor,在Slack里做这个我们发现的小bug。
00:28:07或者它能帮我快速搭建起新的登录页面,又或者是帮我搞定某些功能的架构。
00:28:16然后我再自己深入到代码里去处理。
00:28:19是啊,那听起来真的很棒。
00:28:21我不是故意要上AI播客的,但你提到Recent里有几个开放的Claude,老实说,我对安全性有种恐惧。
00:28:33就是怕它获得不该获得的访问权限。
00:28:37所以第一,你们为什么在Recent里有几个开放的Claude?你们用它们来做什么?
00:28:44它们大多被限制在特定的团队或操作上。
00:28:48比如我们有一个用于市场营销,我们把它限制在独立的实例中。
00:28:55它只能访问自己的1Password库,所以我们可以给它非常有限的权限,并对那些API密钥进行作用域限制。
00:29:05所以我们用它做一些事情,比如它有自己的Twitter账号。
00:29:08它有自己的Gap账号。
00:29:09每周一它会启动。
00:29:13它会查看我们所有的Twitter、LinkedIn、SEO数据以及网站分析数据。
00:29:23它会收集所有这些,策划出我们遗漏的领域。
00:29:26它会查看我们的文档,看看人们在问什么问题。
00:29:29所以我们会给它喂非常具体的信息。
00:29:32然后它每周会给我们一份报告。
00:29:35这就是我们用它做的一件事,比如用于市场营销。
00:29:37其他团队也有自己的。
00:29:39比如有一个能快速介入并查看这次事故的主要原因是什么。
00:29:44这样当团队介入时,它就已经准备好所有详细信息了。
00:29:48同样,我们通过限制它所在的位置,以及通过API管理来限制它能访问什么,但界面完全是Slack。
00:29:57所以我认为有些团队比其他团队觉得它更有用,而且没人必须这样做,因为我们是先开始的。
00:30:03然后其他团队看到说:噢,这很酷。
00:30:05来看看我们能用它做什么。
00:30:07嗯,我认为在很大程度上,它对那些需要更多分析的自动化生成任务确实很有帮助。
00:30:14我们也会用它来提问。
00:30:17比如我们在X或类似平台上看到帖子,说:嘿,这里提到的这10家公司是我们的客户吗?
00:30:24而且它有权限去查询这类事情的一些基础数据。
00:30:27但很多时候,我们是把它限定在某些特定的功能上,然后找出它能帮上忙的地方,比如处理一些我不想自己去搜的杂活,那可能是我能做的事,但要花上我 10 到 15 分钟。
00:30:41我可以告诉Hermes,也就是我们的开放式Claude和营销团队:嘿,去帮我弄清楚这件事。
00:30:47然后我们就从那里开始。
00:30:48所以,这是一段很酷的旅程。
00:30:50其实是Zeno当初推动了这件事。
00:30:52所以有CEO在背后支持这类事情会有帮助。
00:30:55我们尽量非常小心,就像我说过的,将其限定在非常具体的事务上。
00:30:59所以它无法访问任何极为关键的数据。
00:31:03而且如果需要的话,我们也能很容易地将其关闭,事实上我们已经这么做过几次了,当时我们觉得不确定是否应该开放这些权限。
00:31:11所以把它撤下来或者限制API密钥。
00:31:14但我认为随着人们越来越多地使用像开放式Claude甚至Claude等工具,API作用域限制变得更加重要。
00:31:22比如Recent就想在这方面投入更多。
00:31:26我想你也看到很多其他公司都在这样做。
00:31:29这样你就能更有信心地把钥匙交给智能体去做些非常具体的事,但仅限于此。
00:31:35是的,这很疯狂,我认为就像你说的,限定范围很重要,Stripe好像有一种方式让智能体代替你花钱和办事。
00:31:44但我还是想深入了解一下,因为你说了一些我从未想过要做的事情,听起来真的很聪明。
00:31:50我想我可能会偷学一些主意,但你有个Hermes智能体去Twitter?
00:31:55所以它有自己的Twitter账号,它会登录Twitter并阅读人们的推文。
00:32:00它会建议你们写什么推文吗?还是它看什么流行并给你们提供相关信息?
00:32:07是的,我们试过让它写东西。
00:32:09它写得不太好。
00:32:10我相信智商更高的人可能能让它做到,但我做不到。
00:32:14所以它大多是做竞争对手分析。
00:32:17比如现在大家都在推特上谈论什么。
00:32:19这里有一些重要的事,你应该考虑做点相关的内容。
00:32:23之类的东西。
00:32:25我也可以只喂给它一条推文说:嘿,你能给我提供更多关于这里正在发生什么的背景信息吗?
00:32:30就像我们自己的小Grok一样。
00:32:33我得说我们的是一个开放式Claude智能体,我们在Hermes成名之前就叫它Hermes了。
00:32:38所以现在它就叫Hermes。
00:32:40这就是我们如何用它处理社交媒体的。
00:32:48它会每周做一次竞争对手分析,它以前是每天发布一次。
00:32:51比如大家都在发什么。
00:32:53我们给了它竞争对手名单,让它告诉我们他们在谈论什么。
00:32:56现在更像是按需互动。
00:33:00是。
00:33:01好吧,那真的很酷。
00:33:02我觉得我们也得做更多类似的事。
00:33:03我们没做过这些。
00:33:04我的意思是,我们有自己的技能。
00:33:06每个人都有自己的事情做,但我们没有一个中心化的。
00:33:11开放式Claude或Hermes机器人,能去浏览Twitter给我们提供超酷的视频主题或领域。
00:33:17我觉得那会非常酷。
00:33:18你有一段时间基本上是单人团队,AI显然有助于提高我们方方面面的生产力。
00:33:27但你还有什么依赖的工具来保持一切运转吗?
00:33:33我知道你喜欢Raycast。
00:33:35如果你想谈谈那个,也可以。
00:33:36但还有其他你现在正在积极使用的吗?
00:33:39是的,我相当沉迷于 Raycast。
00:33:43从早期的测试版开始我就一直在用。
00:33:46我以前被指责过太早接触新事物,但 Raycast 是我乐意支持的一个。
00:33:52所以我非常频繁地使用 Raycast。
00:33:53我觉得他们每年做的那个年度回顾数据,每次看都让我觉得有点尴尬。
00:34:01所以那也是很重要的一部分。
00:34:02正如我所提到的,我使用 Obsidian 来管理我的知识库,处理很多任务管理。
00:34:08我们在内部也有自己的一套系统。
00:34:11我觉得很大程度上也是团队本身的原因,Resend 团队非常关心
00:34:17我们与客户的互动,以及我们面临的顾虑或正在推进的事项等等。
00:34:21所以我感觉整个团队的思维模式非常外向,如果你...
00:34:26你知道,很多工作场所,他们大多只关注产品本身,有时会觉得...
00:34:31嗯,当然,人们只会使用这个。
00:34:33但很多开发人员对我们正在做的事情感到非常自豪。
00:34:36所以他们一直在谈论它,在推广它,并说,哦,我们应该这样做。
00:34:39因此,虽然在某种程度上,我现在算是一个单人团队,Christina 也会尽力帮忙,
00:34:45但我认为整个公司确实都是这样思考的。
00:34:49这让我的工作变得更容易。
00:34:51他们总是带东西给我。
00:34:53我总是在听,然后说,哦,我们可以做点什么吗?
00:34:55然后他们会帮我把事情推向终点,设计部门也会很快加入。
00:34:59我推出的很多东西都有他们的痕迹,因为你知道,
00:35:04他们会帮我设计图形之类的东西。
00:35:06所以这是一个团队的共同努力。
00:35:08但对于我个人的工作来说,主要还是靠 Raycast。
00:35:13我使用 Obsidian。
00:35:14我使用 OmniFocus 已经 15 年了,用于更全局的思维管理。
00:35:19我们在 Resend 内部也使用 Linear。
00:35:22Slack 基本上是所有事情发生的地方。
00:35:24频道太多了。
00:35:25看到新员工加入时,看着他们第一次打开 Slack 时的眼神,总是很有趣。
00:35:30就是那种感觉。
00:35:30所以就是那样。
00:35:32我不知道我有什么秘诀,除了我尽量对自己能完成的事情保持现实。
00:35:40然后,是的,如果你现实一点,你能完成很多事情。
00:35:41而且我认为这在很大程度上是对我而言的一种心理小把戏。
00:35:44当你有点过度扩张自己或把日程排得太满时,你总是会感到落后。
00:35:47所以我尽量留出很大的余地,这样我总能感觉超前。
00:35:52我知道这是一个笨拙的心理把戏,但它对我有效。
00:35:56所以我尽量花很多时间确保当我承诺做某事时,我一定会做到。
00:35:58不幸的是,你要做的事情越多,这就越难。
00:36:04但我不知道我是否有什么秘密魔法,关于我如何完成工作,
00:36:08除了列出其中的一些工具和我做事的方式。
00:36:12好吧,我读了你几天前写的那篇文章,对吧?
00:36:16主题是“可预测性是一种超能力”,对吧?
00:36:19你谈到了计划时间长于实际需要的时间这一整套理念,
00:36:23你谈到了那种预留比实际所需更长的时间来规划整体任务的想法,
00:36:28但你提到只规划到下午 1 点,对吧?
00:36:33这种方法你用了多久了?
00:36:38因为它确实非常有道理。
00:36:40既然我们的任务很耗时,所以你只把时间分配到那个点。
00:36:46我想知道这方法对你效果如何?
00:36:49这是最近才开始的吗?
00:36:50是的,我用这个方法好几年了。
00:36:53我了解自己,我很容易分心、好奇,
00:36:57还有其他各种事情。
00:36:57而且事情往往不会如你预料的那样进行。
00:37:00比如你录制一段视频,心想“这绝对不会超过20分钟”,
00:37:03结果却花了一个半小时。
00:37:05这就是生活。
00:37:06我认为处理这种情况主要有两种方式。
00:37:09一种是每天都计划完美的一天,结果却从没按计划进行。
00:37:13然后你总是觉得自己像个落后的失败者。
00:37:15或者你干脆做好准备,意识到这就是生活。
00:37:18特别是在与人打交道时,多留出一些时间非常重要,
00:37:22因为人不是机器,你需要为此做出调整。
00:37:28比如前几天我和某人有个会,本应是30分钟的。
00:37:31结果我们聊了一个小时,虽然我知道有些人可能很忙、很重要,
00:37:35可以直接说“会议结束了”。
00:37:37但我觉得,除了正事之外,还有更多需要聊的。
00:37:40他们确实需要一些额外的关注。
00:37:43所以这没关系。
00:37:44我不会因为那样就感到匆忙。
00:37:46我想让人们感受到他们得到了我的全神贯注。
00:37:50所以我这样做已经好几年了。
00:37:51但我觉得很大程度上,是因为每天结束时总觉得“天哪,我什么都没做成”。
00:37:55所以我用了个小技巧,
00:37:56告诉自己我只计划做这么多。
00:38:00我会确保给那些“不完美的一天”留出余地。
00:38:03然后当我几乎每天都完成计划时,我就开始处理明天的事情了。
00:38:07那其实是当天的任务,
00:38:09但在我心里,这算作明天的活。
00:38:10所以理想情况下,到了周五,我已经完成了整周的所有工作。
00:38:14然后还有一些我原本想做的额外事情,
00:38:17这些本该就在当天完成的。
00:38:19但这让我感觉“嘿,我进度超前了”。
00:38:20我很乐观。
00:38:21我可以保持好奇心。
00:38:22我可以花时间陪人。
00:38:24所以我认为这更多是像“大脑黑客”一样,换种方式去思考,
00:38:29让你能够以最好的状态去工作,而不是总在后面追赶、感到压力,
00:38:33或者其他的负面情绪。
00:38:34生活里有很多变数。
00:38:35并不是说我有时不会有那种感觉。
00:38:37但这种心态上的“黑客手段”确实让我的工作体验变得更好。
00:38:41反正我最终能完成的工作量就那么多。
00:38:44所以更重要的是,如何将这种体验塑造成我享受的,而不是
00:38:48一直感到压力的那种?
00:38:50是的,这真的很触动我。
00:38:52我想我也是那种每天都觉得“噢,我做得不够多”的人。
00:38:55我希望自己能完成这个,完成那个。
00:38:57所以,我真的得去看看那篇文章,因为这很容易让人陷入这种困境,
00:39:02这是一个很容易掉进去的陷阱,特别是如果你非常,那个词怎么说来着?
00:39:06如果你想取得很大成就,或者如果你手头有很多工作要做。
00:39:12所以,我认为这是一个不给自己太大压力的好心态。
00:39:16所以我去读读那篇文章。
00:39:17好的,如果你的大脑也是这样运作的,告诉我一声,至少我是这样。
00:39:20而且我知道,我是公开谈论这件事的。
00:39:22我清楚是怎么回事,但它依然有效。
00:39:25是啊,是啊。
00:39:26哦,那太好了。
00:39:29那么,我们过会儿要谈谈你的视频设置,
00:39:31因为我很感兴趣,但我们先看看观众提的几个问题。
00:39:35问题非常具体。
00:39:37所以如果你回答不了,也不用觉得必须回答。
00:39:40第一个问题来自 QProductions23。
00:39:43他说,能不能问问他,他们会不会增加临时邮箱功能?
00:39:47这对快速开发应用原型很有帮助。
00:39:51我不太确定我完全理解这个问题。
00:39:53什么意义上的临时邮箱?
00:39:56我也不太理解。
00:39:58但我脑子里想的是,这是我理解的意思,能不能发送临时邮件?
00:40:05比如,我不确定你是不是有一个类似临时收件箱的东西,
00:40:08你想测试某些东西看它是否正常运行,可能吧。
00:40:10哦,明白了,也许是 Resend 内置的邮件收件箱?
00:40:14对,类似那种。
00:40:15嗯,这个功能需求以前确实出现过。
00:40:18我觉得很多时候我们是在衡量什么对现有客户更有帮助,
00:40:23以及什么能吸引新客户。
00:40:25所以,这事我会带回团队讨论。
00:40:28我只能这么说。
00:40:29据我所知目前还没有立即执行的计划。
00:40:31第二个问题来自 Life of Code。
00:40:33问一下关于垃圾邮件过滤器、IP 标记,以及如何保持高质量以防止这些问题。
00:40:39关于域名信誉和送达率,我有太多要说的了。
00:40:43所以,我不想讲太长,但这里面的内容很多。
00:40:46不过,关于这方面我过去确实做过一些内容。
00:40:49所以我建议他们去看看那些内容。
00:40:52但总的来说,我认为开发者通常认为,
00:40:57只要你达到了发送量,邮件就会进入收件箱。
00:41:00然而要真正进入收件箱,还有很多因素。
00:41:03目前来说,特别是 Gmail,
00:41:06他们在很多意义上掌控着电子邮件。
00:41:09他们主要关注的是你的域名信誉,而不是 IP 信誉。
00:41:13这并不是说 IP 完全不重要。
00:41:15我们尽职尽责确保我们的 IP 非常健康,
00:41:20但真正重要的是你的域名。
00:41:22所以,你从哪里发送邮件,把它想象成邮局。
00:41:27如果你某天突然出现,直接扔下 10 万封信在柜台上,
00:41:30他们会问:这是谁?
00:41:32你知道,他们不会信任你。
00:41:34你真的必须建立声誉信任。
00:41:36这需要一点时间来建立,但你可以在瞬间失去它。
00:41:42所以你自己必须设置一系列的防御措施。
00:41:45这涵盖了方方面面,比如确保你是从子域名发送。
00:41:50这样,如果你的域名出现问题,你可以换到另一个子域名,
00:41:55而不至于影响到整个平台的每一次发送。
00:41:59所以确实有一些基本的做法。
00:42:01确保包含退订链接,以及那些不纯粹是
00:42:03像权限验证之类的事务性邮件。
00:42:06这里有很多指导建议。
00:42:08但每当邮件进入邮件收件箱时,
00:42:12那个正在接收邮件的邮箱提供商——Gmail、雅虎、Outlook 等——
00:42:16他们都在使用自己专有的过滤器集来检查。
00:42:20他们不会把这套规则告诉任何人,因为如果告诉了,
00:42:22我们收到的就全是垃圾邮件了。
00:42:24所以他们是在尝试解读很多信号,
00:42:27这些信号都与你的发送频率有关。
00:42:30还有一些身份验证设置,比如 DMARC、SPF 和 DKIM,
00:42:35这些就是我刚才提到的一堆缩写词。
00:42:38就像我说的,电子邮件周围充满了诡异的复杂性。
00:42:42但总体而言,这种思维方式将真正帮助开发者去思考,
00:42:45好的,我看起来像个可信的发送者吗?
00:42:47我是发给那些已经选择接收的人吗?
00:42:50就像我们 Resend 不允许发送冷邮件一样。
00:42:53你必须真正获得对方的许可才能向他们发送邮件。
00:42:57所以有很多这样的基础工作,如果你遵循这些基础,
00:42:59只发送给那些愿意接收的人。
00:43:01你以一种可信的方式进行发送,而不是像刚才那样直接
00:43:05倾倒几千封邮件。
00:43:07然后你要注意一些基本的最佳实践。
00:43:10比如虽然没有明确禁止使用某些词,但通常来说,
00:43:14你的链接域名应该与发送域名相同。
00:43:17你的图片引用也应该与发送域名相同。
00:43:19不要使用那种垃圾邮件风格的词汇。
00:43:23很多时候你会发现,Gmail 特别会告诉你,
00:43:25嘿,这封信因为这个原因被判为垃圾邮件。
00:43:27你可以调整内容,看看它有什么影响。
00:43:30当你使用 Resend 发送时,我们也会为每封邮件显示送达率洞察。
00:43:34这在一定程度上是为了教育用户。
00:43:36所以你发送的每一封邮件,你都可以查看邮件表格,
00:43:39查看那封特定的邮件,它会给你提供一些洞察,比如,
00:43:41嘿,确保你做好了所有这些最佳实践。
00:43:44总而言之,如果你有这样的思维方式,嘿,我将以一种值得信赖的方式发送,
00:43:49人们希望收到这些邮件,他们已经提前选择了接收。
00:43:52我是在以一种可预测的模式发送。
00:43:53这些确实是你在心里必须想通的大事。
00:43:57然后还有很多细节,我们也可以帮你弄清楚。
00:44:00所以,这就是我关于垃圾邮件过滤器、送达率以及
00:44:05IP 和域名信誉所能给出的简要回答。
00:44:06希望我说了一堆缩写词之后,你还能听懂。
00:44:10我觉得这太棒了。
00:44:11你在电子邮件方面拥有的知识财富太令人惊叹了,而且这很有道理。
00:44:15我早些时候本来想让你解释一下 Resend 是如何让开发者的邮件工作变得更容易的。
00:44:20我觉得光是这个问题本身就解释了当你想要设置电子邮件时,
00:44:24必须克服多少障碍。
00:44:26是啊。
00:44:27我记得我自己尝试做的时候,React Email 一出来我就直接用了,
00:44:31然后还有 Resend,因为我当时没意识到电子邮件有这么多麻烦事。
00:44:35而且,我也喜欢自托管,但人们告诉你永远不要自托管的东西就是电子邮件。
00:44:41因为那样的体验绝对不会开心。
00:44:43是啊。
00:44:43是啊。
00:44:44欢迎来到电子邮件服务提供商的世界。
00:44:46这里面有它自己的一套挑战。
00:44:49是啊。
00:44:50我觉得我们从 React Email 开始,这真是一个非常酷的起源故事。
00:44:53比如 Zeno 和 Boo,这两位联合创始人,他们当时不得不……
00:44:58如果你曾经亲手写过电子邮件的 HTML,那感觉就像,这是哪个世纪的东西?
00:45:02你知道,你在写表格和浮动布局,他们当时想,肯定有
00:45:07更好的办法。
00:45:07确实有一些东西,但它们并没有真正拥抱现代触感。
00:45:10所以,我想他们当时的愿景就是,让我们构建一些你可以真正用上
00:45:14TypeScript、React 和 Tailwind 的东西。
00:45:16所以,那便是 React Email 的诞生。
00:45:18然后才有了 Resend,因为他们发现,发送环节其实也不太好用,
00:45:21所以,
00:45:22让我们来解决这个问题。
00:45:23但电子邮件周围确实有太多的怪癖了。
00:45:26我们花费大量时间通过拦截垃圾邮件来真正保护我们的用户。
00:45:31人们试图通过我们的平台发送垃圾邮件。
00:45:33所以我们有一个专门的团队致力于信任和安全。
00:45:36但一旦你开始大规模发送邮件,你要么必须成为电子邮件
00:45:39专家,要么就得拥有一位电子邮件专家。
00:45:41我觉得 Resend 的特别之处在于,我真心认为这是我们的核心,
00:45:45我希望我们能一直保持下去——我们将支持视作 DX(开发者体验)的一部分。
00:45:51不管 API 有多好用,
00:45:54如果当你遇到问题联系我们时,却找不到人,那有什么用呢。
00:45:57你确实需要一位邮件专家,我们希望成为大家的那个专家。
00:46:00所以,如果你是 Resend 的任何付费层级客户,你都可以获得一个共享的 Slack 频道。
00:46:06我们对大家的响应速度非常快。
00:46:09当然,我们还要做得更好。
00:46:11这始终是一个我们追求的冲刺目标。
00:46:14但我们认为,当你遇到困难时,你应该来找我们,我们应该能够
00:46:18和你一起投入解决问题。
00:46:19我们可以和你一起研究 Google Postmaster Tools。
00:46:22我们可以和你一起深入探讨送达率问题,并现场帮你调试。
00:46:25所以,将支持包含在 DX(开发者体验)中对我们来说非常重要。
00:46:31我希望人们来到 Resend 时能感受到这一点,比如得到悉心的照顾。
00:46:35我们是你的后盾,你不需要成为专家,因为你已经有了一位专家。
00:46:39我们想继续为我们的客户做这件事。
00:46:41你知道,我最早接触电子邮件是在做自由职业的时候,有人问我,你能添加电子邮件功能吗?
00:46:45当时我天真地想,噢,邮件这东西肯定早就解决了。
00:46:47我们都用这么多年了,这事儿能有多难?
00:46:50这玩意儿不可能那么难。
00:46:51然后,我就钻进了那个兔子洞,噢我的天,这简直太疯狂了。
00:46:53就是各种邮件客户端之间的兼容性问题。
00:46:57我们有几个浏览器引擎和几百种邮件客户端?
00:46:59而且没有任何统一标准。
00:47:03我不知道我们是否会有标准,因为这完全取决于大厂商。
00:47:05光是这一点,想让内容在不同客户端上看起来一样就非常困难。
00:47:11React Email 现在有了完整的代码检查器、兼容性检查器和预览功能。
00:47:15现在 React Email 已经有了完整的代码检查、兼容性分析和预览功能。
00:47:19我们希望继续完善它,让人们能更清楚地知道:
00:47:24比如 Claude 可以直接生成 HTML 邮件,但你不知道它呈现出来好不好看。
00:47:26它在你的网页浏览器里看起来很好,但这并不意味着什么,
00:47:30因为每个客户端都太不一样了。
00:47:33所以我认为这就是,邮件里有很多隐蔽的陷阱。
00:47:35所以我们试图让这些问题变得容易解决。
00:47:40但本质上它就是一个塞满了各种东西的遗留产业。
00:47:42这就是它的本质,你知道,它有着自己的复杂性。
00:47:46所以你可能真的需要一个能牵着你的手,以有帮助的方式指导你的人。
00:47:51所以我们这里的大多数做视频的人都有一个成长路径,比如他们从哪里开始,
00:47:55我们邀请的大多数做视频的嘉宾,都有一个成长轨迹,讲述他们从哪里起步,
00:48:02包括他们起步时的装备,以及后来更换的设备。
00:48:04嗯,我是从只有摄像头开始的。
00:48:07实际上,我很长一段时间根本不拍视频。
00:48:11当我在以前那家公司工作时,我录的是配音。
00:48:14所以很早就有了这支麦克风,其实我很感激它,那是 RE20。
00:48:19音频对我来说是最重要的。
00:48:26在我做频道几年后,我终于露了次脸。
00:48:30那不是刻意的,不像是什么大动作。
00:48:35我只是把自己录下来了。
00:48:37当我买摄像头时,买的是 Insta 360。
00:48:38我用了好几年。
00:48:42然后加入 Resend 六七个月后,他们说,
00:48:44让我们真的投资一下视频,这样你就能随时直接投入拍摄,
00:48:49不管是一天中的什么时间,无论发生什么,效果永远是一样的。
00:48:53所以我们和设计这套场景的公司合作。
00:48:56它其实就在我地下室的办公室里。
00:49:00我调整了办公室方向。
00:49:03如果有人看过我更早的视频,我以前是朝这边坐的。
00:49:04现在我朝这边。
00:49:07这整面墙都是我自己粉刷、安装架子并布置的。
00:49:09至于相机本身,是 Panasonic 的,噢,Lumix S5 II,我想是这样。
00:49:12我不记得镜头是什么了。
00:49:22我不是那种相机的发烧友,他们让我买什么我就买了。
00:49:24就是他们告诉我的那个。
00:49:27我想可能是 35 毫米镜头。
00:49:28但我有提词器,两个屏幕。
00:49:30但我有一个提词器,两块屏幕。
00:49:33而且最棒的帮手就是这套灯光设备。
00:49:36我其实设置了按钮,可以直接把灯全部关掉。
00:49:40这样按一下就能全部打开,一切就都准备好了。
00:49:43所以我只要坐下来,轻触桌下的两个按钮,
00:49:48按下录制键就开始了。
00:49:49所以,是的,我真的很感谢 Zeno
00:49:54对工作室的投入。
00:49:55这让录制内容变得非常简单。
00:49:58而且我这边还有台小电脑,实际上是台 SC30,
00:50:02是可以运行的,我是在加州买的,坐飞机带回来的,
00:50:06硬塞在脚下,还用外套盖着,因为它实在塞不进去。
00:50:10但我还是带回来了。
00:50:11所以能得到它也挺开心的。
00:50:13所以我也算是在有机会的时候一点点完善我的设备。
00:50:18至于接下来想增添什么,我还没什么特别的目标设定,
00:50:20不过折腾这些背景布置还挺有趣的。
00:50:24你能多讲讲你的灯光吗?
00:50:25我想在座的对录制之类的事多少都懂一点。
00:50:28所以我很想知道灯的位置以及你用的是什么灯。
00:50:31好啊。
00:50:32好的。
00:50:32我也说不清那些设备叫什么名字。
00:50:34刚安装的时候我肯定知道。
00:50:36这个好像是爱图仕(Aputure),我不记得具体的型号了,
00:50:38大概有三英尺宽吧,差不多这样。
00:50:40所以这个算是一个主要的大灯。
00:50:43还有一个聚光灯打在天花板上。
00:50:45我还装了另一个在头顶后方,用来向下打光。
00:50:48然后在侧面还有个小小的环境灯。
00:50:51所以,是的,我现在的设置并没有特别亮。
00:50:55这样摄像机需要多做点工作,我就不会被热着。
00:50:58刚设置好的时候,亮度是现在的五倍。
00:51:02当时我就想,热得我直冒汗。
00:51:04这样根本没法工作。
00:51:06所以这里的灯其实挺暗的。
00:51:09但这样能让相机承担更多一点处理工作。
00:51:13反正就是那四盏灯。
00:51:14主大灯,那个天花板灯好像只是提供环境光之类的。
00:51:20嗯,这个应该是作为轮廓灯(发光灯),还有那个环境光。
00:51:25你知道,我刚开始做视频的时候,有一盏灯
00:51:28离我的脸只有一英尺远,而且亮度全开。
00:51:31拍视频的时候简直要把我烤焦了。
00:51:35那时候真的很难受。
00:51:37是啊。
00:51:37没错。
00:51:38嗯,后来了解轮廓光真是太迷人了。
00:51:41慢慢地往上加设备。
00:51:42最开始只有一盏灯,然后你会觉得,
00:51:44我好像需要一盏轮廓灯来照亮我的头发。
00:51:48是啊。
00:51:49这是一个奇怪的深坑。
00:51:51没错。
00:51:52确实。
00:51:52我基本上就是按照公司告诉我的那样去做。
00:51:56所以我真的不懂它是怎么运作的。
00:51:57虽然我算是从零做到了现在的效果,但我也不抱怨什么。
00:52:01没错。
00:52:02听起来是一家很棒的公司。
00:52:03我想我们需要联系他们看看能不能也帮帮我们。
00:52:06我确实也有几盏灯。
00:52:08我还没有爱图仕。
00:52:09我听过很多关于爱图仕的好评。
00:52:10我用的是 Elgato Key Light,效果也挺好。
00:52:14我也用松下 Lumix,不过感觉比你的型号老一点。
00:52:18但效果不错,而且我配了个不错的镜头。
00:52:21是啊。
00:52:21我真的很喜欢松下处理视频的方式,而且它们总体也便宜点。
00:52:26所以这是我选择它的主要原因。
00:52:27所以我认为那是促使我选择它的主要原因。
00:52:30它能撑得住你的直播吗?
00:52:32因为我知道很多相机都会过热。
00:52:34目前为止表现还可以。
00:52:36我觉得我连接它的采集卡(Cam Link)好像开始出问题了。
00:52:41希望今天通话时别掉链子,以前确实出过这种状况,
00:52:47不过我也在直播中途把相机彻底关掉过。
00:52:50反正当时也没人在看我,所以没关系。
00:52:53嗯,但总体来说它还好,只是最近开始出现了一些问题。
00:52:58我可能会寻找替代品,我觉得可能是采集卡导致的故障。
00:53:02因为我重新拔插一下它就好了。
00:53:03所以,是的,不过我觉得相机本身没问题。
00:53:06我前几天刚换了个采集卡,因为我觉得它也快坏了。
00:53:09前几天我不得不更换了采集卡,因为我肯定它也坏了。
00:53:13最后我只是买了另一家公司的采集卡。
00:53:16我不确定哪种方案最好,但确实可能是采集卡的问题。
00:53:20对。
00:53:20就像你有时会记一些笔记一样。
00:53:22我在听《Syntax》播客时,他们提到过采集卡有故障,
00:53:27他们提到过 Cam Link 出了些问题,所以他们换了别的设备。
00:53:30虽然我不知道具体是什么原因,但我知道当遇到问题的时间够长时,
00:53:34我就会去他们的网站上搜,买他们推荐的那个,
00:53:37因为这似乎是个常见问题。
00:53:39是啊。
00:53:39而且对于发布周视频,我看了最近几个发布周的视频,确实拍得非常好。
00:53:44那是同一家公司做的,还是不同的?
00:53:45或者是怎么运作的?
00:53:49是这样的。
00:53:50是啊。
00:53:51我们在巴塞罗那一起参加过线下活动,是在两、三个发布周前。
00:53:57当时我只是说,我们要不自己录吧?
00:53:59所以,不是这一次或上一次,而是往前数三次,
00:54:01我们录过一次,比我们想象的难多了。
00:54:07部分原因是我们在一个会议室里。
00:54:10楼下还有个午宴在进行。
00:54:13全是环境噪音,我们当时简直是乱成一团。
00:54:15然后我们心想:这也太难了。
00:54:20看看我们能找谁合作。
00:54:21所以我们联系了旧金山的 Open Light Studios,
00:54:23如果我没记错的话。
00:54:25从那以后,不管是这次还是上周,我们都是去那里录制的。
00:54:31他们会给我们提供初剪版,我们可以要求进行调整。
00:54:35然后我基本上从那里接手,做后续所有的剪辑工作。
00:54:40这对我来说是一次学习经历,有很多事是我以前没做过的。
00:54:40之后基本上就由我来负责所有的剪辑工作了。
00:54:44所以,这算是一次学习经历,很多事情我以前都没做过。
00:54:48这一次,我们还另外签了人来做音乐和音效,以及后续的一些润色,
00:54:55这提升了整体的质感,我觉得靠我自己是做不到的。
00:55:01上次录制是他们负责的,我负责所有剪辑。
00:55:03而就在几周前的这次发布周,
00:55:05我完成了大部分剪辑工作。
00:55:08我们请了一位终审剪辑师来添加音乐和音效,
00:55:12以及一些小细节。
00:55:13我们找了一位最终剪辑师来添加音乐和音效,
00:55:17还有一些诸如此类的小细节。
00:55:19但实际上,大部分出镜的内容还是我自己做的。
00:55:21我很喜欢那些转场。
00:55:22我相信你用了多机位,还有那些精美的泡泡效果,
00:55:23以及用来解释内容的文字。
00:55:24肯定用了多机位拍摄,还有那些好看的气泡或是,
00:55:28用来解释人们在说什么的文字。
00:55:30这次其实稍微偷了点懒,
00:55:30我用了 Figma,
00:55:32呃,这次我们其实稍微偷了点懒,我直接用了 Figma
00:55:36我们基本就是导出成 Figma 里的那种气泡效果。
00:55:41之前那次,我是自己动手做了一个自定义动画。
00:55:43如果你去看那两个视频,不是说你非得看,
00:55:46之前那次是在 DaVinci Resolve 里完成的。
00:55:50我花了五个小时陷进去了,做了一个带有折射光效果的自定义泡泡。
00:55:53但实在是太费力了。
00:55:59尤其这一次,要做的事情太多了。
00:56:01我觉得我没精力再折腾这个了。
00:56:03而且那个方法很硬核。
00:56:06懂 DaVinci Resolve 的人肯定会问:
00:56:09你用 Fusion 到底在干嘛?
00:56:10赶快把软件没收了吧。
00:56:13反正这次做的很简单,
00:56:14但上次那个确实很复杂,也很有趣,可惜这次没精力做了。
00:56:17我竟然都不知道 Figma 还能做动画,我也得去研究下。
00:56:23应该只是 Figma 里的玻璃效果泡泡,
00:56:26我把它导入到 DaVinci Resolve 里做动画的。
00:56:29抱歉。
00:56:30对了,我们最后通常会问,你有什么犀利的技术观点吗?
00:56:34可以剪成精彩片段的那种。
00:56:39抱歉。
00:56:39没事。
00:56:40我们最后通常会问的一个问题是,你有没有什么辛辣的科技观点,
00:56:45就是那种适合剪成短片的观点。
00:56:47我觉得很有意思的一点是,React 服务器组件已经出现很长一段时间了,
00:56:52却依然处于一种暧昧不明的状态。
00:56:55而且不断爆出的安全漏洞也让情况雪上加霜。
00:57:01所以对我来说,我不知道自己算不算那种喜欢发表辛辣观点的人,但
00:57:06在架构层面,React 服务器组件确实存在两个主要挣扎点。
00:57:10首先是它的实现方式。
00:57:11确实存在很多安全问题。
00:57:13其次,就是它的思维模型。
00:57:15Dean Abramoff 去年写了一篇文章,
00:57:21用 Astro 来解释 React 服务器组件。
00:57:24我在想,当你必须借助另一个完全不同的框架来解释
00:57:28你的框架是如何工作的时候,这说明从思维层面上讲,它的设计并不是很直观。
00:57:32我知道 React 团队的人远比我聪明,
00:57:36但我认为,所有网站都应该默认使用 Astro,这就是我的辛辣观点。
00:57:45而且我真的认为,大多数时候人们并不是在构建那种功能庞杂的 Web 应用,Astro 几乎可以满足你对大多数基础网站的所有需求。
00:57:55当然,我说的不是应用,但即使是构建一些基本应用,Astro 也能让你完成大部分工作,而且你能享受到内容集带来的好处,
00:58:03比如类型安全的 Markdown,你想要的各种渲染模式,对字体和图像的全面支持,系统里内置了
00:58:12系统内置了非常多功能。
00:58:14当你需要时,它非常基础,而且在逻辑和思维层面上,有着清晰的层次划分。
00:58:21比如什么是服务器端,什么是客户端,React 服务器组件带来的那种搞清楚代码在哪运行的复杂性,在 Astro 中根本不存在。
00:58:29因为两者有非常明确的界限。
00:58:30所以我的辛辣观点就是,大家应该默认使用 Astro。
00:58:34我认为这可以通过这些元框架试图实现 RSC 的方式看出来,这种方式在
00:58:43技术安全性以及很多人的思维模型层面显然是行不通的。
00:58:47但我也只是个 Astro 的死忠粉。
00:58:49所以,你懂的,我也没啥好意外的。
00:58:52是啊,我确实没法反驳你刚才的观点。
00:58:54因为我的个人网站也使用 Astro,我也很喜欢它。而且对于那些还不知道的人来说,React 服务器组件
00:59:00就在昨天或今天,又爆出了另一个漏洞。
00:59:04就在昨天。
00:59:05嗯,是的。
00:59:06所以,我可能很快会做一个相关的视频,取决于它技术实现的细节,但我
00:59:11今年已经做了两三个关于 React 漏洞的视频了。
00:59:14今年服务器组件的情况确实有点疯狂。
00:59:18我觉得人们开始因为这些原因怀疑它们了。
00:59:21这使得人们很难想要围绕 React 服务器组件去架构整个应用,尽管它们是一个非常有用的模式,
00:59:27但显然存在一些问题。
00:59:32确实。
00:59:33我挺喜欢 TanStack Start 最近添加服务器组件的方式。
00:59:37因为那是他们自己的实现。
00:59:38我不觉得他们会受到那些漏洞的影响。
00:59:40而且,你明确知道自己正在创建一个服务器组件。
00:59:45而 Next.js 显然是默认一切优先使用服务器组件。
00:59:48然后你再主动去创建客户端组件。
00:59:50Tanner 真的做了太多东西。
00:59:51他住得离我挺近的。
00:59:53嗯,他真的是太厉害了,我不明白他是怎么做到这一切的。
00:59:56而且我觉得他处理事情的方式非常基础,总是寻求“什么是最好的实现方式”,某种程度上他掌握了核心密码。
01:00:06我知道不仅仅是他一个人的功劳,但我一直对他印象非常深刻。
01:00:11我觉得我每天都在想,你是怎么做到能输出这么多内容的?
01:00:15而且他也是世界上最好的人之一。
01:00:17如果你有机会见到他,你会觉得他只是个普通人。
01:00:20真的,他表现得就像世界上最普通的人。
01:00:23然后你会意识到,哦,他正在重写我们做过的所有东西。
01:00:27特别是在前端领域。
01:00:29但是,你知道,我一直打算邀请他上播客,因为我是 TanStack 的超级粉丝。
01:00:33而且他们拥有一个似乎能解决当前 JavaScript 生态系统中所有问题的库。
01:00:38真的是解决所有问题。
01:00:40感谢收听本期 Better Stack 播客。
01:00:43欢迎在各大播客平台关注我们。
01:00:45比如 Apple、Spotify,到处都能找到我们。
01:00:48感谢 Chris 加入我们。
01:00:50和你聊天,谈论 AI 以及你所做的工作非常棒。
01:00:54希望未来我们能再次合作。
01:00:55聊聊 AI 以及其他东西。
01:00:58但现在,先跟大家说再见。
01:01:00我也跟大家说再见。
01:01:01我这边的再见。
01:01:02那是我的再见。
Community Posts
No posts yet. Be the first to write about this video!
Write about this video