new-term-radar
신규 AI 용어를 매일 추적, X·Hugging Face·GitHub 등에서 모델·제품·레포 이름을 빠르게 수집
카페·레스토랑·이발소·헬스장용 디지털 적립 스탬프 카드, WhatsApp으로 가입·브랜딩·이벤트 제공
Digital loyalty stamp cards for cafes, restaurants, barbers, salons and gyms. Customers join with WhatsApp, staff find them by username. Spin to win, offers, gift certificates and your own branding. F
마케팅TypeScript · CSSGitHub @adwordsmanagergc-wq온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Digital loyalty stamp cards for cafes, restaurants, barbers, salons and gyms. Customers join with WhatsApp, staff find them by username. Spin to win, offers, gift certificates and your own branding. Free for 7 days.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Digital stamp cards for any business: cafes, restaurants, barbers, salons, gyms, bakeries. One app hosts many businesses, each with its own link, branding and loyalty rules. Roasted is business #1.
Settings each business can change (Staff page > Settings)
• Name, tagline, logo, 6 colours, font, background texture, stamp icon (bean, cup, leaf, star, heart, scissors, paw, bolt, slice, drop)
• What earns a stamp ("coffee", "cut", "class"), up to 4 reward tiers (e.g. 5 = free pastry, 8 = free coffee)
• WelcomeREADME 전문 보기 ↗Digital stamp cards for any business: cafes, restaurants, barbers, salons, gyms, bakeries. One app hosts many businesses, each with its own link, branding and loyalty rules. Roasted is business #1.
| Page | Who | What |
|---|---|---|
/{slug} | Customers | Sign up with a username, password and WhatsApp number (and agree to the terms), or log in with username + password. A WhatsApp code is only used to reset a password |
/login | Customers | Log in with username + password from the main site; "Sign up" finds the business first |
/me | Customers | My cards: every card they have, plus search to join other businesses with one tap (same username and password) |
/terms | Everyone | Terms and conditions customers agree to at sign-up |
/{slug}/card | Customers | Stamp card with their username for staff, a box for counter or personal codes, spin to win, vouchers, social post stamps, refer-a-friend link, latest offer. Can be added to the home screen, or to Apple / Google Wallet |
/{slug}/g/{code} | Anyone with the link | A gift certificate with its QR code and balance |
/{slug}/staff | Staff (name + password) | Send their own WhatsApp invite link (friend gets a free item voucher plus welcome stamps), find customers by username (or part of it) or number, show counter codes, scan gift certificates; add stamps, redeem rewards and vouchers, approve social posts, sell and use gift certificates |
/{slug}/staff | Manager (name + password) | Also: dashboard (repeat visits, customer groups, per-staff results), offers to customer groups, members list + CSV export, stamp adjustments, team logins, all settings |
/platform | You | Add businesses, pause them, reset manager passwords, see members and activity per client |
New businesses start from a template: cafe, matcha/tea bar, restaurant, barber/salon, beauty/spa, gym/studio, bakery.
rewards-platform)..env.example:
DATABASE_URL, SESSION_SECRET (run openssl rand -hex 32), PLATFORM_ADMIN_PASSWORD, APP_URL, CRON_SECRETWHATSAPP_PROVIDER (see below).env.local, then npm install and npm run migrate.loyallocally.com in Vercel > Domains and set APP_URL=https://loyallocally.com./platform, log in, add Roasted (link name roasted, template Cafe), then log in at /roasted/staff with the manager name and password and open Settings.https://your-domain/roasted, and print a QR code of that link for the counter./roastedcustomer is a one-page landing with two buttons: review Roasted on Google, or join the digital card (1 free stamp).The daily reminder job is already set in vercel.json (10am Bali time).
WHATSAPP_PROVIDER=dev: codes are printed in the Vercel logs. Use for testing only.WHATSAPP_PROVIDER=fonnte (quickest in Indonesia): sign up at fonnte.com, connect a spare WhatsApp number by scanning the QR, copy the token into FONNTE_TOKEN. Works straight away. Uses an unofficial connection, so use a dedicated number, not your main one.WHATSAPP_PROVIDER=meta (official, best once you have many clients): set up WhatsApp Cloud API in Meta Business Manager, then create and get approved 3 templates:
login_code (category Authentication, copy-code button): {{1}} is your verification code.one_stamp_away (Marketing): Hi {{1}}! You're 1 stamp away from your next reward: {{2}} at {{3}}.voucher_expiring (Marketing): Hi {{1}}, your {{2}} voucher at {{3}} expires soon.offer (Marketing), for offers sent from the Offers tab: Hi {{1}}, news from {{2}}: {{3}} See your card: {{4}}
Put the token and phone number ID in META_WA_TOKEN and META_WA_PHONE_NUMBER_ID.One WhatsApp sender serves all businesses; the business name is included in every message.
Members get an "Add to Apple Wallet" or "Add to Google Wallet" button on their card. The wallet card shows their stamps, updates by itself after every scan, and offers you send appear on their lock screen for free. The buttons only appear once the keys below are set; everything else works without them.
Apple (needs an Apple Developer account, USD 99 a year):
pass.com.loyallocally.rewards.openssl req -new -newkey rsa:2048 -nodes -keyout pass.key -out pass.csr), download the .cer, then openssl x509 -inform der -in pass.cer -out pass.pem.APPLE_PASS_TYPE_ID, APPLE_TEAM_ID (top right of the developer site), APPLE_PASS_CERT (pass.pem), APPLE_PASS_KEY (pass.key), APPLE_WWDR_CERT, and APPLE_PASS_KEY_PASSPHRASE if your key has one. Paste the PEM text; \n in place of line breaks is fine.
APP_URL must be your real https domain, because iPhones call it to fetch card updates.Google (free):
GOOGLE_WALLET_ISSUER_ID, GOOGLE_WALLET_SA_EMAIL and GOOGLE_WALLET_SA_KEY (the private_key from the JSON file).Wallet cards carry a fixed QR code (wallets can't rotate it like the web card), so a screenshot of a wallet card can be scanned. Every stamp is still logged with the staff member, and the 3-minute repeat warning still applies.
cp .env.example .env.local # fill in DATABASE_URL etc.
npm install
npm run migrate
npm run dev # http://localhost:3000/platform