Open-Source Cold Email & Warmup Platform
Warmbly는 메일함을 예열하고 캠페인 전송·답변 triage를 지원하는 오픈소스 콜드 이메일 플랫폼입니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A loyalty-card platform any business can run under its own name: a Wallet card for guests (Apple Wallet and Google Wallet, nothing to install), a staff app for the till, and an owner dashboard. Built by LOYALTY, the digital partner for businesses in Bahrain (websites, apps, loyalty software and more).
This folder is the white-label copy of the platform first built for KAYA. Same back end, same code, same developers. Everything that was KAYA-specific is now a setting, so a new client is a few commands and an afternoon of branding, not a rebuild.
The KAYA project itself is separate and untouched:
workspace/loyalty-repo(GitHub: Monaim-eng/loyalty). Nothing here connects to KAYA's database, keys or hosting. Seedocs/UPSTREAM.md.
| Face | What it is |
|---|---|
| Guest card | Scan a QR, join, get a card in Apple or Google Wallet. Points update by themselves. A web version of the card too. |
| Staff app | Installable web app (PWA). Find a guest, add points from the bill, give a reward, undo within 10 minutes. |
| Owner app | Overview and chart, guests (search, CSV, erase), rules, offers pushed to Wallet cards, team, privacy and terms. |
One deployment = one client. The client's identity comes from environment variables (web/.env.example) and a folder of pictures:
| What | Where |
|---|---|
| Name, colours, "Powered by" line | BRAND_NAME, BRAND_BG, BRAND_TEXT, BRAND_ACCENT, BRAND_POWERED_BY |
| Logo mark, card textures, Apple Wallet images | web/public/venues/<slug>/ and web/passes/<slug>/ |
| The venue row (name, points rule, reward) | supabase/seeds/<slug>.sql |
The colour system derives every shade from three colours (background, text, accent), see web/src/lib/brand.ts. With no settings the app looks like the template: warm black and gold.
cd web
node scripts/new-client.mjs --name "Acme Cafe" --slug acme --accent "#3fa7a0" --bg "#0f1a1c" --text "#e8f1f0" --logo ../acme-logo.png
It writes all pictures, the SQL row and prints the settings to paste. The full checklist (own database, hosting, Wallet accounts, staff logins, handover) is docs/NEW-CLIENT.md.
cd web
cp .env.example .env.local # fill in the client's OWN values
npm run dev # http://localhost:3000/join/<slug>
No database yet? LOYALTY_FAKE_DB=1 npm run dev runs the screens on in-memory data (development only). Owner screens: /owner?mock=1.
Checks before every commit (all must pass): npm run lint, npm run typecheck, npm test (265 tests). (typecheck first generates Next's route types, which a fresh checkout does not have.)
web/ the app (Next.js, TypeScript). web/scripts/new-client.mjs the client generator.supabase/migrations/ the database (run in order on each client's own project). supabase/seeds/ one venue row per client.design/templates/ clickable HTML prototypes of every screen, design/DESIGN-GUIDE.md the look.docs/ API contract, new-client guide, upstream notes, quotation template.