GNU Affero General Public License v3.0

技术解读

以下内容由 GitRead 中文社区 编辑团队基于项目 README 与官方资料整理, 结合中文开发者的常见使用场景补充技术选型建议。具体以项目官方文档为准。

深度技术分析 | AI 驱动的 Web 构建平台 “web-builder”

项目背景与痛点

在当今的 Web 开发领域,快速开发和高效部署无疑是企业面临的两大核心挑战。传统的 Web 开发流程受限于复杂的编码和调试步骤,导致效率低下,而市场变化迅速,快速迭代的需求随之而来。与此同时,响应式设计和多语言支持愈发重要,这进一步提升了 Web 开发的复杂性。

“web-builder” 项目正是为了解决这些痛点而生。借助 AI 技术和 Tailwind CSS,它提供了一个低代码平台,使得开发者可以快速创建现代化的响应式 UI,并支持多语言、多主题的应用开发。这对于寻求快速开发并能灵活应对市场变化的企业而言,无疑是一个利器。

核心技术揭秘

平台架构

“web-builder” 的核心架构由几个关键组件构成:拖拽界面、UI 生成引擎、编译模块以及发布流程。下图展示了这一架构的基本数据流。

graph TD A[用户请求创建网站] --> B[拖拽界面] B --> C{"UI 生成引擎"} C -->|"生成 HTML/CSS"| D[编译模块] C -->|"定制组件"| E[组件管理] D --> F[发布流程] E --> F

生成引擎

生成引擎作为平台的核心,实现了从拖拽界面到最终代码的转换。它通过内置的 AI 算法分析用户操作,自动为拖拽对象生成相应的 Tailwind CSS 样式代码,并生成 HTML 结构。接着,代码被发送到编译模块,编译为最终的静态页面。

这一过程不仅保证了 UI 和组件的一致性,还实现了高度的灵活性。用户不仅可以从预定义的组件库中选择,还可以使用自定义组件,使得整个平台有足够宽的应用边界。

AI 特点

AI 技术在 “web-builder” 中发挥了重要作用。它通过不断学习用户的操作习惯,智能推荐最优的 UI 组件和布局方案,从而加速开发流程。AI 也参与到样式生成、性能优化等多个环节,确保最终输出的代码既美观又高效。

功能亮点与差异

与其他低代码开发平台相比,“web-builder” 的优势在于高度的灵活定制能力和强大的 AI 支持。相比纯手工开发,用户可以显著减少代码编写,实现快速迭代。此外,平台支持多语言、多主题,适应不同应用场景。在组件方面,自定义组件功能大大增强了其扩展性和适应性。

应用场景与落地建议

“web-builder” 非常适合快速迭代、对响应式设计有较高要求的项目。典型的应用场景包括快速搭建企业内部管理平台、临时营销活动页面、展示型网站等。尽管其效率得到显著提升,但也需要在生产环境下保持对安全性的关注,特别是在自定义组件管理上不宜过度开放,以防止潜在的 XSS 攻击。

综合评价

优点

  1. 快速开发:减少编码工作,简化开发流程。
  2. 灵活定制:支持自定义组件,扩展性强。
  3. 多语言/多主题支持:适应全球化需求。

缺点

  1. 高级定制化需求受限:虽然支持自定义组件,但复杂的定制化需求可能需要额外的编码和调优。
  2. 安全风险:开箱即用的便利性有潜在的安全风险,需用户重视组件和第三方库的安全管理。

总体来看,“web-builder” 是一个高效且实用的开发平台,特别适合追求开发速度和灵活性的项目。它可以显著降低开发成本,提升制作效率,是 Web 开发者的有力工具。

关于

GitHub 原始描述(英文)

AI 驱动 UI 生成和发布的低代码平台,基于TailwindCss,通过拖拽可视化快速构建现代化响应式UI、动态自定义组件、多主题、多语言的网站应用。AI-powered UI generation and publishing low code platform, built on TailwindCSS, enabling rapid drag-and-drop visual creation of modern responsive UIs, dynamic customizable components, multi-theme, and multi-language web applications.

描述取自 GitHub 官方 API,保持仓库作者书写的原文。

简要分析

热度分
794
价值分
381
活跃状态
活跃

语言占比

CSS
Dockerfile
HTML
JavaScript
SCSS
TypeScript

Release

贡献者

README

logo

信使 Web builder
AI 生成UI和工具应用的低代码平台


