Overview
This AI-driven community engagement automation engine lets a marketing team participate in online communities, primarily Reddit, at agency scale - generating genuinely contextual contributions with AI, scheduling them with natural, human-like timing, and enforcing per-community rules before anything is published. It replaces hours of manual, repetitive community management with an orchestrated, observable system, while keeping a human firmly in control through a real-time operations dashboard and a live in-browser session viewer.
The engineering centerpiece is reliable browser automation at scale paired with AI content generation. Each engagement is composed by Google Gemini against the surrounding conversation, with deliberate variation in style and intent, then carried out through a managed Playwright browser session with realistic, human-like pacing. The entire system is observable: operators can watch any automated session live, in the browser, via an embedded noVNC stream. The platform was built solo on a modern Bun, React 19, and Prisma stack.
Key Achievements
- Built a full-stack automation platform on Bun - a custom Bun.serve() backend with a React 19 + React Router 7 dashboard (Ant Design and Tailwind CSS)
- Integrated Google Gemini for contextual content generation, producing community-appropriate contributions with randomized style to keep output natural and varied
- Engineered a managed browser-automation layer with Playwright, using persistent per-account sessions and human-like interaction pacing (timing variance, jitter, realistic navigation)
- Built a campaign system targeting specific communities, with parsing and enforcement of each community’s rules before any contribution is queued
- Created a live in-browser session viewer using Xvfb, x11vnc, and noVNC, so operators can watch automated sessions in real time directly in the dashboard
- Modeled the domain in Prisma over MySQL (Cloud SQL), covering profiles, accounts, campaigns, sessions, and job history, and implemented TOTP/2FA handling with one-time codes relayed through Slack
Technical Implementation
The platform is built on Bun end to end - a single runtime serving both the API via custom routing and the React 19 dashboard. State lives in MySQL on Cloud SQL, modeled through Prisma, covering accounts, profiles, campaigns, sessions, and a complete job history that powers the analytics views.
The AI layer handles content generation: every contribution is composed by Google Gemini against the actual surrounding conversation, with explicit style randomization - personal anecdotes, follow-up questions, practical suggestions - so output reads like a real person rather than a template.
Execution runs through Playwright with persistent per-account browser sessions and human-like pacing - timing variance and jitter rather than machine-gun actions. A concurrency-limited job queue schedules work so activity is naturally spaced rather than bursty. Critically, the whole thing is observable: an Xvfb, x11vnc, and noVNC pipeline streams the live browser into the dashboard, with separate virtual displays for one-time manual setup (logins, 2FA) and ongoing batch automation, so a human can watch and intervene at any time. TOTP/2FA is handled with one-time codes relayed via Slack when an account session needs establishing.
Around the engine sits a campaign and compliance system. Each target community’s rules are parsed and checked before a contribution is queued, keeping participation within each community’s stated norms. The React dashboard ties it together with real-time status, success rates, queue depth, and per-campaign metrics, and the service integrates with Moburst.ai SSO via the platform Auth SDK.
Impact & Results
- Scaled hands-on community engagement from a manual, one-at-a-time task to an orchestrated, observable pipeline
- Produced natural, varied contributions through Gemini generation with deliberate style randomization, not canned templates
- Kept humans in control with a live in-browser session viewer and full observe/intervene capability
- Enforced community rules automatically, reducing the risk of non-compliant participation
- Delivered real-time operational visibility - success rates, queues, and campaign metrics at a glance
Share