左右分屏编辑器,表单修改后签名实时刷新
SigFlow — Next.js 工具站模板
作者 o-sharaf5
SigFlow 是一个纯客户端运行的 HTML 邮件签名生成器,通过分屏编辑器为 Gmail、Outlook 和 Apple Mail 生成可直接粘贴的签名 HTML。
看看你的网站会是什么样
浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。
全部页面与视图 2
截图用于了解视觉与布局,交互效果请以实际项目为准。
值得关注的模板亮点
从已有项目资料中,快速了解它的特点。
内置 4 套签名模板,输出为内联样式与嵌套 table 布局
用户文本在插入前做 HTML 转义,预览使用 dangerouslySetInnerHTML 时不会执行注入标记
复制同时写入富文本 text/html 与纯文本,并给出 Gmail、Outlook、Apple Mail 的粘贴说明
草稿通过 localStorage 防抖保存,支持深色模式切换
可静态预渲染,无 API 路由与后端依赖
模板详细介绍
SigFlow 是一个在浏览器中运行的 HTML 邮件签名生成工具,面向需要为 Gmail、Outlook 和 Apple Mail 配置签名的用户。页面采用左右分屏布局:左侧表单按 Info、Media、Social、Style 分组填写姓名、联系方式、图片和社交链接,右侧实时预览签名效果,并提供 HTML 代码标签页与复制按钮。
生成逻辑由纯函数 generateSignatureHtml(data) 完成,内置 4 套模板。为兼容邮件客户端,输出仅使用内联样式、嵌套 table 布局,并为图片写入宽高属性;用户输入的文本在插入前会做 HTML 转义,避免预览区执行注入的标记。复制功能同时提供富文本 text/html 与纯文本两种剪贴板写入方式,并附有各客户端的粘贴说明。
项目基于 Next.js App Router 构建,使用 TypeScript、Tailwind CSS 与 shadcn/ui 组件,草稿通过 localStorage 做防抖持久化,主题切换由 next-themes 提供。整个应用可静态预渲染,没有 API 路由,也不需要后端;README 提到可选的 Supabase 方案用于保存命名模板,但当前仓库未包含该实现。
适合你的项目吗?
适用场景
- 为 Gmail 账号生成带姓名、职位和社交链接的邮件签名
- 为 Outlook 配置使用 table 布局、兼容 Word 渲染引擎的签名 HTML
- 为 Apple Mail 准备可直接粘贴的富文本签名
- 在本地浏览器中反复调整签名样式并实时查看效果
适合人群
- 需要为多个邮件客户端生成签名的个人用户
- 希望参考纯前端签名生成实现方式的开发者
- 需要一个无后端、可静态部署的 Next.js 示例项目的人
上手与定制指南
结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。
- 1
运行 npm install 安装依赖,npm run dev 启动本地开发服务器
- 2
剪贴板 API 需要安全上下文,localhost 视为安全,生产环境需 HTTPS
- 3
npm run build 会静态预渲染首页,不生成 API 路由
- 4
README 中提到的 Supabase 保存模板属于可选扩展,仓库当前未实现
授权与来源资料
使用条件与限制
免费使用 · 保留许可声明本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。
使用时需要遵守
- 允许免费使用、修改、商用和分发该版本代码。
- 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
- 代码按现状提供;担保与责任限制以原许可证及适用法律为准。
额外费用与待核对事项
- 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
- 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
- README 将许可描述为“portfolio use”(作品集用途),暗示该项目定位为个人作品集展示,而非面向生产环境的通用工具;使用者应知悉其作品集性质。
- 保存命名模板需自行接入 Supabase(或 Clerk/Supabase Auth)等外部服务并创建 templates 表,当前仓库未包含该实现,属于可选扩展而非开箱功能。
- 复制功能依赖 Clipboard API,必须在安全上下文(HTTPS 或 localhost)下运行,非安全上下文无法使用复制。
查看原文依据
Permission is hereby granted, free of charge
许可证原文
MIT — portfolio use.
README 原文
Optional next step: Supabase
README 原文
https://github.com/o-sharaf5/SigFlow/blob/main/LICENSEhttps://github.com/o-sharaf5/SigFlow/blob/main/README.mdThe Clipboard API requires a **secure context**.
README 原文
DeepSeek 根据仓库许可证和 README 整理 ·2026-10-12。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。
项目核对记录与介绍依据
模板资料
- 来源平台
- GitHub
- 资料与维护参考分
- 资料较完整 · 85 / 100
- 技术栈
- Next.js · React · HTML
- 网站类型
- 工具站
这个分数如何计算
本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。
这个项目需要核对什么
- 记录的仓库更新时间
- 2026-10-12
- 截图检查日期
- 2026-10-12
已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。
目录记录的主要技术栈是 Next.js。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。
查看具体选型方法 →介绍的制作与核对状态
介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。
审核声明: [email protected] · 2026-10-13
查看当时使用的来源资料
SHA-256: c1bfabdd691008c5c4a0dfc7c1510016b9e332d94cdeeb34877dee4819d05a9f
2026-10-12T13:41:03.231Z
来源文件 / 仓库# SigFlow — HTML Email Signature Generator A lightweight, fully client-side SaaS-style tool: a live split-screen editor that generates **paste-safe HTML email signatures** for Gmail, Outlook and Apple Mail. Built as a portfolio project. **Live demo: https://sigflow-henna.vercel.app** **Stack:** Next.js 16 (App Router) · TypeScript · Tailwind CSS v4 · shadcn/ui (Base UI primitives) · Lucide React · next-themes · localStorage drafts. No backend required — the whole app prerenders as static HTML, so Vercel deploys are instant and free-tier friendly. ## Quick start ```bash npm install npm run dev # http://localhost:3000 npm run build # static prerender of / — zero API routes ``` > The Clipboard API requires a **secure context**. `localhost` counts as secure, > so copy works in dev; production on Vercel is HTTPS automatically. ## Folder structure ``` sigflow/ ├── src/ │ ├── app/ │ │ ├── layout.tsx # Root layout: fonts, metadata, ThemeProvider │ │ ├── page.tsx # Split-screen editor (client component) │ │ └── globals.css # Tailwind v4 + shadcn theme tokens (.dark) │ ├── components/ │ │ ├── signature-form.tsx # Left panel: Info / Media / Social / Style tabs │ │ ├── signature-preview.tsx # Right panel: live preview + HTML tab + copy buttons │ │ ├── site-header.tsx # Logo, Reset, dark-mode toggle │ │ ├── theme-provider.tsx # next-themes wrapper (SSR-safe) │ │ └── ui/ # shadcn primitives (button, tabs, select, slider…) │ └── lib/ │ ├── signature-types.ts # Data model, defaults, social provider metadata │ ├── signature-generator.ts # ★ Pure HTML-string generator (4 templates) │ ├── clipboard.ts # ★ Rich-text + plain-text clipboard APIs │ ├── use-local-draft.ts # Debounced localStorage persistence hook │ ├── use-hydrated.ts # useSyncExternalStore-based hydration gate │ └── utils.ts # cn() helper ├── next.config.ts └── package.json ``` ## Architecture in one paragraph State lives in one `SignatureData` object (`useLocalDraft`). The form mutates it immutably; the preview calls the **pure** `generateSignatureHtml(data)` inside a `useMemo`, so every keystroke re-renders the signature for free. The generator enforces the three rules of email-client survival: inline styles only, nested `<table>` layout (Outlook's Word engine ignores flex/grid), and width/height attributes on images. User text is HTML-escaped before insertion, so the `dangerouslySetInnerHTML` preview can never execute injected markup. ## Optional next step: Supabase To save named templates per user, add a `templates` table (`id, user_id, name, data jsonb, created_at`) and reuse `SignatureData` as the `jsonb` shape verbatim — the model is already serializable. Clerk or Supabase Auth both fit; the app needs no schema changes until then. ## 2-day build & deploy plan (how this repo was made) ### Day 1 — Core editor - **Morning:** scaffold `create-next-app` (TS + Tailwind + App Router), `shadcn init`, add primitives. Define `SignatureData` + defaults. - **Afternoon:** write `signature-generator.ts` first (pure functions are testable without a UI), then the form tabs, then the preview panel. - **Evening:** localStorage draft hook, dark mode, responsive grid, XSS-escaping pass. ### Day 2 — Polish & ship - **Morning:** clipboard (rich `text/html` + fallback), HTML code tab with highlighting, per-client paste instructions. - **Afternoon:** a11y (labels, focus rings, keyboard nav), favicon/OG metadata, `npm run build` clean. - **Evening:** push to GitHub → import in Vercel → deploy (framework preset auto-detected; no env vars needed). Verify clipboard on the HTTPS domain. ### Stretch (Day 3+) Supabase auth + saved templates, signature QR code, .eml download, analytics. ## License MIT — portfolio use.
看看同类模板
对比同技术栈与用途的模板,找到更适合的视觉与内容结构。

full-stack-ai-agent-template
Full-stack AI app generator — FastAPI + Next.js with AI Agents, RAG, streaming, auth, and 20+ integrations out…
Next.js · 工具站

tiktokenizer
tiktokenizer 是一个开源的在线工具站项目,核心功能是计算文本对应的 token 数量,服务于 openai/tiktoken 库。
Next.js · 工具站

resume builder
resume builder 是一个开源的在线简历生成工具,演示站点可直接体验。 它基于 Next.js、TypeScript 和 Material UI 构建,前端状态管理采用 Zustand,整体界面简洁,交互流畅。
Next.js · 工具站

picprose
PicProse 是一个开源的封面图生成工具,专为博客作者、内容创作者和开发者设计。 它通过直观的界面,让用户快速为 Medium、YouTube、B站等平台生成专业封面。
Next.js · 工具站

notty
Notty 是一个定位明确的笔记应用模板,核心卖点是“离线优先 + 实时协作 + 数据自主”。
Next.js · 工具站

gfw
gfw 是 Global Forest Watch 的官方 Web 应用,一个面向森林监测与告警的在线工具站。
Next.js · 工具站
