UGC Reactions from Real Creators
Real creator library videos at $11 and images at $8. Custom production from $25/video with a $250 minimum. Commercial licensing included.
翻訳待ち
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Set a lead target and a monthly budget per city. Cruise holds them.
It clones a campaign that already works into a new city — resolving the geo key, the catalogue product set and the creative for that city rather than copying the old one — then watches every city against its target and its budget, and stops the ones that are done.
This is a full working build: real authentication, a real SQLite database, a real rules/scoring engine, and a mock (clearly isolated) Meta Marketing API layer so the product runs end-to-end without live ad spend or real API credentials.
Data provenance (updated 2026-09-01). The campaign, ad set, targeting, spend
and result data in this build is pulled from the live Meta account "Used Cars
Sales" (10153410655459601, CarDekho) over its trailing 30 days — see
scripts/real-account-data.ts. An earlier version of this build shipped with an
invented nine-city dataset; that has been removed. Catalogues and product sets are real too
(scripts/real-catalogue-data.ts): the account runs one pan-India vehicles
catalogue, Catalog_Vehicles-Pan-India-20-July, with a dynamic product set per
city filtered on city — Ahmedabad 1,230 vehicles, Nashik 1,054, Chandigarh 460,
Mohali 412. Those product counts are now the inventory figures for those cities,
so the only city still carrying a generated inventory number is Delhi NCR, which
has no product set because its campaign is a lead form rather than a catalogue
ad.
Requirements: Node.js 18.18+ (20 LTS recommended), npm.
npm install
cp .env.example .env
npm run setup # creates the SQLite schema and seeds 9 cities / ~8,800 vehicles / 22 campaigns / 30 days of performance + leads
npm run build
npm start # production build, http://localhost:3000
or for local iteration:
npm install
cp .env.example .env
npm run setup
npm run dev # http://localhost:3000
To wipe and regenerate demo data at any point: npm run db:reset.
On a restrictive/corporate network:
better-sqlite3ships prebuilt native binaries for all major platforms and does not need to compile anything — but npm's default install step still attempts anode-gyp rebuild, which tries to download Node.js headers fromnodejs.orgeven though it ends up unused. Ifnpm installfails with a header-download/403 error, runnpm install --ignore-scriptsinstead — the prebuilt binary loads directly and everything above still works.
npm run db:seed gives each seeded user a different random password and
prints them once, at the end of the run. They are not stored anywhere else and
cannot be looked up later — copy them from the terminal, or reset them from
Settings → Users & Roles.
Before sharing a deployed URL: change those passwords, or delete the seeded accounts and create real ones. A published credential on an install that can spend money in a live ad account is the whole ballgame.
| Role | Can do | |
|---|---|---|
| Admin | [email protected] | Everything: campaigns, budgets, integrations, users, settings |
| Marketing Manager | [email protected] | Create/edit campaigns, approve/reject AI recommendations, run inventory imports — no billing/user/integration admin |
| Marketing Manager | [email protected] | Same as above (second manager seeded for the Users table demo) |
| Viewer | [email protected] | Read-only: dashboards, reports, copilot |
Scope for this build, per the agreed "Must-Have + AI Copilot + Vehicle-level scoring" depth:
This is the beginning of the README. Read the rest at the original. Read the full README ↗