TikTok Shop Video Generator
只需一次点击,即可将任何病毒式 TikTok 视频转换为您自家产品的广告。适用于 TikTok Shop 卖家和联盟伙伴——无需拍摄、无需剪辑。免费试用。
AI 翻译
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗A self-hosted email campaign platform built with Next.js. Configure SMTP servers, manage subscriber lists, compose emails with a block-based editor, and send campaigns — all from a single interface. Data is stored locally in the browser via IndexedDB, so no external database is required.
Live: bismuth-mail.vercel.app
/campaigns/:id/compose|send|logs), with live sidebar progress, resume, retry-failed, search, filtered log export, pre-send checks, and test emails{{field}} placeholders in subject and body, resolved per-contact from list custom fieldsList-Unsubscribe mailto header, multipart text/plain, sanitized HTML blocks, and uploaded images sent as CID inline partschangelog.yaml| Layer | Technology |
|---|---|
| Framework | Next.js 16 (App Router) |
| UI | React 19, Radix UI, Tailwind CSS 4 |
| Components | shadcn/ui pattern |
| Database | Dexie (IndexedDB) |
| Nodemailer via API routes | |
| Validation | Zod |
| Language | TypeScript 6 |
git clone https://github.com/gbordiga/bismuth-mail.git
cd bismuth-mail
pnpm install
pnpm dev
Open http://localhost:3000 in your browser.
pnpm build
pnpm start
main, using Node 22.pnpm lint, tsc --noEmit, pnpm test, and pnpm build.send, send-batch, test) plus email building, merge fields, attachments, backup, CSV, send engine, and campaign workspace helpers./api/smtp/* routes to perform test/send operations.bismuth-mail/
├── app/
│ ├── api/
│ │ ├── changelog/ # Serves structured notes from changelog.yaml
│ │ └── smtp/ # API routes for sending and testing emails
│ ├── (dashboard)/ # Route-based app sections
│ │ ├── smtp/page.tsx
│ │ ├── senders/page.tsx
│ │ ├── lists/page.tsx
│ │ ├── campaigns/ # Hub plus /new and /:id/compose|send|logs
│ │ ├── editor/page.tsx # Redirects to /campaigns
│ │ ├── send/page.tsx # Redirects to the sending campaign or /campaigns
│ │ └── backup/page.tsx
│ ├── layout.tsx # Root layout with theme provider
│ ├── page.tsx # Redirects to /smtp
│ └── globals.css # Global styles and Tailwind imports
├── components/
│ ├── app-shell.tsx # Navigation shell with sidebar progress
│ ├── smtp-config.tsx # SMTP server management
│ ├── sender-section.tsx # Sender profile management
│ ├── email-list-section.tsx # Contact list management
│ ├── campaign-list.tsx # Campaign hub
│ ├── campaign-workspace.tsx # Compose / Send / Logs chrome
│ ├── newsletter-editor.tsx # Campaign compose phase
│ ├── send-campaign.tsx # Campaign send phase
│ ├── campaign-send-logs.tsx # Campaign logs phase
│ ├── onboarding-guide.tsx # First-run setup checklist
│ ├── changelog-modal.tsx # In-app version history
│ ├── backup-section.tsx # Data backup and restore
│ └── ui/ # Reusable UI primitives (shadcn/ui)
├── hooks/ # Shared client hooks (Dexie tables, changelog)
└── lib/
├── db.ts # Dexie database schema and types (IndexedDB only)
├── email-builder.ts # HTML email template builder
├── send-engine.ts # Recipient selection and campaign status helpers
├── sending-context.tsx # Live send progress across the app
├── repositories/ # Campaign, send-log, and suppression queries
├── validations.ts # Zod schemas for API validation
└── __tests__/ # Vitest coverage for routes and helpers
A setup guide in the sidebar walks through these steps on first run. All data stays in your browser's IndexedDB. Use the Backup section to export/import your data as JSON.
See changelog.yaml for a detailed list of changes between versions.
Contributions are welcome! Feel free to open an issue or submit a pull request.
git checkout -b feature/my-feature)git commit -m 'feat: add my feature')git push origin feature/my-feature)This project is licensed under the MIT License.