HeyForm 开源表单构建器上手指南
HeyForm 开源表单构建器上手指南【免费下载链接】heyformOpen-Source Form Builder项目地址: https://gitcode.com/GitHub_Trending/he/heyform自己搭表单收集功能每次都要手写字段校验、条件跳转、主题样式和 CSV 导出改一处字段结构渲染层、校验层、导出层得跟着改三遍没有防刷机制时表单页很快会变成垃圾数据的收件箱。HeyForm 是一个可自托管的开源表单构建器Form Builder。先带你在本地把最小服务跑起来再逐个拆解五个核心能力。项目全景HeyForm 是一个 monorepo多包单仓由 7 个包组成server 是 NestJS GraphQL 后端webapp 是 React Vite 前端form-renderer 是独立渲染库。架构思想是把「表单定义」和「表单渲染」解耦同一份 schema 被编辑器预览、公开表单页和第三方网站嵌入三处复用只换外壳。它面向的是想给自己的产品自建表单构建器的开发者而不是依赖 SaaS 的团队。 上手路径环境上你需要 Node ≥ 20 和 pnpm ≥ 8后端还要 MongoDB 与 RedisKeyDB 兼容仓库自带 docker-compose.test.yml一条命令能拉起 Mongo 4.4 和 KeyDB顺带处理了上传目录的卷挂载。安装命令负责克隆仓库并安装 workspace 依赖注意 postinstall 会自动挂上 pre-commit 钩子git clone https://gitcode.com/GitHub_Trending/he/heyform cd heyform pnpm install服务端启动前要把必填环境变量写进 .env其中 SESSION_KEY 与 FORM_ENCRYPTION_KEY 是启动硬依赖其余项可对照 docker-compose.test.yml 里的默认值SESSION_KEYyour-session-key FORM_ENCRYPTION_KEYyour-encryption-key MONGO_URImongodb://127.0.0.1:27017/heyform REDIS_HOST127.0.0.1 REDIS_PORT6379运行入口是根目录一条pnpm dev它会并发启动 webapp 与 server服务端默认监听 9157 端口访问 /health/ready 确认就绪想直接体验 Docker 部署形态改用docker compose -f docker-compose.test.yml up构建即可。 核心能力拆解这五个能力都是 monorepo 内的独立模块无需额外安装依赖每一块都能在下文指到具体源码目录。多表单嵌入一个 div 挂进任意页面嵌入组件——不改宿主页代码四种方式挂表单embed 包扫描页面上所有带 contenteditable="false">【免费下载链接】heyformOpen-Source Form Builder项目地址: https://gitcode.com/GitHub_Trending/he/heyform创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Codex Proxy:macOS本地AI编程API网关实战

Codex Proxy:macOS本地AI编程API网关实战

1. 项目概述:为什么要把 Codex 变成本地 API? Codex 这个名字最近在 macOS 开发者圈子里反复刷屏,但很多人其实没搞清楚它到底是什么——它不是某个具体软件,而是指代一类基于大模型能力构建的 本地智能编码辅助系统 &#xff…

2026/9/19 4:57:13 阅读更多 →
基于YOLO多版本与Spring Boot的森林火灾烟雾实时检测系统架构与部署实践

基于YOLO多版本与Spring Boot的森林火灾烟雾实时检测系统架构与部署实践

1. 项目缘起与整体架构设计森林野外火灾的早期发现,说白了就是跟时间赛跑。烟先起、火后到,能在烟雾阶段就锁定异常位置,后面的事情都好办。这套系统的出发点很朴素:用视觉模型做火焰和烟雾的实时检测,前端给护林员和指…

2026/9/19 4:56:12 阅读更多 →
Java多线程:wait()和notify()为何需synchronized?

Java多线程:wait()和notify()为何需synchronized?

1. 为什么wait()和notify()必须放在synchronized代码块中?这个问题困扰过很多刚接触Java多线程开发的程序员。我第一次在实际项目中遇到IllegalMonitorStateException异常时也是一头雾水——明明代码逻辑看起来没问题,为什么一运行就报错?后来…

2026/9/19 4:56:12 阅读更多 →

最新新闻

ESP32音频播放原理:I2S信号链、WAV格式与DAC硬件协同

ESP32音频播放原理:I2S信号链、WAV格式与DAC硬件协同

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/19 9:57:26 阅读更多 →
CANN opbase 错误码 EZ1011(Invalid_Argument_Null_Pointer)空指针参数校验与排查指南

