Customer Engagement Platform for Email, Push Notifications, & SMS
모바일 푸시, 웹 푸시, SMS, 이메일, 인앱 메시징 분야 세계 최고, 200만 기업이 신뢰해 연간 120억 건 이상 전송
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
SiteBot — Website AI Assistant (Portfolio Demo)
Small businesses get the same repetitive questions on their website: hours, pricing, insurance, booking. SiteBot is a embeddable chat assistant that answers only from the company’s own documents, cites the source, and captures leads when it cannot help or detects buying intent.
Sample business: Bright Smile Dental Clinic — entirely fictional sample data for this demo.
• Visitors leave when they cannot find answers quickly.
• Owners cannot staff live chat 24/7.
• Generic chatbots invent facts; SiteBot is doc-grounded and refuses to guess.README 전문 보기 ↗Small businesses get the same repetitive questions on their website: hours, pricing, insurance, booking. SiteBot is a embeddable chat assistant that answers only from the company’s own documents, cites the source, and captures leads when it cannot help or detects buying intent.
Sample business: Bright Smile Dental Clinic — entirely fictional sample data for this demo.
| Area | Behavior |
|---|---|
| Knowledge | Ingest Markdown, PDF, HTML, and plain text into a local retrieval index |
| Answers | Offline BM25-style search (MiniSearch) + templated excerpts with source citations |
| LLM (optional) | Set LLM_BASE_URL, LLM_API_KEY, LLM_MODEL for OpenAI-compatible APIs |
| Honesty | Low-confidence or missing docs → “I don’t know” + lead form |
| Leads | Name, email, need; email validation; SQLite + CSV by default |
| Integrations | Pluggable Google Sheets and HubSpot adapters (disabled by default) |
| Embed | One script tag adds a chat bubble |
| Admin | Conversations, leads, re-index, edit greeting & handoff email (HTTP Basic when ADMIN_PASSWORD is set) |
| Safety | Rate limits, injection-resistant LLM system prompt, no secrets in widget, CORS allowlist |
| Demo site + widget | Answered question | Lead fallback | Admin |
|---|---|---|---|
<script src="https://YOUR-DEPLOYED-HOST/widget.js" data-bot-id="bright-smile-demo"></script>
Locally:
<script src="http://localhost:3000/widget.js" data-bot-id="bright-smile-demo"></script>
npm install
npm run demo
npm run demo builds the retrieval index and starts Next.js. No API keys required.
ADMIN_PASSWORD | Behavior |
|---|---|
| Unset (default for public demo) | /admin is read-only demo mode: sample leads/conversations only, no settings or re-index writes |
| Set | /admin and /api/admin/* require HTTP Basic auth (any username, password = ADMIN_PASSWORD); real leads and writes enabled |
Do not expose a password-protected admin on the public internet without TLS (Vercel provides HTTPS).
npm test
npx playwright install chromium
npm run screenshots
data/bots/bright-smile-demo.json to a new bot id (e.g. my-shop.json).docsPath at your folder of .md, .txt, .html, .pdf files.BOT_ID=my-shop npm run ingest.data-bot-id="my-shop".allowedOrigins in the bot JSON (or set ALLOWED_ORIGINS env var).Re-index from the admin UI or:
curl -X POST http://localhost:3000/api/admin/reindex -H 'Content-Type: application/json' -d '{"botId":"bright-smile-demo"}'
export LLM_BASE_URL=https://api.openai.com/v1
export LLM_API_KEY=sk-...
export LLM_MODEL=gpt-4o-mini
npm run demo
Answers still use retrieved passages in the prompt; the system instructions forbid hallucination.
Default: data/leads.db (SQLite) and append-only data/leads.csv.
Google Sheets (off by default): see docs/integrations/google-sheets.md
HubSpot (off by default): see docs/integrations/hubspot.md
vercel.json included).ADMIN_PASSWORD unset for the portfolio demo (read-only admin with sample data).ALLOWED_ORIGINS to your customer sites (comma-separated URLs). Vercel preview/production URLs are added automatically..env.example.https://<project>.vercel.app/widget.js in the embed snippet.Vercel notes:
npm run build runs ingest and commits/updates data/index/ — search works on serverless without runtime writes.persistenceNote explaining this. For production, enable Sheets/HubSpot sinks or a hosted database.public/widget.js — embeddable bubble (no secrets)data/sample-business/ — fictional Bright Smile docsdata/index/ — generated retrieval index (created by npm run ingest)src/app/api/ — chat, leads, widget config, admin APIssrc/lib/ — ingestion, retrieval, offline/LLM answering, lead storeMIT (portfolio demo).