AI 生成UI和工具应用的低代码平台,国内首款开源的基于 Drupal 作为 Headless 的低代码,基于 TailwindCss,通过拖拽可视化快速构建现代化响应式UI、动态自定义组件、多主题、多语言的网站应用。AI-powered UI generation and publishing low code platform, built on TailwindCSS, enabling rapid drag-and-drop visual creation of modern responsive UIs, dynamic customizable components, multi-theme, and multi-language web applications.

https://builder.design

Builder CMS · Web Builder Skills · 信使小程序 · 文档 · 知乎 · Docker 部署

观看演示视频

logo
logo

奥陌陌是已知的第一颗经过太阳系的星际天体,意为"远方信使"。

web builder

功能点 说明
Layout builder 动态 layout,基于 TailwindCss 的动态组件,支持静态数据和 API 数据来源
组件编辑 删除、复制 JSON、编辑组件数据、拖动上下排列
媒体库 可在前台批量上传、查看、更新媒体库
小程序数据维护 通过 builder 管理小程序的页面和组件
页面历史版本 当提交、清空、加载示例等覆盖操作时新增历史版本
草稿检测 当前内容有最新时,提醒是否拉取最新
丰富的模板库、示例库 基于模板库选择模板,快速生成页面
复制整个页面的 JSON 可直接复制 json,部署到后台发布
动画 支持通用的AOS页面滚动动画和高细粒度的GSAP动画
切换全宽 方便大屏编辑,减少干扰
快速生成页面 根据一定的规则从组件库中生成页面
多主题切换预览 预览在多主题下的组件显示情况
暗黑风格 支持切换浅色风格和暗黑风格,专注内容创作
页面预览 调转到新窗口查看真实的页面
响应式预览 可切换不同设备尺寸查看页面响应式排版

Builder 预览

swiper layout
title widget
animate layout
swiper layout

Builder Pro 预览

基于AI大模型生成UI、页面和工具应用,欢迎体验。

chat-entry chat-tailwind
chat-chart chat-mermaid

Web Builder Skills

Web Builder Skills 是为 Web Builder 提供的 Claude Code 技能包,覆盖 UI 构建、多语言翻译和网页配图提示词生成。

Skill 能力说明
ui-builder 在 Storybook 中创建、优化 UI 组件,并生成 stories 与 AI 提示词文档
translate-json 翻译页面或组件 JSON 的可见文案,并为站内链接添加对应语言前缀
web-image-prompt 为网页组件生成面向 gpt-image-2 的中文配图提示词,支持多种风格与图片比例

信使 Mini 小程序

信使小程序是基于 Taro+NutUI 的小程序,Vue3拥有更好的编辑开发体验,
在Web builder中通过拖拽可视化配置,小程序可动态构建页面。

Github 开源地址

logo

相关视频演示

logo

微信扫码查看更多视频

对应版本

Web builder Angular Node TS
v12 v20 v22+ v5.8+
v11 v20 v22+ v5.8+
v10 v19 v18+ v5.5+
v9 v18 v18+ v5.4
v8 v17 v18+ v5.2
v7 v16 v16+ v4.9.3
v6 v14 v14.15.0 v4.6
v5 v12 v14 v4
<=v4 v11 v14 v4

技术选型

  • 前端:Angular 20 (standalone components、signals、zoneless change detection、incremental hydration) + Angular Material + TailwindCss
  • SSR:@angular/ssr + Express
  • 动态表单:ngx-formly
  • web 动画:aos 页面滚动动画,gsap 细粒度定制化动画
  • 图表:Echarts
  • 视频:Video.js
  • 日历:FullCalendar
  • 编辑器:tiptap, jsoneditor, monaco-editor
  • 幻灯片:swiper
  • 图片画廊:lightgallery
  • 字体图标:material design icons + 自定义 svg icon
  • 加密:crypto-js
  • 工具函数:lodash-es、dayjs
  • Drupal JSON:API 查询:drupal-jsonapi-params
  • 认证:OAuth2 (Drupal simple_oauth)
  • web 服务:Nginx
  • 后端:Drupal(推荐),通过 Drupal 的 views 视图可灵活配置动态组件、动态 api;

开发指南

安装 npm install

  1. 代码下载或者 clone 项目到本地:git clone [email protected]:biaogebusy/web-builder.git
  2. 请使用 npm install 安装,严格按照 package-lock.json 锁版本安装,依赖较多,请多等待,使用 yarn 或者 pnpm 会有报错;

