Meta Aira
A SaaS for Indonesian businesses running Facebook and Instagram ads. It connects Meta accounts, shows page and ad analytics in one place, and uses rules to pause weak ads or boost top posts automatically.
- Role
- Lead fullstack engineer
- Timeline
- May 2026 – present
- Stack
- NestJSNext.jsTypeScriptMongoDBRedisBullMQMeta Marketing APIXenditPM2GitHub Actions

The problem
Teams running Meta ads for Indonesian businesses juggle Ads Manager, page insights and spreadsheets, and weak ads keep spending until someone notices.
What it does
- Connects Facebook Pages, Instagram accounts and ad accounts with Meta OAuth. Tokens refresh on their own.
- One dashboard for reach, interactions, followers and post performance, with organic and paid reach kept apart.
- An ads explorer for campaigns, ad sets and ads. CPM, CPC, CTR and ROAS are computed when read, never stored.
- Rules per ad account, for example "cost per result above X → pause", checked on a schedule and applied through the Marketing API.
- Auto-boost that finds top posts, runs candidates against each other and emails a proposal to approve before any budget moves.
- Plans paid in IDR through QRIS, team invites with per-account roles, a help center and an admin console.
How it is built
- NestJS API and a separate worker process (BullMQ on Redis plus about 20 scheduled jobs), with a Next.js 16 front end and MongoDB.
- Incremental sync from the Graph API, with back-off driven by Meta's usage headers so the app never hits rate limits.
- Payments behind a gateway port. Webhooks are verified with HMAC and a timestamp.
- Job-run registry and a sync-health endpoint, so a stalled worker shows up in the API instead of failing silently.
- 150+ backend test files. CI on every PR; deploys from
main(dev) andproductionthrough GitHub Actions to PM2 on a VPS.
My role
Lead fullstack engineer: architecture, backend, front end and the deploy pipeline.