LaravelReact启动器

openfunnels — Laravel 启动器模板

作者 aialvi

OpenFunnels 是一个基于 Laravel 与 React 的自托管开源漏斗构建器,提供可视化拖拽编辑器、表单与联系人管理、轻量 CRM、自动化工作流和自定义域名发布。

看看你的网站会是什么样

浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。

1 个预览视图
作者提供的预览
作者提供的预览

来自项目 README 的原始预览。

目前有 1 张原始预览,可打开完整图片查看设计细节。

截图用于了解视觉与布局,交互效果请以实际项目为准。

采集于 2026-10-01查看来源

值得关注的模板亮点

从已有项目资料中,快速了解它的特点。

01

可视化拖拽编辑器:以 section、column、block 结构搭建页面,支持撤销重做、自动保存与响应式预览

02

线索捕获与联系人管理:可配置条件字段、保留每次提交、记录 UTM 与来源归因,并支持按筛选导出 CSV

03

轻量 CRM:把联系人推进可配置的销售管道,预测成交金额并跟踪赢单/输单结果

04

自动化工作流:带版本管理的触发器与动作,支持等待、是/否分支、CRM 更新、邮件、安全 Webhook、运行时间线与重试

05

发布与域名:发布到 slug 路径或已验证的自定义域名,支持草稿预览和取消发布而不删除内容

06

分析与实验:跟踪注重隐私的事件、转化趋势、流量来源、流失点,并提供稳定的 A/B 变体分配

模板详细介绍

OpenFunnels 是一个自托管、开源(MIT)的漏斗构建与轻量 CRM 应用,用于创建、发布并改进线索获取流程,同时把客户数据保留在自己的服务器上。项目由 Laravel、Inertia、React 和 TypeScript 构建,仓库提供 Docker Compose 评估栈,可快速在本地启动包含 Web 应用、队列 worker、调度器和 SQLite 持久卷的完整环境。

功能覆盖漏斗页面搭建、线索捕获表单、联系人记录、机会管道、自动化工作流、发布与自定义域名、归因分析、A/B 实验以及可选的 AI 辅助草稿。编辑器以 sections/columns/blocks 的 JSON 结构作为规范数据,支持撤销重做、自动保存和响应式预览;表单提交会保留时间线并记录 UTM 与来源归因;自动化支持等待、分支、CRM 更新、邮件、Webhook 等步骤,并带有运行日志与重试。

使用范围上有明确限制:Docker 评估栈面向本地评估而非生产,不配置 TLS、反向代理或自定义域名基础设施;本地开发需要 PHP 8.3+、Composer 2、Node.js 22、pnpm 10.13.1 和 SQLite;种子账号仅用于本地开发。演示图片、字体、图标等第三方素材需按各自许可核对,域名、托管、数据库、支付或 AI 等外部服务可能另外收费。

LaravelReact启动器

适合你的项目吗?

适用场景

  • 搭建并发布线索获取漏斗,例如网络研讨会报名或产品试用注册页面
  • 用表单收集线索并统一管理联系人状态、备注与来源归因
  • 通过自动化工作流在新线索进入后发送邮件、更新 CRM 或触发 Webhook
  • 在多个漏斗之间运行 A/B 实验,比较转化趋势与流失点
  • 把漏斗导出为 HTML、React、Vue、WordPress、Laravel、Shopify 或 WooCommerce 等目标

适合人群

  • 希望自托管漏斗与线索数据、对数据控制有要求的团队
  • 需要可视化页面编辑与轻量 CRM 配合使用的市场或增长团队
  • 熟悉 Laravel 与 React、愿意自行部署和维护的技术团队
  • 想基于 MIT 许可代码二次开发或集成的开发者

上手与定制指南

