随着这一年的结束,我和团队花了一些时间回顾Tina从年初到现在的进展。2021年初,TinaCMS是一个新兴的开源项目,Forestry团队对其充满了建设的热情。这个项目在很多方面与今天你所熟知的TinaCMS大相径庭。今年的旅程涉及到对开源项目的一些重大改变,但我们的使命始终如一:提供一个开源CMS,为全球最优秀的网页开发者和内容编辑者提供10倍的体验。
今年早些时候,我们收到了来自使用TinaCMS的大小公司的大量反馈。我们了解到Tina过于开放,试图做太多事情。我们决定设置一些限制,以缩小Tina的关注点,但为更多用户提供更好的整体体验。我们选择Next.js作为Tina目前的首选框架(而不是Gatsby等),专注于存储在Git中的内容,而不是支持任何数据存储,并用你现在看到的并排编辑体验取代了页面内编辑体验,以改善整体开发者体验。此外,我们为TinaCMS添加了一个GraphQL API,它为你提供了Git支持内容的所有好处(版本控制、内容所有权、分支等),同时还增加了一个可以轻松查询的结构化API。
现在,到了12月,Tina已经有了显著的发展。我们对2021年取得的成就感到非常自豪。我们缩小了Tina的关注点,并为未来Git支持的内容编辑奠定了坚实的基础。
在新的一年里,我们期待分享我们对2022年的愿景,并讨论我们为TinaCMS计划的所有令人兴奋的功能。
测试在2021年初,我们仍在作为一个产品寻找自己的定位,我们有一个愿景,即无论用户选择了什么CMS,都能轻松编辑内容。我们投入了大量工作来改善我们现有的功能体验,并添加了我们认为对社区重要的新功能。我们还增加了3名团队成员,以推动开发者和用户体验。
四月是云产品的发布。Scott Gallant(CEO)在2021年4月21日宣布推出TinaCloud,强调了由可视化编辑驱动的Git支持内容的重要性。我们希望提供一种使用Git的顶级体验,并允许没有GitHub的用户能够编辑内容。如果你有兴趣再次阅读原始公告,这里是链接。在回顾时,我们对仅仅8个月后的现状感到非常兴奋。
五月是我们全力投入使用Next.js的时候,吸引我们的最大因素是:
使用单一框架帮助我们快速迭代,专注于正确的问题,而不是担心我们支持的每个框架的边缘情况和细微差别。
我们觉得我们走在正轨上,需要更多的开发者使用Tina,以便我们能够保持创新的势头。五月底,我们聘请了一名开发者倡导者(嘿,就是我!)来与我们的受众(嘿,就是你!)联系,我们觉得准备好开始建立我们的社区。在被聘用之前,我对Tina的概念以及Tina在研究视频后所做的事情很感兴趣。我永远不会忘记我在那个视频中说的话,
"Tina真的很强大,我将只展示它能做的表面。"
在与团队讨论Tina的愿景后,我全力以赴,我不想做其他事情或去其他地方。感觉就像昨天,但现在已经七个月过去了,我仍然有同样的感觉!
2021年6月2日,我们向社区宣布TinaCloud进入公开alpha阶段,并鼓励任何想要看到内容编辑和管理未来的人尝试一下。
你们都接受了我们的邀请,用户激增,提交增加,反馈开始涌入。我们感受到了一个想要并关心Tina的社区的开始。你的反馈直接传达给团队,并进入产品会议的头脑风暴。
我们收到的最常见和最有影响力的反馈之一是关于媒体管理的。你们想知道为什么不能使用Tina + Cloud管理你的媒体。我们知道这是用户面临的一个大障碍,所以我们立即开始研究解决方案,并引入了与Cloudinary的集成。我们选择Cloudinary是因为:
我们希望尽可能简单地为你的网站添加Cloudinary支持。因此,我们创建了next-tinacms-cloudinary
,它负责繁重的工作,通过最少的集成,你的网站就准备好了!
在八月,我们做出了自我加入Tina以来最大的公告。我们将产品置于beta阶段。我记得在接近公告时,"办公室"的嗡嗡声。我们的beta发布投入了大量的努力,所以团队很高兴看到世界对这些变化的看法。我们不知道如何将所有内容都放入博客文章中,公告不仅仅是将alpha改为beta,我们还拥有:
我们还聘请了Kelly来帮助我们的云产品,并聘请了Logan来帮助我们的开源产品。Logan已经作为实习生工作,但他是团队的重要组成部分,我们希望他在毕业后继续在Tina工作。
九月是Tina团队最艰难的一个月,因为我们的团队成员Frank意外去世。他惊人的能力使他能够与他遇到的任何人建立联系,从用户到团队成员,他的使命是将用户、产品和Jamstack结合在一起。他被怀念,但我们经常谈论他对Tina的贡献。
到目前为止,我们一直专注于开发者,但我们也希望确保我们为内容编辑者构建。我们为Tina引入了MDX支持,以便开发者可以创建团队所需的所有可重用组件,并允许你的内容团队通过单击按钮来重用这些组件。这个功能真正体现了Tina的核心,为开发者和内容编辑者提供无缝的体验。
我们还引入了一个Tina文档入门,允许文档团队通过单击按钮快速开始创建新页面和编辑页面。这个入门也由MDX驱动,因此不仅可以通过单击按钮开始,还可以添加团队可能需要的所有可重用组件,以创建出色的文档。
在11月,我们着手从各个方面审视我们的文档,以确保无论你想如何使用Tina,都能获得所需的信息。我们召集了团队,每个人都带来了不同的视角,这些视角来自他们的经验、用户研究和你的反馈。这个练习带来了巨大的改进和完善的文档,以便你获得所需的一切。
我们还添加了使用GitHub帐户登录的功能,使一切更容易整合。通过一个简单的快速入门流程,你可以登录,选择我们的一个入门,并让我们为你部署。基本上,这意味着你可以在几分钟内测试和玩转Tina。
12月通常是一年中较慢的时间,但Tina不是。我们仍然有一些实验性功能和一种新的Tina入门方式,我们希望在年底前提供给你。
我们引入了一个名为"简约"的新入门,它为你提供了一个带有Tina的最小Next.js项目。这使你能够通过最小的Tina集成在一步中启动一个新的Tina项目。我们在简约入门之前的入门包含了许多用于特定任务的额外代码,例如我们的文档入门。我们希望为你提供一个没有任何额外代码或依赖项的良好基础。
create-tina-app
我们还引入了npx create-tina-app
,它允许你使用你选择的入门来设置一个Tina应用程序。作为开发者,我们理解本地工作的重要性,它允许你调查幕后发生的事情。通过一个命令,你可以在本地调查Tina,进行更改,然后再部署。
自动生成的GraphQL客户端(实验性)
虽然我们喜欢graphQL,但我们理解对于那些不太熟悉它的人来说,编写graphQL可能是令人生畏的。为了解决这个问题,我们引入了一个实验性功能,允许你使用客户端。这允许熟悉javascript的开发者使用点符号来获取他们需要的数据。例如:
const tinaProps = await client.getPostsDocument({relativePath:"helloWorld.md";});
你可以在我们的GitHub上查看如何使用这个实验性功能。
允许Tina驱动的网站切换到任何分支是我们一直在努力的事情。分支对开发者和内容团队来说非常重要,因为如果他们想推出新功能或帖子,他们当然不希望它立即上线。我们希望确保我们做对了,通过使用户体验易于导航,我们刚刚将其作为实验性功能发布。你可以在我们的文档中找到如何实现这一点。
年初,Tina是一个实验性的开源项目,过于开放,难以维护所有的活动部件。我们支持几十个不同的包,从收到的反馈来看,这不是最佳方法。在对如何改进我们的方法做出艰难决定后,我们现在有了一个稳固的产品,正在生产网站中看到越来越多的使用。
在我们的下一篇文章中,我们将描述这一切的去向以及我们对2022年Tina的计划。整个团队对进入我们项目的下一个阶段感到非常兴奋,并希望你能查看并给我们诚实的反馈。我们想听听你使用Tina的项目以及我们可以做些什么来使其更容易、更快或更好。