diff --git a/README.md b/README.md index 84fe6d7..0667b2f 100644 --- a/README.md +++ b/README.md @@ -1,228 +1,317 @@
-FeedLog +FeedLog — The Open-Source AI Customer Support Platform # FeedLog -**Open-source feedback & roadmap tool. Self-host on Cloudflare Workers, Vercel, or Docker.** +**The Open-Source AI Customer Support Platform.** + +AI-driven customer support with a Widget, a self-improving knowledge base, and a feedback board — cut manual support time by 90% and save your support team significant time and effort. Open source. Self-hostable. [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](./LICENSE) [![Discussions](https://img.shields.io/github/discussions/linkcraftstudio/feedlog)](https://github.com/linkcraftstudio/feedlog/discussions) [![Stars](https://img.shields.io/github/stars/linkcraftstudio/feedlog?style=social)](https://github.com/linkcraftstudio/feedlog) +[![Discord](https://img.shields.io/badge/Discord-Join%20us-5865F2?logo=discord&logoColor=white)](https://discord.gg/9rj64WXESn) +[![X](https://img.shields.io/badge/X-@feedlog__ai-000000?logo=x&logoColor=white)](https://x.com/feedlog_ai) + +English | [简体中文](./README.zh-CN.md) -[Live Demo](https://feedback.feedlog.ai) · [Documentation](./docs) · [Discussions](https://github.com/linkcraftstudio/feedlog/discussions) +🌟 [Website](https://feedlog.ai) | [Documentation](https://help.feedlog.ai/) | [Live Demo](https://feedback.feedlog.ai/) | [Discussions](https://github.com/linkcraftstudio/feedlog/discussions)
--- -> Collect product feedback, run a public roadmap, and publish changelogs — from a tool you own and control. +## The Pain Points -FeedLog is a feedback-collection and product-communication hub for software teams. Users post ideas, vote, and discuss; teams triage into a roadmap and publish changelog entries when features ship. Built on Nuxt 4, it deploys to three platforms with zero vendor lock-in. +- **Support demand grows unnoticed.** Early-stage teams answer users themselves, until repetitive inquiries create rising costs and operational drag. +- **Product knowledge falls out of sync.** Product changes can leave documentation and AI responses outdated. +- **Core teams lose focus.** Product and engineering are repeatedly pulled into support, slowing delivery. +- **Human handoffs break continuity.** Without full context, customers have to repeat themselves and resolution slows down. +- **Customer feedback lacks structure.** Scattered requests and bugs make patterns, priorities, and support impact difficult to see. -![FeedLog feedback board](./docs/images/hero.png) +From an orderly inbox to lost feedback -## Why FeedLog? +## Our Vision -- 🌐 **Deploy anywhere.** Cloudflare Workers, Vercel, or Docker — pick your stack, keep your data. -- 🤖 **AI-native, not AI-washed.** Similar-idea detection and AI-assisted changelog drafting — first-class features, not bolted-on chatbots. -- 🎨 **Modern Vue stack.** Nuxt 4, TypeScript, Drizzle ORM, Tailwind CSS v4, shadcn-vue. -- 🔓 **MIT licensed, open core.** This repository is the complete current product. Future enterprise add-ons live separately; the open-source version stays fully functional. -- 📦 **Own your data.** Postgres + blob storage (Cloudflare R2, Vercel Blob, or any S3-compatible: AWS, MinIO, Alibaba OSS). +**You may not think you need customer support yet. But if a founder, product manager, or engineer is answering user questions, you already have it.** -## Live Demo +FeedLog helps you keep the value of customer support without turning it into a full-time cost: AI answers recurring questions from your product knowledge, while people step in only when human judgment is needed. -Try FeedLog running in production: **[feedback.feedlog.ai](https://feedback.feedlog.ai)** +Every SaaS team should be able to listen to and help its customers without letting support consume its time or budget. FeedLog's Widget and Inbox help teams hear users and answer their questions; Feedback and Roadmap connect those voices to product plans; and Changelog brings shipped improvements back to the customers who asked for them. Customer support keeps creating value without becoming a burden. -The roadmap, changelog, and feedback boards you see at that URL are all FeedLog itself running in production — every feature listed below was first requested, voted on, and shipped through it. +## See FeedLog in Action -## Self Hosting + -FeedLog is built to be self-hosted. Three deploy targets cover the common -cases: serverless platforms (Cloudflare Workers, Vercel) for zero-ops -managed hosting, and Docker for full control on a VPS / NAS / Docker PaaS. +## Why Choose FeedLog? -Whichever path you pick, you'll need a **PostgreSQL 17+** with the -[`vector`](https://github.com/pgvector/pgvector) extension reachable from -the runtime. [Neon](https://neon.tech) and [Supabase](https://supabase.com) -both enable it via their UI; on self-hosted Postgres run -`CREATE EXTENSION IF NOT EXISTS vector;` once. +FeedLog three-step loop from support to product feedback -### `A` Deploy with Cloudflare Workers or Vercel +*FeedLog connects customer support and product work in one continuous loop.* -Both platforms offer a one-click deploy that forks the repo into your -account and prompts for the [required environment variables](#environment-variables) -in the same form. Build and deploy run automatically; no local toolchain -needed. +### Key Features -
+#### 1. Widget for AI Support, Help, and Feedback -| Deploy to Cloudflare Workers | Deploy with Vercel | -| :---------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | -| [![][cf-deploy-img]][cf-deploy-link] | [![][vercel-deploy-img]][vercel-deploy-link] | +Give customers AI support and feedback in one place — reducing repetitive work and capturing clearer product signals. -
+FeedLog Widget inside a product + +#### 2. A Unified Inbox for AI–Human Support + +Bring AI and human support into one inbox, so your team can take over complex cases with full context and resolve them faster. + +FeedLog Inbox + +#### 3. A Knowledge-Grounded AI Agent That Improves Over Time + +Give your AI Agent the latest product knowledge and context to answer repetitive questions reliably — reducing manual support work and improving with every conversation. + +FeedLog Help Center used by the Agent + +#### 4. A Connected Feedback-to-Changelog Workflow + +Turn conversations into clear priorities — so teams know what to build and customers see their feedback shipped. + +FeedLog feedback boards, roadmap and changelog + +### Live Demo + +**See FeedLog in action: [feedback.feedlog.ai](https://feedback.feedlog.ai)** + +We use FeedLog to support our users, collect feedback, and manage our product roadmap. + +Explore how AI-powered customer support helps SaaS teams answer questions faster, reduce manual work, and turn customer feedback into product improvements. + +### Built for SaaS teams that: + +- answer the same customer questions repeatedly; +- need a clear path from AI support to human support; +- want customer conversations to inform product decisions. + +## Quick Start + +Get FeedLog running in three stages: -- **Cloudflare Workers** uses Hyperdrive (Postgres acceleration) and R2 - (blob storage). On first request, the deployed Worker serves a `/setup` - page that runs migrations against your Hyperdrive-bound database. Full - guide: [`docs/deploy/cloudflare-workers.md`](./docs/deploy/cloudflare-workers.md). -- **Vercel** runs `pnpm migrate && pnpm build` in the build step; failed - migrations abort the deploy and leave the previous version serving - traffic. Pair with Neon or Supabase from the Vercel Marketplace for the - fastest setup. Full guide: [`docs/deploy/vercel.md`](./docs/deploy/vercel.md). +1. Start FeedLog. +2. Prepare your AI support. +3. Add the Widget to your product and test it. -#### Keep your fork up to date +FeedLog three-step quick start -Both platforms deploy from a fork of this repo, so to pick up upstream -fixes you'll want either a manual `git pull` from `linkcraftstudio/feedlog`, -or a scheduled GitHub Action (e.g. [`tgymnich/fork-sync`](https://github.com/tgymnich/fork-sync)) -that opens a PR against your fork's `main` whenever upstream changes. +If you are not sure which deployment option to choose, start with Hosted. -### `B` Deploy with Docker +### 1. Start FeedLog -Multi-arch image (`linux/amd64` + `linux/arm64`) on -`ghcr.io/linkcraftstudio/feedlog`. Works on any Linux host — VPS, NAS, -Coolify, Dokploy, Portainer, Kubernetes. +#### Hosted -#### Quick start with the bundled `compose.yml` +The easiest way to get started. FeedLog runs the service for you, so you do not need to prepare a server or database. -The repo ships a [`compose.yml`](./compose.yml) that brings up the app -and a `pgvector`-enabled Postgres in one command. Three lines: +**[Create a FeedLog workspace →](https://auth.feedlog.ai/)** + +#### Self-Hosted + +Choose Self-Hosted if you want to run FeedLog on your own infrastructure. FeedLog requires PostgreSQL 17+ with the [`vector`](https://github.com/pgvector/pgvector) extension. + +
+Deploy on a cloud platform + +Both platforms fork the repo into your account and prompt for the required environment variables. Build and deploy run automatically. + +| Deploy to Cloudflare Workers | Deploy with Vercel | +| :---: | :---: | +| [![][cf-deploy-img]][cf-deploy-link] | [![][vercel-deploy-img]][vercel-deploy-link] | + +See the [Cloudflare Workers guide](./docs/deploy/cloudflare-workers.md) and the [Vercel guide](./docs/deploy/vercel.md). + +
+ +
+Deploy with Docker ```bash -git clone https://github.com/linkcraftstudio/feedlog.git && cd feedlog +git clone https://github.com/linkcraftstudio/feedlog.git +cd feedlog echo "BETTER_AUTH_SECRET=$(openssl rand -hex 32)" > .env echo "SYSTEM_ADMIN_EMAILS=you@example.com" >> .env docker compose up -d ``` -The app is at `http://localhost:3000`. Sign up with an email listed in -`SYSTEM_ADMIN_EMAILS` to land as admin. Optional variables (OAuth, AI, -transactional email) can be added to the same `.env` — `compose.yml` -passes them through to the app container. +FeedLog will be available at `http://localhost:3000`. See the [Docker guide](./docs/deploy/docker.md). + +
+ +> [!IMPORTANT] +> Set `SYSTEM_ADMIN_EMAILS` before you create your account. An email listed there becomes the workspace owner when it signs up; accounts created before their email was listed are not promoted later. Without an owner, nobody can manage the dashboard. See the [configuration reference](./docs/configuration.md) for all environment variables. + +Self-hosted installations also require a configured model service for AI features. See the [Self-Hosting Guide](https://help.feedlog.ai/self-hosting/overview) for deployment options and configuration details. + +### 2. Prepare Your AI Support + +#### Add your product knowledge + +Open the Help Center in your FeedLog workspace and create articles for: + +- Common product workflows +- User permissions and feature limits +- Common problems and troubleshooting +- Situations that require human support + +Enable **Allow AI usage** for the articles that FeedLog Agent should use. + +Start with the questions your support team receives most often. You do not need to document everything before trying FeedLog. + +#### Configure Agent behavior + +Before launching Agent: -#### Single-container run +1. Review your feedback boards and separate bugs, feature requests, and improvements. +2. Open **Settings → Widget**. +3. Add your support email. +4. Set the situations that should receive human support guidance. +5. Decide how customers sign in: allow guest access in **Workspace → Guest permissions**, or connect your existing product accounts with SSO. -If you bring your own Postgres (with `pgvector`): +FeedLog Agent uses the same Widget integration. No separate Agent installation is required. + +See the [Agent Setup Guide](https://help.feedlog.ai/agent/setup). + +### 3. Add the Widget to Your Product + +Install the Widget package: ```bash -docker run -d --name feedlog -p 3000:3000 \ - -e DATABASE_URL="postgresql://user:pass@host:5432/feedlog" \ - -e BETTER_AUTH_SECRET="$(openssl rand -hex 32)" \ - -e SYSTEM_ADMIN_EMAILS="you@example.com" \ - ghcr.io/linkcraftstudio/feedlog:v0.1.0 +npm install @feedlog/widget ``` -The default image falls back to NuxtHub's local-filesystem driver for -uploads — fine for a trial; mount a volume on `/app/.data` to make -those uploads survive container restarts. For S3-compatible storage -(AWS S3 / R2 / MinIO / Alibaba OSS / etc.), set the `S3_*` env vars at -runtime — no rebuild needed. See [`docs/deploy/docker.md`](./docs/deploy/docker.md). - -> [!TIP] -> Both quick starts pin to `:v0.1.0`. In production prefer an immutable -> tag (`:vX.Y.Z` or `:sha-abc1234`) over `:latest` to avoid surprise -> upgrades on `docker pull`. - -### Environment variables - -The three variables in the **Required** table are the minimum to boot a -working install. The most useful optional variables are listed below; the -[**full configuration reference**](./docs/configuration.md) (and -[`.env.example`](./.env.example) as the annotated source) covers -everything else — S3 storage, transactional email, platform-specific -overrides, and authentication toggles. - -#### Required - -| Variable | Required | Description | Example | -| --------------------- | :------: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------ | -| `DATABASE_URL` | Yes | PostgreSQL 17+ connection string. The database must have the `vector` extension installed. On Cloudflare Workers, this is **replaced** by the Hyperdrive binding. | `postgresql://user:pass@host:5432/feedlog?sslmode=require` | -| `BETTER_AUTH_SECRET` | Yes | Session and cookie encryption secret, 32+ random characters. Generate with `openssl rand -hex 32`. Rotating it invalidates every existing session. | `0a1b2c3d4e5f...` (64 hex chars) | -| `SYSTEM_ADMIN_EMAILS` | Yes | Comma-separated emails granted admin role on **first sign-up**. Set this before any user signs up — otherwise the install has no admin and the dashboard is locked. | `you@example.com,ops@example.com` | - -#### Common optional - -| Variable | Required | Description | Example | -| --------------------------------------------- | :------: | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------- | -| `BETTER_AUTH_URL` | No | Public URL of the app (no trailing slash). Inferred from the request `Host` header by default. Set explicitly behind Host-rewriting proxies or to anchor OAuth callback URLs. | `https://feedback.yourdomain.com` | -| `GOOGLE_CLIENT_ID` / `GOOGLE_CLIENT_SECRET` | No | Enable Google OAuth. Authorized redirect URI: `/api/auth/callback/google`. | `…apps.googleusercontent.com` | -| `GITHUB_CLIENT_ID` / `GITHUB_CLIENT_SECRET` | No | Enable GitHub OAuth. Callback URL: `/api/auth/callback/github`. | `Iv1.abc123…` | -| `OPENAI_API_KEY` | No | Enable AI features (similar-idea detection, AI-drafted changelog entries). Without it, those features are silently disabled. | `sk-…` | -| `OPENAI_BASE_URL` | No | Override the OpenAI endpoint — works with Azure OpenAI, LiteLLM, self-hosted gateways. Defaults to `https://api.openai.com/v1`. | `https://your-litellm-host/v1` | -| `RESEND_API_KEY` | No | Enable transactional email via [Resend](https://resend.com) (password resets, optional sign-up verification). Without it, emails are logged to stdout. | `re_…` | -| `S3_ACCESS_KEY_ID` / `S3_SECRET_ACCESS_KEY` / `S3_BUCKET` (+ `S3_ENDPOINT` / `S3_REGION`) | No | Enable S3-compatible blob storage at runtime — works with AWS S3, Cloudflare R2, MinIO, Alibaba OSS, Tencent COS, etc. Without these, uploads use NuxtHub's local-filesystem driver. See the [service cheat sheet](./docs/configuration.md#s3-compatible-storage). | `LTAI5t…` / `…` / `feedlog-prod` (+ endpoint/region) | +Initialize it in your application: -[cf-deploy-img]: https://deploy.workers.cloudflare.com/button -[cf-deploy-link]: https://deploy.workers.cloudflare.com/?url=https://github.com/linkcraftstudio/feedlog -[vercel-deploy-img]: https://vercel.com/button -[vercel-deploy-link]: https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Flinkcraftstudio%2Ffeedlog&project-name=feedlog&repository-name=feedlog&env=DATABASE_URL,BETTER_AUTH_SECRET,SYSTEM_ADMIN_EMAILS&envDescription=DATABASE_URL%3A%20Postgres%20connection%20string%20with%20pgvector%20enabled%20(Neon%20or%20Supabase%20from%20the%20Vercel%20Marketplace%20works%20out%20of%20the%20box).%20BETTER_AUTH_SECRET%3A%2032%2B%20char%20random%20string%20(run%20%60openssl%20rand%20-hex%2032%60).%20SYSTEM_ADMIN_EMAILS%3A%20your%20email%2C%20granted%20admin%20role%20on%20first%20sign-up.&envLink=https%3A%2F%2Fgithub.com%2Flinkcraftstudio%2Ffeedlog%2Fblob%2Fmain%2Fdocs%2Fdeploy%2Fvercel.md +```ts +import { createWidget } from '@feedlog/widget' + +createWidget({ + baseUrl: 'https://your-workspace.feedlog.ai', + theme: 'auto', +}) +``` + +Copy your workspace URL from **Settings → Widget** and set it as `baseUrl`. If your product already has user accounts, see the [Widget and SSO Guide](https://help.feedlog.ai/developers/widget). + +#### Test before launch + +Open the Widget on a test page and check: + +- Ask a question covered by your Help Center. +- Ask a follow-up question. +- Submit a bug or feature request. +- Ask for human support with an account-related problem. +- Check that the feedback is saved correctly. + +Once everything works as expected, make the Widget available to your customers. ## Features -- **Feedback boards** — Organize ideas into public or private boards with voting, categories, and status workflows. -- **Roadmap** — Drag-and-drop view of planned, in-progress, and shipped work. -- **Changelog** — Publish release notes with AI-drafted style presets (concise, structured, benefit-led, witty). -- **Similar-idea merge** — Vector embeddings (OpenAI `text-embedding-3-large`, 768-dim) surface duplicate feedback before it fragments the board. -- **Authentication** — Email / password, Google OAuth, GitHub OAuth, admin role handling — powered by [better-auth](https://www.better-auth.com). -- **Comments & discussions** — Markdown-powered threads on every post. -- **Notifications** — Authors and upvoters are subscribed automatically and emailed when a post's status changes or the team replies officially; unsubscribe per post at any time. Admins aren't notified. Requires an email provider. -- **Inbox** — Manage Widget conversations, human handoffs and reply email notifications. +| Feature | Description | +| --- | --- | +| FeedLog Agent | Answers product questions from your Help Center and manages feedback through natural conversations. | +| Product Widget | Lets customers ask questions, read help articles, and submit feedback inside your product. | +| Help Center | Create searchable collections and articles, and choose which content Agent can use as product knowledge. | +| Inbox | Manage Widget conversations, human handoffs, and reply email notifications in one place. | +| Feedback Boards | Organize bug reports, feature requests, and improvements with posts, voting, comments, and status workflows. | +| Similar Feedback Detection | Find related feedback and merge duplicate requests before they become fragmented. | +| Roadmap | Share planned, in-progress, and completed work through a public roadmap. | +| Changelog | Publish product updates and draft release notes with AI from your update notes and related feedback. | +| Human Support Guidance | Configure support emails and rules for billing, account, privacy, and other requests that require human help. | +| Authentication and SSO | Support email/password, Google, GitHub, guest access, and existing product accounts. | + +## Getting Started & Staying Tuned + +⭐ Star FeedLog on GitHub and stay up to date with our latest releases and improvements! + +Star FeedLog on GitHub ## Tech Stack | Layer | Choice | -|-------|--------| -| Framework | Nuxt 4 (Vue 3, Nitro, TypeScript) | +| --- | --- | +| Framework | Nuxt 4 with Vue 3, Nitro, and TypeScript | | Database | PostgreSQL 17+ with `pgvector` for embeddings | -| ORM / driver | Drizzle ORM + `postgres-js` | -| Authentication | better-auth (email/password + Google OAuth + GitHub OAuth + admin plugin) | -| AI | OpenAI-compatible API (OpenAI, Azure, LiteLLM, Ollama…) | -| Blob storage | Cloudflare R2 binding, Vercel Blob, or S3-compatible via `aws4fetch` (AWS, MinIO, OSS) | -| State | Pinia | -| UI | Tailwind CSS v4, shadcn-vue (new-york), Lucide icons | -| Editor | Tiptap 3 (visual) + CodeMirror 6 (Markdown source) | -| Deploy targets | Cloudflare Workers, Vercel, Node.js Docker | -| Package manager | pnpm | - -## Local Development +| ORM / Driver | Drizzle ORM with `postgres-js` | +| Authentication | better-auth with email/password, Google OAuth, GitHub OAuth, and admin roles | +| AI | OpenAI-compatible API, including OpenAI, Azure OpenAI, LiteLLM, and Ollama | +| Blob Storage | Cloudflare R2, Vercel Blob, or any S3-compatible storage | +| State Management | Pinia | +| UI | Tailwind CSS v4, shadcn-vue, and Lucide Icons | +| Editor | Tiptap 3 and CodeMirror 6 | +| Deploy Targets | Cloudflare Workers, Vercel, and Node.js Docker | +| Package Manager | pnpm | + +## AI Integrations + +FeedLog works with AI applications and coding agents through MCP and Skills. + +- **FeedLog MCP** — Connect Claude, ChatGPT, Claude Code, Codex, Cursor, and other MCP-compatible clients to authorized FeedLog organizations. Query and manage feedback, boards, duplicate requests, Help Center articles, and changelogs through natural language. +- **FeedLog Skills** — Give coding agents FeedLog product knowledge, integration instructions, and task guidance. Use Skills to integrate the Widget and SSO, draft Help Center articles from your codebase, and handle routine FeedLog tasks. + +Install FeedLog Skills in your project: ```bash -git clone https://github.com/linkcraftstudio/feedlog.git -cd feedlog -pnpm install -cp .env.example .env # fill in DATABASE_URL, BETTER_AUTH_SECRET, SYSTEM_ADMIN_EMAILS -pnpm migrate # initialize database schema -pnpm dev # http://localhost:3000 +npx skills add linkcraftstudio/feedlog-skills ``` -See [`CONTRIBUTING.md`](./CONTRIBUTING.md) for the full development setup -and PR process. +MCP provides access to your FeedLog organization data. Skills help coding agents understand FeedLog and work with your project code. They can be used together or separately. + +Learn more in the [MCP and Skills Guide](https://help.feedlog.ai/mcp). ## Roadmap -Live, user-voted roadmap: **[feedback.feedlog.ai/roadmap](https://feedback.feedlog.ai/roadmap)**. +FeedLog is built in public and shaped by the teams using it. Our roadmap focuses on making customer support more useful for SaaS teams and making the connection between support, feedback, and product development easier to manage. + +FeedLog product roadmap board -Release history: see [`CHANGELOG.md`](./CHANGELOG.md). +Follow the [public roadmap](https://feedback.feedlog.ai/roadmap) to see what is planned, in progress, and completed. ## Contributing -Pull requests, bug reports, and feature discussions are welcome. +Pull requests for code, documentation, and tests are welcome. To report a bug, suggest an improvement, or ask where to start, use the channels in [Community & Contact](#community--contact). + +### Local Development + +You need Node.js, pnpm, and a PostgreSQL 17+ database with the [`vector`](https://github.com/pgvector/pgvector) extension. + +```bash +git clone https://github.com/linkcraftstudio/feedlog.git +cd feedlog +pnpm install +cp .env.example .env # fill in DATABASE_URL, BETTER_AUTH_SECRET, SYSTEM_ADMIN_EMAILS +pnpm migrate # initialize database schema +pnpm dev # http://localhost:3000 +``` + +See [`CONTRIBUTING.md`](./CONTRIBUTING.md) for the full development setup and PR process. -- Read [`CONTRIBUTING.md`](./CONTRIBUTING.md) for development setup and the PR process. - All commits are signed off under the [DCO](https://developercertificate.org/) (`git commit -s`). - See [`CODE_OF_CONDUCT.md`](./CODE_OF_CONDUCT.md). -## Security +## Community & Contact + +For more information, please contact [feedlog.oss@outlook.com](mailto:feedlog.oss@outlook.com). -Found a vulnerability? Please email **feedlog.oss@outlook.com** rather than filing a public issue. See [`SECURITY.md`](./SECURITY.md) for details and response timelines. +- **GitHub Issues:** Report bugs, request features, and track development. [Submit an issue](https://github.com/linkcraftstudio/feedlog/issues) +- **Discord:** Get real-time support, chat with the community, and stay updated. [Join us](https://discord.gg/9rj64WXESn) +- **GitHub Discussions:** Share ideas, ask questions, and discuss product use cases. [Join the discussion](https://github.com/linkcraftstudio/feedlog/discussions) +- **Documentation:** Learn how to deploy, configure, and use FeedLog. [Read the docs](https://help.feedlog.ai/) +- **WeChat Community:** Scan the QR code below to join our WeChat community. -## Community + FeedLog WeChat community QR code -- **[GitHub Discussions](https://github.com/linkcraftstudio/feedlog/discussions)** — questions, ideas, show-and-tell -- **[Issue tracker](https://github.com/linkcraftstudio/feedlog/issues)** — bugs and feature requests +- **Security:** Report security vulnerabilities privately by email. See our [Security Policy](./SECURITY.md). ## License [MIT](./LICENSE) © 2026 LinkCraft Studio + +[cf-deploy-img]: https://deploy.workers.cloudflare.com/button +[cf-deploy-link]: https://deploy.workers.cloudflare.com/?url=https://github.com/linkcraftstudio/feedlog +[vercel-deploy-img]: https://vercel.com/button +[vercel-deploy-link]: https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Flinkcraftstudio%2Ffeedlog&project-name=feedlog&repository-name=feedlog&env=DATABASE_URL,BETTER_AUTH_SECRET,SYSTEM_ADMIN_EMAILS&envDescription=DATABASE_URL%3A%20Postgres%20connection%20string%20with%20pgvector%20enabled%20(Neon%20or%20Supabase%20from%20the%20Vercel%20Marketplace%20works%20out%20of%20the%20box).%20BETTER_AUTH_SECRET%3A%2032%2B%20char%20random%20string%20(run%20%60openssl%20rand%20-hex%2032%60).%20SYSTEM_ADMIN_EMAILS%3A%20your%20email%2C%20granted%20admin%20role%20on%20first%20sign-up.&envLink=https%3A%2F%2Fgithub.com%2Flinkcraftstudio%2Ffeedlog%2Fblob%2Fmain%2Fdocs%2Fdeploy%2Fvercel.md diff --git a/README.zh-CN.md b/README.zh-CN.md new file mode 100644 index 0000000..87b37d1 --- /dev/null +++ b/README.zh-CN.md @@ -0,0 +1,317 @@ +
+ +FeedLog — 开源 AI 客服与用户反馈平台 + +# FeedLog + +**开源 AI 客服与用户反馈平台** + +AI 驱动的客户支持,通过 Widget、反馈看板和自动迭代的知识库,减少 90% 的人工客服时间,节省团队人力和精力。开源,支持自建部署。 + +[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](./LICENSE) +[![Discussions](https://img.shields.io/github/discussions/linkcraftstudio/feedlog)](https://github.com/linkcraftstudio/feedlog/discussions) +[![Stars](https://img.shields.io/github/stars/linkcraftstudio/feedlog?style=social)](https://github.com/linkcraftstudio/feedlog) +[![Discord](https://img.shields.io/badge/Discord-Join%20us-5865F2?logo=discord&logoColor=white)](https://discord.gg/9rj64WXESn) +[![X](https://img.shields.io/badge/X-@feedlog__ai-000000?logo=x&logoColor=white)](https://x.com/feedlog_ai) + +[English](./README.md) | 简体中文 + +🌟 [官网](https://feedlog.ai) | [帮助文档](https://help.feedlog.ai/) | [在线体验](https://feedback.feedlog.ai/) | [社区讨论](https://github.com/linkcraftstudio/feedlog/discussions) + +
+ +--- + +## 痛点 + +- **客服需求在不知不觉中变多。** 早期由团队亲自回复用户问题,重复咨询持续增加,人力成本与运营负担随之上升。 +- **产品知识容易滞后。** 产品更新后,文档和 AI 回答往往无法及时同步。 +- **核心团队难以保持专注。** 产品、研发频繁被客服事务打断,拖累产品迭代进度。 +- **转人工时,上下文容易丢失。** 用户需要复述问题,处理效率和体验双双下降。 +- **用户反馈缺少结构化沉淀。** 需求和 Bug 分散在各类对话中,团队难以梳理规律、确定优先级、评估支持效果。 + +从消息井然到反馈迷失 + +## 我们的愿景 + +**你或许认为暂时不需要客服。但只要创始人、产品或开发人员在回复用户,就已经在承担客服工作。** + +FeedLog 无需你搭建昂贵的专职客服团队,也能留住客户支持的价值:AI 根据最新的产品知识应答重复问题,仅在必要时交给人工处理。 + +每一个 SaaS 团队都应当持续倾听、服务用户,无需在时间和人力成本的压力下,牺牲客户支持的价值。FeedLog 依靠 Widget 和 Inbox 承接咨询,通过反馈看板和路线图打通用户声音与产品规划,再通过更新日志向提需求的用户同步迭代进展,让客户支持持续为你的产品创造价值。 + +## FeedLog 实际演示 + + + +## 为什么选择 FeedLog? + +FeedLog 从客户支持到产品反馈的三步闭环 + +*FeedLog 把客户支持和产品工作连成一个持续的闭环。* + +### 核心功能 + +#### 1. 集成 AI 支持、帮助文档与反馈收集的客服组件 + +一站式承载 AI 答疑与用户反馈,减少大量重复工单,高效捕获产品侧的有效信号。 + +嵌入产品中的 FeedLog Widget + +#### 2. 一体化客服会话工作台 + +AI 和人工客服共用一套收件箱,团队统一管理,接手复杂问题时可获取完整的对话上下文,更快完成处理。 + +FeedLog Inbox + +#### 3. 依托知识库、持续自我迭代的 AI 智能助手 + +让 Agent 基于最新的产品知识和上下文,可靠地回答重复性问题,减少人工客服工作,并从每次对话中持续改进。 + +Agent 使用的 FeedLog 帮助中心 + +#### 4. 打通反馈、路线图与更新日志 + +对话自动沉淀为可排序的需求,帮团队找准开发重心;用户也能直观看到自己的反馈落地上线。 + +FeedLog 反馈看板、路线图与更新日志 + +### 在线体验 + +**体验真实运行中的 FeedLog:[feedback.feedlog.ai](https://feedback.feedlog.ai)** + +我们也在使用 FeedLog 为自己的用户提供支持、收集产品反馈,并管理产品路线图。 + +通过真实的产品使用场景,了解 FeedLog 如何帮助 SaaS 团队利用 AI 客服快速解答用户问题、减少人工客服工作量,并将客户反馈转化为持续优化产品的依据。 + +### 面向以下 SaaS 团队设计: + +- 长期重复处理同类客户咨询; +- 需要从 AI 支持到人工介入的顺畅通道; +- 希望从客户对话中获取产品决策依据。 + +## 快速开始 + +只需要三个阶段即可开始使用 FeedLog: + +1. 启动 FeedLog。 +2. 配置 AI 客服。 +3. 将 Widget 接入产品并完成测试。 + +FeedLog 三步快速开始 + +如果你不确定选择哪种部署方式,建议先使用 Hosted 云端版。 + +### 1. 启动 FeedLog + +#### Hosted 云端版 + +这是最简单的开始方式。FeedLog 负责运行服务,你不需要自己准备服务器或数据库。 + +**[创建 FeedLog 工作区 →](https://auth.feedlog.ai/)** + +#### Self-Hosted 自托管 + +如果你希望在自己的基础设施上运行 FeedLog,可以选择自托管。FeedLog 需要带有 [`vector`](https://github.com/pgvector/pgvector) 扩展的 PostgreSQL 17+ 数据库。 + +
+部署到云平台 + +两个平台都会把仓库 fork 到你的账号下,并提示填写必需的环境变量,之后自动完成构建和部署。 + +| 部署到 Cloudflare Workers | 部署到 Vercel | +| :---: | :---: | +| [![][cf-deploy-img]][cf-deploy-link] | [![][vercel-deploy-img]][vercel-deploy-link] | + +详见 [Cloudflare Workers 部署指南](./docs/deploy/cloudflare-workers.md)和 [Vercel 部署指南](./docs/deploy/vercel.md)。 + +
+ +
+使用 Docker 部署 + +```bash +git clone https://github.com/linkcraftstudio/feedlog.git +cd feedlog +echo "BETTER_AUTH_SECRET=$(openssl rand -hex 32)" > .env +echo "SYSTEM_ADMIN_EMAILS=you@example.com" >> .env +docker compose up -d +``` + +启动后,通过 `http://localhost:3000` 访问 FeedLog。详见 [Docker 部署指南](./docs/deploy/docker.md)。 + +
+ +> [!IMPORTANT] +> 请在创建账号之前设置 `SYSTEM_ADMIN_EMAILS`。列在其中的邮箱注册后会成为工作区所有者;在加入列表之前就已注册的账号,之后不会再被提升。没有所有者,就没有人能管理控制台。全部环境变量见[配置说明](./docs/configuration.md)。 + +自托管还需要配置模型服务才能使用 AI 功能。具体的部署方式和配置要求,请查看[自托管文档](https://help.feedlog.ai/self-hosting/overview)。 + +### 2. 配置 AI 客服 + +#### 添加产品知识 + +进入 FeedLog 工作区的帮助中心,为以下内容创建文章: + +- 常见产品操作流程 +- 用户权限和功能限制 +- 常见问题和解决方法 +- 需要人工支持的情况 + +为希望 FeedLog Agent 使用的文章打开 **允许 AI 使用**。 + +建议先从客服团队最常遇到的问题开始,不需要在试用前整理完所有文档。 + +#### 配置 Agent 行为 + +启用 Agent 前: + +1. 检查反馈看板,区分 Bug、功能需求和产品改进。 +2. 打开 **工作区设置 → 反馈组件**。 +3. 添加客服邮箱。 +4. 设置哪些情况需要向客户提供人工支持指引。 +5. 决定客户如何登录:在 **工作区 → 访客权限** 中允许访客访问,或通过 SSO 接入产品已有的用户账号。 + +FeedLog Agent 和 Widget 使用同一个接入方式,不需要单独安装 Agent。 + +详见 [Agent 配置文档](https://help.feedlog.ai/agent/setup)。 + +### 3. 将 Widget 接入产品 + +安装 Widget: + +```bash +npm install @feedlog/widget +``` + +在应用中初始化: + +```ts +import { createWidget } from '@feedlog/widget' + +createWidget({ + baseUrl: 'https://your-workspace.feedlog.ai', + theme: 'auto', +}) +``` + +在 **工作区设置 → 反馈组件** 中复制工作区地址,填写到 `baseUrl`。如果你的产品已有用户账号,请参考 [Widget 与 SSO 接入文档](https://help.feedlog.ai/developers/widget)。 + +#### 上线前测试 + +在测试页面打开 Widget,检查以下场景: + +- 提出一个帮助中心中已有答案的问题。 +- 继续追问一个相关问题。 +- 提交一个 Bug 或功能需求。 +- 针对账号问题请求人工支持。 +- 检查反馈是否被正确保存。 + +确认一切正常后,再向客户开放 Widget。 + +## 功能列表 + +| 功能 | 说明 | +| --- | --- | +| FeedLog Agent | 基于帮助中心回答产品问题,并通过自然对话管理客户反馈。 | +| 产品 Widget | 让客户直接在产品内提问、查看帮助文章和提交反馈。 | +| 帮助中心 | 创建可搜索的分区和文章,并选择 Agent 可以作为产品知识使用的内容。 | +| Inbox | 在一个地方管理 Widget 对话、人工转接和邮件回复通知。 | +| 反馈看板 | 通过帖子、投票、评论和状态流程,统一管理 Bug、功能需求和产品改进。 | +| 相似反馈检测 | 发现相关反馈,在重复需求分散之前将其合并。 | +| 路线图 | 通过公开路线图展示计划中、进行中和已完成的工作。 | +| 更新日志 | 发布产品更新,并根据更新要点和相关反馈用 AI 起草更新说明。 | +| 人工支持指引 | 针对账单、账号、隐私等需要人工处理的问题,配置客服邮箱和处理规则。 | +| 认证与 SSO | 支持邮箱密码、Google、GitHub、访客访问和产品已有账号。 | + +## 关注我们 + +⭐ 在 GitHub 上为 FeedLog 点亮 Star,第一时间了解最新版本和改进! + +在 GitHub 上为 FeedLog 点亮 Star + +## 技术栈 + +| 层级 | 选型 | +| --- | --- | +| 框架 | Nuxt 4、Vue 3、Nitro 和 TypeScript | +| 数据库 | PostgreSQL 17+,使用 `pgvector` 存储向量 | +| ORM / 驱动 | Drizzle ORM 和 `postgres-js` | +| 认证 | better-auth,支持邮箱密码、Google OAuth、GitHub OAuth 和管理员角色 | +| AI | 兼容 OpenAI 的 API,包括 OpenAI、Azure OpenAI、LiteLLM 和 Ollama | +| 文件存储 | Cloudflare R2、Vercel Blob 或任意 S3 兼容存储 | +| 状态管理 | Pinia | +| UI | Tailwind CSS v4、shadcn-vue 和 Lucide Icons | +| 编辑器 | Tiptap 3 和 CodeMirror 6 | +| 部署目标 | Cloudflare Workers、Vercel 和 Node.js Docker | +| 包管理器 | pnpm | + +## AI 集成 + +FeedLog 通过 MCP 和 Skills 与 AI 应用和编程 Agent 协作。 + +- **FeedLog MCP**:将 Claude、ChatGPT、Claude Code、Codex、Cursor 等兼容 MCP 的客户端连接到已授权的 FeedLog 组织,用自然语言查询和管理反馈、看板、重复需求、帮助中心文章和更新日志。 +- **FeedLog Skills**:为编程 Agent 提供 FeedLog 的产品知识、接入说明和任务指引。可以用 Skills 接入 Widget 和 SSO、根据代码库起草帮助中心文章,以及处理日常 FeedLog 任务。 + +在项目中安装 FeedLog Skills: + +```bash +npx skills add linkcraftstudio/feedlog-skills +``` + +MCP 用于访问你的 FeedLog 组织数据;Skills 帮助编程 Agent 理解 FeedLog 并处理你的项目代码。两者可以一起使用,也可以单独使用。 + +详见 [MCP 与 Skills 指南](https://help.feedlog.ai/mcp)。 + +## 路线图 + +FeedLog 在公开的开发过程中持续改进,并根据使用团队的反馈完善产品。接下来的规划会重点放在让客户支持对 SaaS 团队更有用,以及让客户支持、产品反馈和产品开发之间的衔接更容易管理。 + +FeedLog 产品路线图看板 + +你可以查看[公开路线图](https://feedback.feedlog.ai/roadmap),了解哪些功能正在规划、开发和已经完成。 + +## 参与贡献 + +欢迎提交代码、文档和测试的 Pull Request。报告 Bug、提出改进建议,或者不确定从哪里开始,都可以通过[社区与联系方式](#社区与联系方式)中的渠道找到我们。 + +### 本地开发 + +你需要 Node.js、pnpm,以及带有 [`vector`](https://github.com/pgvector/pgvector) 扩展的 PostgreSQL 17+ 数据库。 + +```bash +git clone https://github.com/linkcraftstudio/feedlog.git +cd feedlog +pnpm install +cp .env.example .env # 填写 DATABASE_URL、BETTER_AUTH_SECRET、SYSTEM_ADMIN_EMAILS +pnpm migrate # 初始化数据库结构 +pnpm dev # http://localhost:3000 +``` + +完整的开发环境配置和 Pull Request 流程,请查看 [`CONTRIBUTING.md`](./CONTRIBUTING.md)。 + +- 所有提交都需要按 [DCO](https://developercertificate.org/) 签名(`git commit -s`)。 +- 请遵守 [`CODE_OF_CONDUCT.md`](./CODE_OF_CONDUCT.md)。 + +## 社区与联系方式 + +如需了解更多信息,请联系 [feedlog.oss@outlook.com](mailto:feedlog.oss@outlook.com)。 + +- **GitHub Issues:** 报告 Bug、提出功能需求并跟踪项目开发。[提交 Issue](https://github.com/linkcraftstudio/feedlog/issues) +- **Discord:** 获取实时支持、加入社区交流并了解最新动态。[加入 Discord](https://discord.gg/9rj64WXESn) +- **GitHub Discussions:** 分享想法、提出问题并讨论产品使用场景。[参与讨论](https://github.com/linkcraftstudio/feedlog/discussions) +- **帮助文档:** 了解 FeedLog 的部署、配置和使用方式。[查看文档](https://help.feedlog.ai/) +- **微信群:** 扫描下方二维码,加入 FeedLog 共创讨论群。 + + FeedLog 微信群二维码 + +- **安全问题:** 如果发现安全漏洞,请通过邮件私下报告。详见[安全策略](./SECURITY.md)。 + +## 许可证 + +[MIT](./LICENSE) © 2026 LinkCraft Studio + +[cf-deploy-img]: https://deploy.workers.cloudflare.com/button +[cf-deploy-link]: https://deploy.workers.cloudflare.com/?url=https://github.com/linkcraftstudio/feedlog +[vercel-deploy-img]: https://vercel.com/button +[vercel-deploy-link]: https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Flinkcraftstudio%2Ffeedlog&project-name=feedlog&repository-name=feedlog&env=DATABASE_URL,BETTER_AUTH_SECRET,SYSTEM_ADMIN_EMAILS&envDescription=DATABASE_URL%3A%20Postgres%20connection%20string%20with%20pgvector%20enabled%20(Neon%20or%20Supabase%20from%20the%20Vercel%20Marketplace%20works%20out%20of%20the%20box).%20BETTER_AUTH_SECRET%3A%2032%2B%20char%20random%20string%20(run%20%60openssl%20rand%20-hex%2032%60).%20SYSTEM_ADMIN_EMAILS%3A%20your%20email%2C%20granted%20admin%20role%20on%20first%20sign-up.&envLink=https%3A%2F%2Fgithub.com%2Flinkcraftstudio%2Ffeedlog%2Fblob%2Fmain%2Fdocs%2Fdeploy%2Fvercel.md