结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。

  1. 1

    Docker 评估栈需要 Docker 与 Compose v2,执行 docker compose up --build 后访问 http://localhost:8000 并选择 Launch Demo

  2. 2

    本地开发需要 PHP 8.3+(含 Laravel 所需扩展)、Composer 2、Node.js 22、pnpm 10.13.1 和 SQLite

  3. 3

    本地初始化流程:composer install、corepack enable、pnpm install、复制 .env.example 为 .env、生成 key、创建 SQLite 文件并执行 migrate --seed

  4. 4

    种子开发账号为 [email protected] / password,仅限本地开发;默认日志邮件驱动会把验证链接写入 storage/logs/laravel.log

  5. 5

    自定义域名、线索通知、Webhook、自动化队列与 AI 生成等能力通过 .env 中的可选变量启用,AI、邮件、数据库与 Webhook 凭据不应暴露到浏览器

查看仓库使用说明

授权与来源资料

使用条件与限制

免费使用 · 保留许可声明

本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。

使用时需要遵守

  • 允许免费使用、修改、商用和分发该版本代码。
  • 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
  • 代码按现状提供;担保与责任限制以原许可证及适用法律为准。

额外费用与待核对事项

  • Docker 评估栈仅用于本地评估,不适用于生产环境,且不配置 TLS、反向代理或自定义域名基础设施。
  • 种子账号 [email protected] / password 仅限本地开发使用,不可用于生产。
  • 不得提交 .env 文件,也不得将 AI、邮件、数据库或 Webhook 凭据暴露到浏览器端。
  • AI 辅助草稿默认关闭,需自行配置驱动、端点与 API 密钥,可能涉及外部服务费用。
  • AI 生成功能需要服务端 API 密钥,属于外部服务凭据,可能产生额外费用。
  • 访客演示沙箱默认关闭,需通过 DEMO_MODE 显式启用,且演示账号会过期。
  • 访客演示账号相互隔离且会过期,其出站操作与管理操作受到限制。
  • 自动化 Webhook 默认仅允许 TLS 目标,启用非 TLS 目标需显式修改配置。
  • public/build 中生成的 Vite 资源不应提交到版本库。
  • 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
  • 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
查看原文依据

Permission is hereby granted, free of charge

许可证原文

It is intended for local evaluation—not production—and does not configure TLS, a reverse proxy, or custom-domain infrastructure.

README 原文

The seed account is for local development only.

README 原文

Do not commit `.env` or expose AI, mail, database, or webhook credentials to the browser.

README 原文

`FUNNEL_AI_DRIVER` | `disabled` | Enables a configured funnel-generation driver

README 原文

`FUNNEL_AI_API_KEY` | empty | Server-side generation credential

README 原文

`DEMO_MODE` | `false` | Enables the isolated guest sandbox

README 原文

Run isolated, expiring demo accounts with outbound and administrative actions restricted.

README 原文

`AUTOMATION_WEBHOOK_ALLOW_HTTP` | `false` | Allows non-TLS workflow webhook targets

README 原文

Generated Vite assets in `public/build` should not be committed.

README 原文
https://github.com/aialvi/openfunnels/blob/main/LICENSEhttps://github.com/aialvi/openfunnels/blob/main/README.md

DeepSeek 根据仓库许可证和 README 整理 ·2026-10-01。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。

项目核对记录与介绍依据

模板资料

来源平台
GitHub
资料与维护参考分
资料较完整 · 80 / 100
技术栈
Laravel · React
网站类型
启动器
这个分数如何计算

本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。

这个项目需要核对什么

记录的仓库更新时间
2026-09-29
截图检查日期
2026-10-01

目前没有记录演示链接。请依据仓库说明在本地评估;仅凭截图无法确认交互行为。

目录记录的主要技术栈是 Laravel。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。

查看具体选型方法 →

介绍的制作与核对状态

介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。

已完成服务器许可规则与 AI 来源核对;未经过人工编辑审核。

查看当时使用的来源资料

SHA-256: 57358f8d7147796b9606c43987c181f2e47bdf7e5b73718de0e47abfc6c36e73

2026-10-01T02:20:23.603Z

来源文件 / 仓库
# OpenFunnels

