Customer Engagement Platform for Email, Push Notifications, & SMS
모바일 푸시, 웹 푸시, SMS, 이메일, 인앱 메시징 분야 세계 최고, 200만 기업이 신뢰해 연간 120억 건 이상 전송
하나의 링크와 QR코드로 방문자를 Google, Facebook, Yelp 등으로 유도해 리뷰 요청을 자동화합니다
Turn every visit into a review request. One link and QR code send customers to Google, Facebook, and Yelp, with the same buttons at every rating.
마케팅TypeScript · CSSGitHub @DealPatrol온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
ReputationFlow helps local businesses request honest public reviews, collect optional private feedback, monitor results, and draft responses.
Every customer sees the same Google, Facebook, and Yelp review links regardless of the rating they select. Private feedback is optional and appears alongside those public links. ReputationFlow does not suppress, delay, or discourage public reviews based on sentiment.README 전문 보기 ↗ReputationFlow helps local businesses request honest public reviews, collect optional private feedback, monitor results, and draft responses.
Every customer sees the same Google, Facebook, and Yelp review links regardless of the rating they select. Private feedback is optional and appears alongside those public links. ReputationFlow does not suppress, delay, or discourage public reviews based on sentiment.
npm ci
cp .env.example .env.local
npm run migrate
npm run dev
npm run migrate is the only database initialization path. It applies the idempotent schema in scripts/migrate.sql; there are no public database-init endpoints.
For a keyless demo, omit DATABASE_URL, Stripe, and Groq variables and run npm run dev. Visit /demo, or sign in with:
[email protected]demo-reputationflowDemo mode uses sample data, deterministic AI response drafts, and disables account creation and billing.
Copy .env.example. Production requires:
DATABASE_URLAUTH_SECRET (at least 32 random characters)NEXT_PUBLIC_APP_URLNEXT_PUBLIC_SITE_URL (canonical origin for SEO, sitemap, and shared review links; use the custom domain once it is attached)Pro billing additionally requires:
STRIPE_SECRET_KEY (prefer a restricted key with only the required permissions)STRIPE_PRICE_ID_PROSTRIPE_WEBHOOK_SECRET/api/stripe/webhookAI, email, KV, and Blob credentials are optional and documented in .env.example. ReputationFlow does not send SMS.
Meta Pixel, GA4, and Google Ads load only when the matching NEXT_PUBLIC_ variable is set. See .env.example. Change those variables and redeploy; they are inlined at build time.
?success=true. Closing the tab before then means the browser tag does not fire. There is no server-side Measurement Protocol call.utm_source, utm_medium, utm_campaign, utm_term, utm_content, gclid, and fbclid are stored on leads and users from the first page that carried them. Run npm run migrate so those columns exist.
/ads/contractors, /ads/restaurants, and /ads/home-services are noindex landing pages with one signup button. Their canonicals point at the matching organic page. They are not in the sitemap.
/google-review-request-templates offers a plain-text pack of in-person, text, and email scripts. The download does not require an email or an account.
If someone submits an email, the app stores a row in the existing leads table with source review-templates. There is no separate mailing list or email vendor beyond Resend. When RESEND_API_KEY and EMAIL_FROM are set, that same request emails the pack. If email is not configured, the signup is still stored and the page tells the person to download the file. Demo mode (no DATABASE_URL) cannot store leads. The download still works.
Never commit real credentials. Keep separate test and live Stripe keys. Configure tax registrations before enabling Stripe Tax; this integration does not enable automatic tax.
npm run lint
npm run type-check
npm run build
npm test
Subscribe the webhook endpoint to:
checkout.session.completedcustomer.subscription.updatedcustomer.subscription.deletedWebhook signatures are verified before processing. Event IDs are persisted in stripe_webhook_events so retries are idempotent.
Next.js 16, React 19, Neon Postgres, Groq, Resend, Stripe, and Vercel.