new-term-radar
신규 AI 용어를 매일 추적, X·Hugging Face·GitHub 등에서 모델·제품·레포 이름을 빠르게 수집
Thabaal Meta 공식 플랫폼 기반 WhatsApp 비즈니스 캠페인 및 관리
Thabaal is a web portal for businesses to send WhatsApp campaigns, answer customers, take orders and request payments, and see reports, through Meta's official WhatsApp Business Platform.
마케팅TypeScript · JavaScriptGitHub @thabaal26온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A private dashboard for sending scheduled WhatsApp promotions to customers using Meta's WhatsApp Cloud API.
Stack: Next.js 16, Prisma, Postgres (Neon), Tailwind CSS 4.
cp .env.example .env # fill in DATABASE_URL, AUTH_SECRET, ADMIN_*, CRON_SECRET
npm install
npm run db:push # create tables
npm run seed # create the login (add -- --demo for 1,000 sample customers)
npm run dev
DATABASE_URL and DATABASE_URL_UNPOOLED..env.example in Settings → Environment Variables: AUTH_SECRET, CRON_SECRET, BUSINESS_NAME, and the WhatsApp variables once they're ready.DATABASE_URL in .env, run:
npm run db:push && npm run seed (with the client's ADMIN_EMAIL and ADMIN_PASSWORD)./api/cron every 5 minutes.
APP_URL (your Vercel URL) and CRON_SECRET (same as in Vercel). GitHub may run it a few minutes late.https://YOUR-APP.vercel.app/api/cron every 5 minutes with the header Authorization: Bearer YOUR_CRON_SECRET
(job → Advanced → Headers). Don't put the secret in the URL: URLs are kept in logs.vercel.json with
{ "crons": [{ "path": "/api/cron", "schedule": "*/5 * * * *" }] }. Vercel sends the CRON_SECRET automatically.whatsapp_business_messaging and whatsapp_business_management.WHATSAPP_TOKEN, WHATSAPP_PHONE_NUMBER_ID, WHATSAPP_BUSINESS_ACCOUNT_ID, META_APP_ID and META_APP_SECRET.https://YOUR-APP.vercel.app/api/webhook, verify token = WHATSAPP_WEBHOOK_VERIFY_TOKEN.
Subscribe to messages and message_template_status_update.Besides Meta's Cloud API, the portal can send through a WhatsApp number linked by QR code, using a self-hosted WAHA server. Switch between the two in Settings → Sending provider.
Warning: this is unofficial. Sending promotions this way breaks WhatsApp's terms, and the number can be banned. Use a dedicated number, keep batches small (e.g. 25 every 15 minutes), and only message customers who expect to hear from you.
waha.yourdomain.com at it.deploy/waha/ to the VPS, create .env from .env.example, then run docker compose up -d.
Caddy gets an HTTPS certificate automatically.https://waha.yourdomain.com, the API key and the session
name default, then Save, Link phone, and scan the QR code from WhatsApp → Linked devices.How it behaves:
mobile/ is a native Android shell that opens the live portal in Android's WebView (not Chrome), so
Chrome settings like "Desktop site" never affect it, and every deploy reaches the app without a rebuild.
The app only needs rebuilding to change its name, icon, portal URL or native settings.
Requirements: JDK 21 and the Android SDK (platform 36, build-tools 36). Android Studio is optional.
cd mobile
npm install
npm run icons # regenerate launcher icons and splash from resources/
npm run sync # copy capacitor.config.ts into the Android project
npm run apk:release # → android/app/build/outputs/apk/release/app-release.apk
npm run aab:release # → android/app/build/outputs/bundle/release/app-release.aab (Play Store)
Release signing reads mobile/keys/keystore.properties and mobile/keys/campaigns-release.jks, which are
not in git. Back them up somewhere safe: every future update must be signed with the same key, or phones
will refuse to install it over the existing app. Increase versionCode in android/app/build.gradle for
each new release.