[![Tests](https://github.com/aialvi/openfunnels/actions/workflows/tests.yml/badge.svg)](https://github.com/aialvi/openfunnels/actions/workflows/tests.yml)
[![Quality](https://github.com/aialvi/openfunnels/actions/workflows/lint.yml/badge.svg)](https://github.com/aialvi/openfunnels/actions/workflows/lint.yml)
[![License: MIT](https://img.shields.io/badge/license-MIT-orange.svg)](LICENSE)
[![PHP 8.3+](https://img.shields.io/badge/PHP-8.3%2B-777BB4.svg)](composer.json)
[![React 19](https://img.shields.io/badge/React-19-61DAFB.svg)](package.json)
[![Docker](https://img.shields.io/badge/Docker-ready-2496ED.svg)](docs/docker-evaluation.md)

OpenFunnels is a self-hosted, open-source funnel builder for creating, publishing, and improving conversion journeys while keeping customer data under your control.

It combines a visual page editor with lead-capture forms, a lightweight CRM, durable workflow automation, attribution analytics, A/B experiments, custom domains, portable templates, and optional AI-assisted drafts. The application is built on Laravel, Inertia, React, and TypeScript.

## Demo

https://github.com/user-attachments/assets/0f58d31d-6eed-4a5a-9fda-6adbba6317e2


## Screenshots

| Dashboard analytics | Visual funnel editor |
| --- | --- |
| <img width="760" height="429" alt="OpenFunnels dashboard showing funnel, conversion, contact, and traffic analytics" src="public/ss/dashboard-analytics.webp" /> | <img width="760" height="429" alt="OpenFunnels visual editor with layout controls, form settings, and draggable content blocks" src="public/ss/visual-funnel-editor.webp" /> |

| Funnel starter options | Responsive funnel preview |
| --- | --- |
| <img width="760" height="429" alt="OpenFunnels new funnel dialog with blank canvas and template options" src="public/ss/funnel-starter-options.webp" /> | <img width="760" height="429" alt="Desktop preview of a webinar registration funnel in OpenFunnels" src="public/ss/responsive-funnel-preview.webp" /> |

| Form responses | Automation workflow builder |
| --- | --- |
| <img width="760" height="429" alt="OpenFunnels form response dashboard with lead details and filters" src="public/ss/form-responses.webp" /> | <img width="760" height="429" alt="OpenFunnels automation workflow builder with email, wait, and notification steps" src="public/ss/automation-workflow-builder.webp" /> |

| Opportunities pipeline | Multi-platform funnel export |
| --- | --- |
| <img width="760" height="429" alt="OpenFunnels opportunities pipeline with configurable sales stages and forecast metrics" src="public/ss/opportunities-pipeline.webp" /> | <img width="760" height="429" alt="OpenFunnels export dialog generating funnel code for HTML, React, Vue, WordPress, Laravel, Shopify, and WooCommerce" src="public/ss/multi-platform-funnel-export.webp" /> |

## Quick Start With Docker

The evaluation stack is the fastest way to try OpenFunnels. It requires Docker with Compose v2.

```bash
git clone https://github.com/aialvi/openfunnels.git
cd openfunnels
docker compose up --build
```

Open [http://localhost:8000](http://localhost:8000) and select **Launch Demo**. You can also register a persistent local account.

The stack includes the web application, queue worker, scheduler, compiled frontend, and a persistent SQLite volume. It is intended for local evaluation—not production—and does not configure TLS, a reverse proxy, or custom-domain infrastructure.

```bash
# Follow service logs
docker compose logs -f

# Stop without deleting local data
docker compose down

# Remove the stack and its local data
docker compose down --volumes
```

See the [Docker evaluation guide](docs/docker-evaluation.md) for more details.

## What You Can Build

- **Funnels:** Create pages with a drag-and-drop section, column, and block editor; undo and redo changes; autosave; and preview responsive layouts.
- **Templates:** Start from 15 categorized layouts or import and export versioned `.openfunnels.json` template packs.
- **Forms and contacts:** Capture configurable and conditional fields, preserve every submission, collect UTM and referrer attribution, manage lead statuses and notes, and export filtered contact segments to CSV.
- **Opportunities CRM:** Promote contacts into configurable sales pipelines, forecast deal value, track won/lost outcomes, and optionally create opportunities from individual funnels.
- **Automation Studio:** Build versioned trigger-and-action workflows with waits, yes/no branches, CRM updates, email, secure webhooks, run timelines, retries, and starter recipes.
- **Publishing:** Publish to slug-based URLs or verified custom domains, preview drafts, and unpublish without deleting content.
- **Analytics and experiments:** Track privacy-conscious events, conversion trends, traffic sources, drop-off, and stable A/B variant assignments.
- **Operations:** Send new-lead email notifications or webhooks, recover offline editor changes, and export to several web and commerce targets.
- **AI-assisted drafts:** Optionally generate funnel drafts through a provider-neutral, Responses-compatible backend driver.
- **Guest evaluation:** Run isolated, expiring demo accounts with outbound and administrative actions restricted.

## Local Development

### Requirements

- PHP 8.3 or later, with the extensions required by Laravel
- Composer 2
- Node.js 22 (the version used in CI and the Docker build)
- pnpm 10.13.1
- SQLite

### Setup

```bash
git clone https://github.com/aialvi/openfunnels.git
cd openfunnels

composer install
corepack enable
pnpm install

cp .env.example .env
php artisan key:generate
touch database/database.sqlite
php artisan migrate --seed
```

For local URL generation, set `APP_NAME=OpenFunnels` and `APP_URL=http://localhost:8000` in `.env`.

Start Laravel, the queue listener, log tailing, and Vite together:

```bash
composer run dev
```

Then visit [http://localhost:8000](http://localhost:8000). The seeded development account is:

```text
Email: [email protected]
Password: password
```

The seed account is for local development only. You can skip `--seed` and register your own account instead; with the default log mailer, email verification links are written to `storage/logs/laravel.log`.

To run the application and frontend separately:

```bash
php artisan serve
pnpm run dev
```

## Configuration

The default `.env.example` uses SQLite, database-backed queues, sessions and cache, and the log mailer. These optional variables enable additional features:

| Variable                          | Default                 | Purpose                                          |
| --------------------------------- | ----------------------- | ------------------------------------------------ |
| `DOMAIN_MAPPING_CNAME_TARGET`     | `cname.openfunnels.com` | Expected CNAME target during domain verification |
| `DOMAIN_MAPPING_A_RECORD_IP`      | empty                   | Optional accepted A-record address               |
| `FUNNEL_CUSTOM_DOMAIN_SCHEME`     | `https`                 | Scheme used for verified custom-domain URLs      |
| `LEAD_CAPTURE_NOTIFICATION_EMAIL` | empty                   | Overrides the funnel owner's new-lead recipient  |
| `LEAD_CAPTURE_WEBHOOK_URL`        | empty                   | Receives new-lead webhook payloads               |
| `AUTOMATION_QUEUE`                | `default`               | Queue used by Automation Studio jobs             |
| `AUTOMATION_RUN_RETENTION_DAYS`   | `90`                    | Retention for detailed automation run logs       |
| `AUTOMATION_STALE_RUN_AFTER_MINUTES` | `5`                  | Reclaims interrupted running workflow steps      |
| `AUTOMATION_MAX_NODES`            | `50`                    | Maximum steps in a published workflow            |
| `AUTOMATION_EVENT_DAILY_LIMIT`    | `10000`                 | Per-owner automation event safety threshold      |
| `AUTOMATION_WEBHOOK_ALLOW_HTTP`   | `false`                 | Allows non-TLS workflow webhook targets          |
| `FUNNEL_AI_DRIVER`                | `disabled`              | Enables a configured funnel-generation driver    |
| `FUNNEL_AI_ENDPOINT`              | OpenAI Responses API    | Responses-compatible generation endpoint         |
| `FUNNEL_AI_API_KEY`               | empty                   | Server-side generation credential                |
| `FUNNEL_AI_MODEL`                 | `gpt-5.6-luna`          | Model sent to the configured endpoint            |
| `FUNNEL_AI_TIMEOUT`               | `45`                    | Generation request timeout in seconds            |
| `DEMO_MODE`                       | `false`                 | Enables the isolated guest sandbox               |
| `DEMO_LIFETIME_HOURS`             | `24`                    | Lifetime of guest sandbox accounts               |

Do not commit `.env` or expose AI, mail, database, or webhook credentials to the browser.

## Development Commands

| Command                          | Purpose                                           |
| -------------------------------- | ------------------------------------------------- |
| `composer run dev`               | Start Laravel, the queue listener, Pail, and Vite |
| `composer test`                  | Clear cached config and run the PHP test suite    |
| `php artisan test --filter=Name` | Run a focused PHP test                            |
| `vendor/bin/pint --test`         | Check PHP formatting without changing files       |
| `vendor/bin/pint`                | Format PHP files                                  |
| `pnpm run dev`                   | Start only the Vite development server            |
| `pnpm run build`                 | Build production frontend assets                  |
| `pnpm run build:ssr`             | Build browser and SSR assets                      |
| `pnpm run test`                  | Run frontend unit tests with Vitest               |
| `pnpm run types`                 | Type-check TypeScript                             |
| `pnpm run lint`                  | Check frontend lint rules                         |
| `pnpm run lint:fix`              | Fix frontend lint violations where possible       |
| `pnpm run format:check`          | Check frontend formatting                         |
| `pnpm run format`                | Format files under `resources/`                   |

Generated Vite assets in `public/build` should not be committed.

## Architecture At A Glance

```text
React editor ──> canonical sections/columns/blocks JSON ──> draft preview
                                                    └─────> published funnel

Public form ───> contact ──> submission timeline ──> notification/webhook
Public events ─> attribution and conversion data ──> dashboard/experiments
```

Key locations:

```text
app/Http/Controllers/              HTTP behavior for funnels, contacts, leads, and analytics
app/Models/                        Eloquent models and funnel publishing helpers
app/Policies/FunnelPolicy.php      Authorization for user-owned funnels
resources/js/pages/                Inertia pages, including the primary editor
resources/js/components/editor/    Drag-and-drop editor UI
resources/js/stores/funnelStore.ts Zustand + Immer editor state and history
resources/js/types/editor.ts       Canonical funnel editor types
resources/js/lib/exporters/        Funnel export implementations
routes/web.php                     Public, authenticated, and custom-domain routes
tests/                             Pest feature/unit tests and Vitest frontend tests
```

## Documentation

- [Contributing](CONTRIBUTING.md): setup, architecture boundaries, pull-request expectations, and verification.
- [Self-hosting](docs/self-hosting.md): production services, deployment, workers, health checks, backups, and custom domains.
- [Template format](docs/template-format.md): portable community template schema and contribution workflow.
- [Product roadmap](Roadmap.md): completed foundation, current priorities, and longer-term tracks.
- [Design direction](DESIGN.md): UI principles and visual language.
- [MVP funnel and CRM PRD](docs/prds/mvp-funnel-crm.md): core funnel, form, and contact behavior.
- [Domain mapping PRD](docs/prds/domain-mapping.md): custom-domain requirements and boundaries.
- [Agent guide](AGENTS.md): repository conventions for AI-assisted contributions.

## Contributing And Support

Contributions are welcome. Please read [CONTRIBUTING.md](CONTRIBUTING.md) and keep changes focused, tested, and documented.

- Report bugs through [GitHub Issues](https://github.com/aialvi/openfunnels/issues).
- Ask questions and discuss ideas in [GitHub Discussions](https://github.com/aialvi/openfunnels/discussions).
- Report security vulnerabilities privately through [GitHub Security Advisories](https://github.com/aialvi/openfunnels/security/advisories/new) and review [SECURITY.md](SECURITY.md).

OpenFunnels is released under the [MIT License](LICENSE).

If OpenFunnels is useful to you, you can [support its continued development](https://www.buymeacoffee.com/aialvi).
反馈内容错误

看看同类模板

对比同技术栈与用途的模板,找到更适合的视觉与内容结构。