Runmix的目标,是从零开始,打造一个能服务于生产环境的React SSR框架。开源地址为:https://github.com/runmix-dev/runmix.

Runmix的名子借鉴于Remix

项目背景

为什么在有了Next.js/Runmix这样成熟强大的SSR框架之后,还有再造一个轮子呢?

这起源于RunJS的SSR(服务端渲染)需求。

RunJS一开始为了保持轻量级和访问速度,只采用了客户端打包方案,除了首页index.html使用自己的服务器来提供服务,其他所有静态资源,都上传到了CDN。不过,这种单页面应用,对SEO很不友好,很难被百度/谷歌之类的搜索引擎收录。

为了解决SSR的需求,我曾想到了直接在现有项目中添加SSR功能,重构整个站点,初步尝试后工作量比较大就放弃了。

然后,我想到了next.js,用next.js搭建一个大致相同的站点,只为搜索引擎服务提供首页和项目详情页的泻染服务。目前,大部分在搜索引擎中收录的RunJS网址,背后都是由另一个单独的next.js项目提供的。

随着功能的迭代和更多SEO需求的产生,我不得不在整站迁移next.js和自建SSR的技术上做出选择。next.js虽然成熟,但不够灵活。RunJS不需要那么通用,越轻量越容易维护。在这个想法的基础上,我尝试给RunJS渐进增加SSR的功能,而方案也是可行的。

比如,你现在看到的这个网址:https://runjs.work/article/092974,就是由自建SSR而非next.js提供的,对SEO友好的网页。

由此可以想到的是,并非所有项目,都适合next.js/remix这类成熟的SSR框架。仅仅为现有SPA(单页面应用)添加部分SSR功能,并不需要将整个站点重构而不得不接受成熟框架的众多约定。

有一些时候,我们仍然需要了解框架背后的技术,以便能够灵活地实现心中的构想。

所以,Runmix作为一个独立的开源项目,能够为RunJS的SSR提供技术上的支撑。

另外,前些天开启的枫林的全栈课堂,也将首先从Runmix展开。

工作安排

Runmix的工作,主要是两部分。

其一,是代码的编写,持续推进Runmix Github项目的研发。代码开源。

其二,是教程的编写,与Runmix代码编写保持同步的教程。教程不开源。

Runmix目更像一个服务于RunJS的私人项目,选择开源,是希望它有一天能对技术社区产出差异化的价值。如果你也正好对从零搭建SSR的话题感兴趣,非常欢迎加入这个项目。

参与方式

1、直接为Runmix提交代码;

2、加入【枫林的全栈课堂】交流群,参与项目讨论。