new-term-radar
신규 AI 용어를 매일 추적, X·Hugging Face·GitHub 등에서 모델·제품·레포 이름을 빠르게 수집
SiteScout은 웹사이트가 부족한 소상공인을 찾아 검토하고 점수를 매겨 데모 페이지와 영업 메시지를 작성한다
SiteScout finds small businesses without a good website, checks their site, scores the lead and drafts a demo page and outreach message.
마케팅TypeScript · CSSGitHub @damiruali014-lab온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Finds small businesses with no website (Google Places + 2GIS), scores them as leads, generates a demo website for each, and drafts outreach in RU/KK/EN. React + Vite on Vercel, Supabase, Claude API.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Find small businesses that need a website → check their site → score the lead → generate a demo landing page and a personal outreach message → track the conversation.
Built by Damir Uali. The full "how I built it" story is in BUILD_LOG.md.README 전문 보기 ↗Find small businesses that need a website → check their site → score the lead → generate a demo landing page and a personal outreach message → track the conversation.
Built by Damir Uali. The full "how I built it" story is in BUILD_LOG.md.
/p/:slug) in EN/RU/KK, clearly labelled as a concept preview.Stack: React 19 + Vite 8 + TypeScript · Vercel Functions (/api) · Supabase (Auth + Postgres + RLS) · Claude API (Haiku).
npm install
npm run dev # http://localhost:5173 — Demo mode works immediately
npm run dev also serves the /api/*.ts functions locally (see vite.api-dev.ts), so you don't need vercel dev.
Other scripts:
npm run build # type-check (app + api) and build
npm run lint # oxlint, warnings fail
npm test # unit tests (scoring, SSRF guard, outreach templates)
To try live mode locally, copy .env.example → .env.local and fill in the keys. Set DEV_SKIP_AUTH=1 to skip the login check on /api while developing. Vercel always ignores this setting.
| Variable | Where | Cost (Oct 2026) |
|---|---|---|
GOOGLE_PLACES_API_KEY | Google Cloud Console → enable Places API (New) → Credentials → API key. API restrictions: Places API (New) only. Leave application restrictions on "None" (server-side key). | Search uses Text Search Enterprise: 1,000 free requests/month, then ~$35 per 1,000 (each request returns up to 20 places). Place Details Pro: 5,000 free/month, then ~$17 per 1,000. Set a daily quota and a budget alert. |
DGIS_API_KEY | platform.2gis.ru → create a demo key | The demo key is free for testing. Production pricing is a quote from 2GIS. Ask them to enable contact_groups (phones/websites). |
ANTHROPIC_API_KEY | platform.claude.com → API Keys | Claude Haiku 5.5, from $0.10 / $0.50 per million input/output tokens, so one message costs a fraction of a cent. Set a spend limit. ANTHROPIC_MODEL is optional. |
VITE_SUPABASE_URL, VITE_SUPABASE_ANON_KEY | Supabase → Project Settings → API | Free plan. The anon key is public by design; RLS protects the data. |
SUPABASE_SERVICE_ROLE_KEY | same page | Server only. Never give it a VITE_ prefix. |
ALLOWED_EMAIL | your login email | Only this account can call the paid endpoints. |
IG_USER_ID, IG_ACCESS_TOKEN (optional) | Meta developer app, see Instagram check below | Free (Graph API rate limits apply). |
OpenStreetMap needs no key: Nominatim finds the city and Overpass finds the businesses. Both are free public services with fair-use limits, so results are cached for 30 minutes. It's the default source for European countries.
API keys never reach the browser: every provider call goes through /api/*.
supabase/migrations/ in order (001 → 005). Paste the SQL itself, not the file name.The lead page can read the website in a business's Instagram bio through the official Graph API (Business Discovery). It only works for public Business/Creator accounts.
instagram_basic, instagram_manage_insights and pages_show_list/pages_read_engagement. Generate a token, then exchange it for a long-lived token (60 days) in the Access Token Debugger.me/accounts?fields=instagram_business_account in the Explorer. The instagram_business_account.id (starts with 1784…) is IG_USER_ID.IG_USER_ID and IG_ACCESS_TOKEN in Vercel → Environment Variables (and .env.local), then redeploy. The token expires after about 60 days; the page tells you when.Without it, the lead page shows an Open profile button so you can look at the bio yourself.
<iframe
src="https://YOUR-APP.vercel.app/?embed=1"
title="SiteScout — live demo"
style="width:100%;max-width:420px;height:720px;border:0;border-radius:16px"
loading="lazy"
></iframe>
?embed=1 forces Demo mode, hides the footer and adds an "Open ↗" link. ?theme=dark or ?theme=light sets the theme.vercel.json only allows framing from damiruali014-lab.github.io (frame-ancestors). Edit it if your portfolio domain changes.noindex, and expire after 60 days. The view counter shows when an owner opened the link.api/ Vercel Functions (web-standard Request → Response)
_lib/ shared server code + types (imported by the app too)
search.ts check.ts describe.ts message.ts details.ts page.ts health.ts
src/
pages/ Search, Lead, Tracker, Login, public DemoLanding
components/ cards, badges, demo-page + message + tracker cards
lib/ demo data, stores, API client, i18n, templates
supabase/migrations/ SQL with RLS
/p/:slug (needs a small server-rendered route).