Skip to content
Rajin.
Web ApplicationFeatured Project

Kennedy AI Studio

An AI-run Meta ads platform for small business owners with no advertising background. Answer a few plain-language questions and a campaign goes live on Facebook and Instagram in under ten minutes — targeting, copy, creative and budget all handled.

Kennedy AI Studio

Overview

Kennedy AI Studio replaces Meta Ads Manager as the layer where campaigns are created and managed. Its users are restaurateurs, e-commerce sellers, tradespeople and local service operators across many countries — people who need customers, not an education in media buying. The product's entire premise is that it does less than Meta Ads Manager on purpose: outcomes before inputs, one recommended path instead of five equal options.

The system is two connected surfaces over a shared token layer. A marketing site handles positioning and signup; the authenticated app carries the real workflow — connect a Meta business account over OAuth, answer brand-setup questions, configure a campaign, review AI-generated creative and captions, see a projected performance estimate before committing money, pick a plan, and then manage the live campaign from a dashboard with spend, reach and click trends.

Behind it sits a modular NestJS backend: Meta Graph API integration with encrypted long-lived tokens, Gemini-driven copy and image generation dispatched to BullMQ workers so HTTP requests never block on model latency, Stripe subscriptions and webhooks, S3 media with sharp-generated variants, Socket.io notifications fanned out through a Redis adapter, and a full audit trail. A separate admin console gives internal staff customer, campaign, billing, support-ticket and audit-log views over the same API.

Key Features

  • Guided campaign creation that asks plain-language business questions instead of ad-platform settings, with a median onboarding time of 8 minutes 40 seconds
  • AI creative pipeline generating ad copy and images through Google Gemini, run as background BullMQ jobs with retry, concurrency limits and preview/final render tiers
  • Meta Business Login and Graph API integration — OAuth connect, encrypted long-lived system tokens, campaign/ad-set/ad publishing to Facebook and Instagram
  • Performance estimate shown before any spend is committed, so users approve projected results rather than configuration
  • Stripe subscription billing across monthly, quarterly, semi-annual and yearly tiers with webhook-driven state, invoices and a customer billing portal
  • Live campaign dashboard with reach, click and spend trends, plus real-time notifications over Socket.io with a Redis adapter for multi-instance fan-out
  • Support ticketing with threaded messages, shared between the customer dashboard and an internal admin queue
  • Admin console covering customers, campaigns, billing, tickets and an append-only audit log
  • Full light and dark theming across marketing, onboarding, dashboard and admin, driven by CSS custom properties rather than per-component overrides
  • Global-audience constraints throughout: no country-specific idiom, layouts tolerant of ~30% text expansion, WCAG 2.1 AA targets and reduced-motion support

Project Details

Technologies

Next.jsReactTypeScriptTailwind CSSShadcn UIRedux ToolkitRTK Queryredux-persistReact Hook FormZodFramer MotionRechartsNestJSPrismaPostgreSQLRedisBullMQSocket.ioGoogle GeminiMeta Graph APIStripeAWS S3ResendDockerSentryPostHog

Project Screenshots