CANN opbase 错误码 EZ1011(Invalid_Argument_Null_Pointer)空指针参数校验与排查指南

CANN opbase 错误码 EZ1011(Invalid_Argument_Null_Pointer)空指针参数校验与排查指南 【免费下载链接】opbase 本项目是CANN算子库的基础框架库,为算子提供公共依赖文件和基础调度能力。 项目地址: https://gitcode.com/cann/opbase …

2026/9/19 9:57:26 阅读更多 →
Hoppscotch:开源 API 调试工具完整上手指南

Hoppscotch:开源 API 调试工具完整上手指南

Hoppscotch:开源 API 调试工具完整上手指南 【免费下载链接】hoppscotch Open-Source API Development Ecosystem • https://hoppscotch.io • Offline, On-Prem & Cloud • Web, Desktop & CLI • Open-Source Alternative to Postman, Insomnia 项目地…

2026/9/19 9:57:26 阅读更多 →
链表题解方法论:leetcode 仓库链表专题「一个原则、两个考点、三个注意、四个技巧」实战指南

链表题解方法论:leetcode 仓库链表专题「一个原则、两个考点、三个注意、四个技巧」实战指南

链表题解方法论:leetcode 仓库链表专题「一个原则、两个考点、三个注意、四个技巧」实战指南 【免费下载链接】leetcode LeetCode Solutions: A Record of My Problem Solving Journey.( leetcode题解,记录自己的leetcode解题之路。) 项目地址: https:…

2026/9/19 9:57:26 阅读更多 →
BrewUI:给Homebrew装上可视化控制台,让macOS包管理更省心

BrewUI:给Homebrew装上可视化控制台,让macOS包管理更省心

如果你每天吃饭睡觉打代码都离不开 macOS,大概率绕不开 Homebrew。它确实是目前 macOS 上最主流的包管理器,但用久了之后,我总觉得缺点什么:装的东西越来越多,哪些版本旧了、哪些依赖没人要了、缓存还能清出多少空间&a…

2026/9/19 9:57:26 阅读更多 →
算子优化 Agent 接手 FlashMLA,TaoToken Key 记在哪

算子优化 Agent 接手 FlashMLA,TaoToken Key 记在哪

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/19 9:56:26 阅读更多 →

日新闻

BP神经网络时序预测:滑窗长度与多窗口平均策略

BP神经网络时序预测:滑窗长度与多窗口平均策略

简介:面向机器学习、深度学习与数据建模学习者的一份完整研究文献,聚焦BP神经网络在农业产量预测中的应用。文档以1980—2018年全国棉花产量为样本,系统讲解数据归一化处理、激活函数原理、多层神经网络结构搭建及训练流程,展示敏…

2026/9/19 0:00:30 阅读更多 →
Transformer训练实时监控实战:基于MindSpore的损失曲线可视化方案

Transformer训练实时监控实战:基于MindSpore的损失曲线可视化方案

上个月调一个Deformable DETR模型,在单卡上要跑将近两天。第二天早上我下意识打开终端翻日志,发现loss从凌晨两点就开始往上爬,一路从0.8涨到1.35,整整六个小时没人发现。那六个小时的训练不仅白跑,还霸占着卡——等于…

2026/9/19 0:00:30 阅读更多 →
OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南

OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南

OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南 【免费下载链接】opencloud 🌤️ OpenCloud is the open source platform for file management, sharing and collaboration. Simple and sovereign. 项目地址: htt…

2026/9/19 0:00:30 阅读更多 →

周新闻

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验 【免费下载链接】ai The AI Toolkit for TypeScript. From the creators of Next.js, the AI SDK is a free open-source library for building AI-powered applications and ag…

2026/9/19 3:59:36 阅读更多 →
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化 【免费下载链接】refine A React Framework for building internal tools, admin panels, dashboards & B2B apps with unmatched flexibility. 项目地址: https://gitcode.com/GitH…

2026/9/19 3:53:08 阅读更多 →
Flutter应用改名全指南:从Android到iOS的配置与工具实践

Flutter应用改名全指南:从Android到iOS的配置与工具实践

刚接一个外包项目时,甲方要求把工程里临时用的应用名改成正式产品名。我本来觉得“改名”这种小事,打开配置文件改一行不就完了?结果真动手才发现,Flutter项目里“应用名称”根本不是一处配置,而是一整套散落在 Androi…

2026/9/19 4:02:43 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/16 22:31:27 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/15 21:39:18 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/16 22:32:59 阅读更多 →