個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Open-source, self-hosted feedback intelligence. Turn customer feedback into sentiment, pain points, feature requests and churn risk — on your own infrastructure, with your own (or a local) LLM key.
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
Open-source, self-hosted feedback intelligence.
Turn raw customer feedback into sentiment, pain points, feature requests and churn risk — on your own infrastructure, with your own LLM key.
Rereflect ingests customer feedback from CSV, email, webhooks, Slack, Intercom and
Zendesk, syncs with issue trackers like Linear, Jira and Asana, then uses NLP and
(optionally) an LLM to classify sentiment, surface pain points and feature requests,
flag urgent churn risks, and route everything through a team workflow — all behind a
multi-tenant dashboard you host yourself.檢視完整 README ↗Rereflect ingests customer feedback from CSV, email, webhooks, Slack, Intercom and Zendesk, syncs with issue trackers like Linear, Jira and Asana, then uses NLP and (optionally) an LLM to classify sentiment, surface pain points and feature requests, flag urgent churn risks, and route everything through a team workflow — all behind a multi-tenant dashboard you host yourself.
| 🧠 AI feedback analysis | Sentiment, pain points, feature requests, urgency and topic clustering — local (VADER default) or LLM-powered (BYOK). Optional opt-in local transformer sentiment model (CPU, offline, per-org) with a built-in accuracy card that compares it against VADER on a labeled set — honest numbers, off by default. Per-org self-improving classifiers — separate sentiment, category and urgency heads train on your own corrections and auto-promote only when measurably better (≥ +0.02 macro-F1), fully reversible. The urgency head is add-only in auto (it can escalate to urgent, never silently clears the flag). |
| 💬 AI Copilot (Cmd+K) | Ask questions in natural language, generate reports and draft responses — including recurring scheduled reports with optional email delivery (BYO-key Resend). When an answer returns a customer list, the copilot can also propose one concrete action — tagging those customers — and execute it on your confirmation (admins/owners only; the cohort is the result set you saw, capped at 200; proposals are derived server-side from the result shape, so they work identically on a keyless local model). Runs fully offline on a local model (Ollama or any OpenAI-compatible endpoint) — including the template-matching embeddings — or on your BYOK cloud key. |
| 📉 Churn risk scoring | Per-item churn risk with suggested actions, plus cohort analytics and playbooks. Churn-triggered playbooks can now reach the customer: send_email playbook steps and bulk outreach campaigns on /customers (template or AI-drafted content, sent via your own Resend key), with a per-customer opt-out + tokenized unsubscribe honored on every send path and a shared per-recipient cooldown so no one gets emailed twice. An automation rule can send the same emails (send_customer_email) when churn risk, health score or usage crosses a line — shadow mode first, and every send is audited per rule. Optional CRM-sourced churn label suggestions — if you've connected HubSpot or Salesforce, Rereflect can read lost renewals and propose them as churn labels. Off by default and default-deny (nothing is suggested until you name your renewal pipelines), and every suggestion is confirmed by a human in a review queue before it becomes a label — a lost renewal is not always a churn. Includes an optional on-demand backfill over your closed-lost history. A second, CRM-free source does the same from sustained product-usage decline (opt-in, shadow mode first) — same review queue, same human-confirm rule; a usage drop is not always churn either. |
| 🧑💼 Customer 360 + timeline | Per-customer health profile with a unified, paginated activity timeline (feedback, product usage, churn and health-score events); CRM enrichment (HubSpot, Salesforce) with optional health-score writeback to both HubSpot and Salesforce — also readable over the public API. |
| 🗂️ Team workflow | Kanban board, statuses, auto-assignment rules and round-robin routing. |
| 🔌 Sources & integrations | Inbound: CSV import, email, webhooks and Slack, plus support desks (Intercom, Zendesk). Issue trackers: Jira, Linear and Asana. CRM: HubSpot and Salesforce. Outbound: alerts and digests via Slack, Discord and Teams, and customer outreach via email (BYO-key Resend, opt-out honored). |
| 📊 Trends over time & sharing | Not just a snapshot: /analytics plots average sentiment, volume, urgent count, pain points and feature requests over 7/30/90 days (daily or weekly buckets), and each top pain point and feature request carries an ↑/↓/→ arrow so you can see which themes are actually accelerating rather than just loud. Plus source breakdown, saved views, CSV export, PDF export and read-only share links. |
| 👥 Multi-tenant + RBAC | Organization isolation with Owner / Admin / Member roles. |
The fastest path is Docker Compose — it brings up Postgres, Redis, the backend, the Celery worker and the frontend together.
git clone https://github.com/haqaliz/rereflect.git
cd rereflect
# 1. Copy the env template and fill in the required secrets
cp .env.prod.example .env
# 2. Generate the two required secrets and paste them into .env
python -c "import secrets; print('JWT_SECRET=' + secrets.token_urlsafe(48))"
python -c "from cryptography.fernet import Fernet; print('LLM_ENCRYPTION_KEY=' + Fernet.generate_key().decode())"
# 3. Build and start everything
docker compose -f docker-compose.prod.yml up -d --build
Open http://localhost:3000 and sign in with the ADMIN_EMAIL / ADMIN_PASSWORD
you set in .env (the first admin is seeded on startup). The API and interactive
docs live at http://localhost:8000/docs.
Out of the box (
ai_analysis_enabled=false, no LLM key) Rereflect runs the free local pipeline — sentiment, pain points, feature requests and heuristic churn all work with no external API and no cost. Point Settings → AI at a local model (Ollama or any OpenAI-compatible endpoint) and even the AI Copilot runs fully offline — its template-matching embeddings and answer generation both use your local provider, no OpenAI key required. Add a cloud BYOK key instead whenever you want a stronger hosted model.
👉 Full deployment guide, env reference and BYOK setup: docs/SELF_HOSTING.md. Developing locally instead of via Docker? See docs/DEVELOPMENT.md.
Real-time KPIs, NPS, sentiment distribution and trend analytics — with exportable, shareable views.
Every feedback item is automatically categorized, tagged and prioritized.
| Workflow board | Feedback sources |
|---|---|
| Integrations | AI (bring your own key) |
| Auto-assignment rules | Notifications & digests |
| Team & roles | Shared links |
┌─────────────────┐
│ frontend-web │ Next.js 16 + TypeScript + TailwindCSS
└────────┬────────┘
│ REST API
▼
┌─────────────────┐
│ backend-api │ FastAPI + PostgreSQL + SQLAlchemy
└────────┬────────┘
│
┌────┴────┐
▼ ▼
┌────────┐ ┌────────────┐
│analysis│ │ worker- │ Celery + Redis
│-engine │ │ service │
└────────┘ └────────────┘
A Next.js frontend talks to a FastAPI backend; long-running analysis runs on a Celery worker (Redis broker) using the analysis engine (VADER / scikit-learn / BERTopic, or an LLM when a key is configured). Full breakdown, tech stack, project layout and the RBAC model are in docs/ARCHITECTURE.md.
| Guide | What's inside |
|---|---|
| Self-Hosting | Docker Compose deployment, full env reference, BYOK, TLS and the $0 local mode |
| Development | Local setup, the pnpm + Python toolchain, package management, common commands, troubleshooting |
| API Reference | REST endpoints, auth, pagination and filtering (live Swagger at /docs) |
| Architecture | Services, tech stack, project structure and RBAC |
| Contributing | Dev workflow, testing and PR conventions |
Contributions are welcome — bug reports, features, docs and tests. See CONTRIBUTING.md for dev setup, testing and PR conventions.
Rereflect is free and open source. If it's useful to you, you can chip in with a crypto donation:
Released under the MIT License. Third-party attributions are in NOTICE.