← Back

Polaris Digital Studio

A full-service digital agency with automated client intake, AI content pipelines, and campaign management — built and run by one person.

HTML/CSS/JSNode.jsGPT-4oRailwayVercelBuffer API

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.