Case Study
Polaris Digital Studio
A full-service digital agency with automated client intake, AI content pipelines, and campaign management — built and run by one person.
What It Is
Polaris Digital Studio is the operational infrastructure for a one-person digital agency. It handles client sites, automated content pipelines, and a full campaign management system — from intake to deployment.
The core product is the Blueprint engine: a client fills out a 15-field intake form, and within minutes receives a GPT-4o-generated business audit covering their ICP, positioning gaps, content strategy, and technical recommendations. That report routes to an admin dashboard with 9 KPIs and 10 filters, where Joseph manages follow-ups, campaign briefs, and approvals.
The Engineering
Blueprint Intake Pipeline
Three backend routes handle the full intake flow: form submission, GPT-4o report generation with structured JSON output, and a report display page with a per-client follow-up system. Every report is stored in PostgreSQL and retrievable from the admin panel.
Campaign Approval Workflow
Content moves through a 6-phase pipeline: intake, GPT-4o generation with 17-rule voice enforcement, approval queue with expand/collapse UI, creative brief generation, visual asset review (approve/reject/needs_edit), and social publishing. Each phase has its own database state and admin controls.
LinkedIn Automation Pipeline
A 100-post content vault (10 types × 10 posts per type) with a 60-day cooldown rotation, weighted randomization, and a three-layer fallback: AI generation, vault post, static deck. A Buffer API integration schedules posts to LinkedIn at verified peak times (Mon 8AM, Tue 12PM, Wed 8AM, Thu 12PM, Fri 9AM ET). An engagement bot runs on a PM2 process, firing daily at 2PM.
Client Site Infrastructure
Six client sites deployed across Vercel, Netlify, and Railway. Each uses a distinct design system, typography pairing, and color palette. No two sites share a layout pattern.
Hard Problems Solved
Cloudflare CDN caching blocking fixes
Every CSS fix verified in Playwright was invisible on real hardware. Root cause: Cloudflare was serving the old stylesheet. Fix: CSS version query strings on every deploy (?v=52, ?v=53, etc.), forcing a cache purge on each push.
Touch laptop loading mobile hero at desktop width
Joseph's touchscreen laptop triggered navigator.maxTouchPoints > 0 at full 1456px desktop width, loading the portrait mobile image into a landscape viewport. The hero appeared blank. Fix: replaced all JS touch detection with pure @media (max-width: 767px) CSS — no JavaScript for image switching.
Buffer's broken schedule UI bypassed entirely
Buffer's native schedule UI was setting posts to Monday 9:46PM and 10:01PM — wrong by 12+ hours. Fix: rewrote post-to-buffer.js to use customScheduled mode with explicit dueAt timestamps calculated from getNextPostingTime(). The Buffer UI is now irrelevant; timing is code-controlled.
Current State
Live at polarisdgtl.com. Blueprint engine active, LinkedIn pipeline running, engagement bot firing daily. Campaign pipeline deployed to Railway. Admin panel live with full audit trail.