从“你会失败”到 15,000 个 GitHub 星标:Wasp 的故事,一个“Laravel for JS”全栈框架
“你正在构建的东西是开发者的圣杯。到目前为止,还没有人成功过。”🏆 ☠️
这是我和马丁(我的双胞胎弟弟)在 2020 年 5 月第二次申请Wasp时,Y Combinator 给我的反馈。那时,我们已经在 Wasp 上工作了一年半,其中最后九个月是全职工作。我们辞掉了之前的工作,全身心投入其中。
如今,Wasp 在 GitHub 上已获得超过 15,000 颗星。更重要的是,各种背景的开发者都使用它开发了数千个 Web 应用,其中既有发展成为被收购或创收业务的业余项目,也有风险投资支持的初创公司,以及财富 500 强企业内部部署的工具。
有些人已经逐渐爱上了 Wasp 及其追求的愿景。感谢他们,我们乐在其中。如果没有围绕 Wasp 聚集的社区(Discord上有超过 4,000 名开发者),我们根本不可能取得今天的成就。为了他们,我们不断努力,朝着我们承诺的圣杯前进。
我们的工作才刚刚开始 - 但我们对此比以往任何时候都更加兴奋。
旅程——从 0 到 15,000 颗星
正如大多数成功故事一样,成功很少是直线发生的。它通常始于一段漫长的“干旱期”,偶尔会有一些复苏的迹象,然后就会有一个时刻,一切开始好转,开始快速发展。我们也经历过同样的情况,大致如下:
起源——“为什么不呢?”
一开始,Wasp 只是一个想法,或者更确切地说,是一个问题:“为什么还没有人实现它?如果我们尝试的话,会发现什么? ”在花了十年时间构建 Web 应用程序并使用所有主流技术栈(从服务器上的 PHP 到 Java 和 Node.js,再到客户端上的 Backbone、Angular 和 React)之后,我们感受到了“框架疲劳”的痛苦,也就是说,每次使用新技术栈时都要重新发明轮子。
于是我们开始思考这个问题,并把它们写在纸上(好吧,就是 Google Slides)。Wasp 的最初想法就这样诞生了——我们能否创建一个框架,通过提供更高级别的抽象来消除大量样板代码,同时又保持足够的灵活性,不被特定的技术栈和架构所束缚?
现在看来,它确实听起来像是一个圣杯。
加入 YC 让事情变得真实
我们一年前就辞掉了工作,当时精疲力竭,对整个构想也心存疑虑。虽然我们早期取得了一些进展,并从 Reddit、Hacker News 和 Product Hunt 获得了一些积极的反馈,但我们也开始意识到,要将一个全栈 Web 框架推向可用的状态,还需要付出巨大的努力,尤其是在我们为自己设定了如此高的要求的情况下。
最终,我们第三次申请 YC 时成功入围。他们关注了我们过去一年的进展,看到社区的热情高涨,决定把赌注押在我们这个疯狂的想法上。
Beta 版及后续版本 - MAGE 和 OpenSaaS
从图表中,您可以发现两个关键的拐点。第一个拐点发生在 2023 年 7 月,当时我们推出了MAGE,这是一款 GPT SaaS 入门产品,其底层使用了 Wasp(您可以将其视为一次性的 Loveable/Bolt)。它是首批能够生成可运行的全栈 Web 应用的 LLM 产品之一,为 Wasp 带来了众多关注。
第二个主要增长催化剂出现在 2023 年 12 月,当时推出了OpenSaaS,这是我们基于 Wasp 构建的开源 SaaS 启动器,目前在 GitHub 上拥有近 10,000 颗星。
我们意识到,大多数构建者确实希望尽快开始实现他们的想法,而不是挑选并拼凑每个 SaaS 所需的所有不同功能 - 身份验证、付款、管理仪表板、发送电子邮件、博客......
而这正是我们所提供的——一个基于 React、Node.js、Prisma 和 Wasp 的 100% 免费开源、高质量的 SaaS 入门平台。OpenSaaS 基本上成为了 Wasp 的“杀手级应用”,因为它吸引了众多开发者尝试,并意识到该框架的实用性。
Open SaaS 也与 Cursor 完美结合- 鉴于 Wasp 强大的结构和更高级别的原语,许多开发人员发现它是将他们的 SaaS 从想法转变为可在几天内投入生产的应用程序的理想组合。
语言/DSL 与框架 - 那么哪一个是哪一个?

从上面的例子中可以看出,我们过去常常将 Wasp 称为一种语言,DSL——领域特定语言。正是出于这些原因,我们最初计划创建一个抽象层,以便将来能够与任何语言、库和架构兼容。
为此,我们需要引入自己的编译器,它会首先分析你通过 Wasp 定义的应用规范(例如,路由、异步作业、数据库操作等),然后将其与你用 React 和 Node.js 编写的“原生”代码相结合,最终生成一个 React/Node.js 应用。这实际上意味着我们发明了自己的语言,尽管它非常有限且简单。
我们最初就是这样展示 Wasp 的,但我们后来发现这种理解是错误的。Wasp 的功能本身就是一种 Web 框架,就像 Laravel、Rails 或 Next.js 一样。它在底层使用编译器,这仅仅是一个实现细节,赋予了它超强的能力。例如,得益于这种方法,我们可以轻松地可视化整个应用程序的拓扑结构,从数据库到服务器和客户端组件:
迈向 1.0 之路并构建下一代框架
这就是 Wasp 的成长历程。想了解更多关于早期发展历程(从最初的创意到最初的 1000 颗星)的详细信息,可以查看这篇文章。
下一步是什么?经过近五年的开发和收集大家的反馈,我们对 Wasp 1.0 的愿景已经有了清晰的认识。简而言之,我们致力于构建一个拥有最佳开发者体验的全栈框架。我们希望您专注于产品开发,并尽可能减少与堆栈相关的时间。
想想 Rails 和 Laravel 为 Ruby 和 PHP 所做的事情——我们正在为现代的、由人工智能驱动的 JS 生态系统做同样的事情。
要关注我们的故事并支持我们,请在 GitHub 上为 Wasp 加星标并加入我们的 Discord - 我们迫不及待地想在那里见到您!
文章来源:https://dev.to/wasp/from-you-will-fail-to-15000-github-stars-the-story-of-wasp-a-laravel-for-js-full-stack-1fil