常用命令

  • npm start — 本地开发服务(自动通过 config/proxy.config.js 代理 API 到 https://base.builder.design)
  • npm run build — 生产环境打包并预压缩静态资源(ng build --configuration production && npm run precompress)
  • npm test — 单元测试(Vitest,覆盖 src/** 下除 src/server/** 外的所有 spec)
  • npm run test:server — 服务端单元测试(src/server/**,经根目录 vitest.config.ts 运行)
  • npm run test:watch — 单元测试 watch 模式
  • npm run lint — ESLint 代码检查(flat config)
  • npm run e2e — 端到端测试(Playwright)
  • npm run e2e:ui — Playwright UI 模式
  • npm run serve:ssr:xinshi — 运行 SSR 构建产物(node dist/server/server.mjs)

提交时 husky 会触发 lint-staged,自动用 ESLint 修复 *.ts/*.html,并用 Prettier 格式化 *.md。

开发环境设置

// src/environments/environment.ts
export const environment: IEnvironment = {
  apiUrl: 'http://localhost:4200',
  production: true,
  port: 4200,
  multiLang: true,
  langs: [
    {
      label: '中文',
      langCode: 'zh-hans',
      default: true,
    },
    {
      label: 'EN',
      langCode: 'en',
    },
  ],
  oauth: {
    clientId: 'pd1DDpR9atXvciFn3Wt7jLsCweLXv0JCC8k1-9XNJTw',
    tokenUrl: '/oauth/token',
    authorizeUrl: '/oauth/authorize',
    redirectPath: '/me/login/callback',
    logoutPath: '/user/logout',
    scope: 'webmaster',
  },
};
  • apiUrl: 整个应用的 Base api 参数;
  • production: 为 false 时页面内容 api 调用本地 json 文件,true 时调用线上接口;
  • port: 自定义 Node 端口;
  • multiLang / langs: 多语言开关及语言列表配置(默认语言不带前缀,其余语言以 langCode 作为路由前缀);
  • oauth: 基于 Drupal simple_oauth 的 OAuth2 认证配置(授权码模式)。

本地开发环境 Proxy 代理

为了体验一致,本地默认配置体验站的 API 代理,配置文件 config/proxy.config.js,根据实际情况进行修改:

const PROXY_CONFIG = [
  {
    context: [
      '/en/api',
      '/api',
      '/oauth',
      '/session',
      '/user',
      '/sites',
      '/admin',
      '/manage',
      '/system',
      '/core',
      '/libraries',
      '/modules',
      '/themes',
      '/webform_rest',
      '/media-library',
      '/views/ajax',
      '/editor',
      '/export',
      '/print',
      '/wechat',
      '/media',
      // ...更多 Drupal 路径
    ],
    target: 'https://base.builder.design',
    secure: false,
    changeOrigin: true,
  },
];

module.exports = PROXY_CONFIG;

为生产环境打包

npm run build

上线前检查:扫描线上内容的 Tailwind class

Tailwind 的 safelist 已从全量颜色矩阵收敛为「布局 pattern + 历史精确类清单」(config/tailwind.safelist.json),线上 CMS 内容若用到清单之外的颜色类,构建产物中将没有对应样式。发布前请扫描一次线上内容。

第一步,在 Drupal 侧导出 builder 内容。node 侧的 landing_page(页面)、json(页头/页脚品牌配置)、component(自定义组件)都把页面 JSON 存在 body 字段;前台展示的区块(自定义区块 block_content,如首页区块)同样把 JSON 存在 body 字段。

$(drush sql:connect) -q -C -B -N --max-allowed-packet=1G \
  -e "SELECT body_value FROM node__body WHERE bundle IN ('landing_page','json','component') AND deleted = 0" \
  | gzip > prod-content.txt.gz
$(drush sql:connect) -q -C -B -N --max-allowed-packet=1G \
  -e "SELECT body_value FROM block_content__body WHERE deleted = 0" \
  | gzip > prod-blocks.txt.gz

第二步,处理结果。全部缺失类会自动并入 config/tailwind.safelist.json(group/peer 这类无 CSS 的标记类自动排除),再正常重跑一次确认 OK:

node scripts/scan-content-classes.mjs --fix prod-content.txt.gz prod-blocks.txt.gz

新内容的颜色请写在组件的 <style> 块或行内 style 中,不要再依赖调色板工具类,避免清单再次膨胀。

最后

  • QQ 交流群:1176468251
  • 感谢 LINUX DO 的支持
  • 如果觉得这个项目对您有所助益,请帮忙点个 star

Star History Chart

评论

暂无评论