Targetto

Targetto

"Not leads, sales": Meta Ads analytics, lead CRM and a sales cabinet that trace every so'm from ad spend to a paid order.

Client
Targetto
Role
Full-stack engineer and tech lead
Period
Aug 2026
Stack
TypeScriptReact 19TanStack StartTanStack RouterTailwind 4shadcn/uiPostgreSQL 16better-authMeta Marketing APIMeta CAPITelegramBunDockerDokploy

Problem

The media buyer shows cheap leads, the business sees no sales, and Meta never learns which leads were good.

Solution

Capture the ad → lead → sale chain in one database and feed quality signals back to Meta via CAPI.

Result

targetto.uz is live: 550+ commits, ready for Meta App Review, fully Uzbek UI.

Media buyers and their clients only see Meta-side numbers: a cheap CPL, but no idea which leads turned into sales. Leads are scattered across Google Sheets and Make.com flows, and Meta's algorithm never learns which leads were good.

Targetto connects ad spend, lead quality, sellers and revenue in one ROAS view. Ad accounts are imported as projects through Facebook login; campaigns and creatives sync automatically. Leads arrive via the Meta leadgen webhook (signature-checked), Google Sheet CSV, manual entry and polling, and are attributed by UTMs and IDs. Instant Form → Telegram routing replaced Make.com.

The "Ads doctor" computes CPL, CPQL, CPA, ROAS, CTR and CPM from totals only (a CI script enforces it) and shows creative fatigue, Pareto 80/20, budget pacing and heatmaps. The signal centre pushes Lead, QualifiedLead and Purchase events to Meta CAPI through a queue. The sales module adds products, orders, instalments, PIN-protected seller cabinets, a leaderboard and attendance; clients get a public report link and Telegram digests.

The project was migrated from a Lovable/Supabase prototype to self-hosted Postgres + better-auth, with CI guards blocking any leftover Supabase code. Realtime runs over Postgres LISTEN/NOTIFY → SSE, and tokens are encrypted with AES-256-GCM with key rotation.

Next project
Weel Booking