Skip to content
D · 03 · TECHNICAL WRITE-UP

Clout Cannon.

A LinkedIn content factory, in four rooms.

Ideas in, polished LinkedIn posts out. Each post moves through four rooms — Supply, Writer Camp, Art Department, World — with AI assistance at every stage and a central Brain that keeps brand voice + visual style consistent across them.

01 · THE FOUR ROOMS

One workflow, four explicit stages.

Posts can only be in one room at a time. Each room has its own affordances, its own AI tools, and its own visual theme. The factory metaphor is the architecture, not a decoration.

RoomJobWhat it does
📦 Supply RoomIngredient collection + bundlingDrop in URLs, text notes, images. Gemini bundles related ingredients automatically. Ingredients are reusable — one source clip can seed multiple posts. Visual indicators show used vs unused.
✍️ Writer CampAI writing + editingAuto-generates a post from the chosen ingredients using your Writing Vibe. Six editing tools (longer / shorter / more professional / more casual / fix typos / add humor). Twelve writing personas via the Archetype Intervention modal. Real-time AI feedback + quality scoring.
🎨 Art DepartmentVisual content generationSix visual archetypes (3 illustrations + 3 photography styles). Gemini image generation conditioned on brand guidelines stored in the AI Brain. Skip-to-World or attach generated images to the post.
🌍 WorldSchedule + publishSchedule posts for LinkedIn. Published-post management, engagement tracking, real-time analytics. Cloud Function carries the actual LinkedIn API integration.
02 · THE AI BRAIN

One configuration layer, six rooms' worth of effect.

The Brain panel is accessible from any room via Brain Settings. It holds two tabs today (a third on the roadmap):

  • Illustrator — brand guidelines builder (colours, visual style, composition, mood, typography), AI style inference (upload images / docs / URLs for Gemini to analyse), view/edit mode with edit protection, six visual archetypes.
  • Writer — writing style calibration, voice consistency training, tone preferences, example post analysis. Coming next.
  • Archetype Intervention — twelve writing personas surfaced as a modal from Writer Camp when a post needs a sharper voice.
03 · VISUAL ARCHETYPES

Six. Three illustrations, three photography styles.

The Art Department doesn't generate visuals on a blank slate — every output is conditioned on one of six archetypes. Naming the register up front makes the result actually usable. The three illustration styles map cleanly to a Corporate / Editorial / Anti-design axis; the three photo styles map to the same axis in a different medium.

ArchetypeBucketNote
🧑‍🎨 Corporate MemphisIllustrationThe cartoon style: flat vectors, bright colours, disproportionate limbs, minimal facial features. The dominant LinkedIn-illustration default.
💡 Conceptual EditorialIllustrationVisual metaphor / allegory for complex ideas. Textured, nuanced palettes. The NYT-op-ed register.
Surrealism / BrutalismIllustrationReality mixed with dreamlike elements. Raw shapes, anti-design, illogical compositions.
👥 Authentic & CandidPhotographyAnti-stock. Unscripted moments, real emotions, natural light in real work environments.
♟️ High-Concept MetaphoricalPhotographyObjects as symbols. Staged, clean, minimalist. Chess pieces = strategy, lightbulbs = ideas.
🌈 Creative AbstractPhotographyNon-representational. No recognisable subjects — form, colour, line, texture, motion.
04 · NOTABLE DESIGN CHOICES

The non-obvious decisions.

The factory metaphor is load-bearing
Each room is a distinct stage with distinct affordances. A post can't be 'almost in two rooms at once'. Room transitions are explicit, the Post model carries the room as state, and the navigation shows you which room you're in. The constraint is the feature.
Ingredients are reusable
The same source clip can seed multiple posts. The Supply Room tracks used vs unused. Bundle suggestions include reused ingredients so a long-running ingredient (a great quote, a chart) keeps earning.
The AI Brain is a configuration layer, not a model layer
Brand guidelines, voice calibration, archetype preferences all live in one Brain panel accessible from any room. The models call the Brain for their context; the Brain isn't called from inside any single room's logic. Re-tuning the brand once re-tunes every output.
Chaos Canvas is the design language
Neon cyberpunk register — electric blue / hot pink / neon green per room theme, glitch text, scanlines, neon-glow buttons. A deliberate contrast with the LinkedIn-default Corporate Memphis aesthetic the tool itself can produce. The tool looks loud so the output can look quiet.
GitHub-push deploys, not gcloud commands
Backend deploys are strictly via git push → Cloud Build → Cloud Run. No manual gcloud run deploy. This isn't a preference — it's the contract the deployment pipeline is built around, and bypassing it breaks it.
05 · STACK

What runs underneath.

LayerDetail
Backend API.NET 8 (Ecp.Api). Controllers per room — IngredientsController, PostsController, ArtDepartmentController, WorkflowController, BrandGuidelinesController.
Domain modelsEcp.Application. Ingredient, IngredientBundle, Post (with room tracking), AIArtist (visual archetype defs), BrandGuidelines.
FrontendReact 19 + TypeScript (ecp-frontend). One page per room (SupplyRoomPage, EditingRoomPage, ArtDepartmentPage, ThePublicPage). Material Symbols icons, Space Grotesk typography.
AI modelsGemini 3 Flash for text generation + bundle suggestions, Gemini 3.1 Flash Image for the Art Department.
DataFirestore — real-time updates so room transitions surface immediately across surfaces.
HostingCloud Run (europe-west1) for the .NET API. Firebase Hosting (rutger-social.web.app) for the React frontend. Cloud Function for the LinkedIn publish step.
CI/CDgit push origin main → Cloud Build → Cloud Run for backend. npm run build → firebase deploy for frontend.
WHY THIS EXISTS

The honest version: writing a good LinkedIn post takes real effort, and most tooling solves the wrong half of the problem — scheduling, analytics, performative cadence tracking. Clout Cannon tries to solve the part that actually matters: turning an interesting input into a piece of writing that's honest about its register, paired with a visual that's honest about its archetype. The structure is the same one Luminary taught me to trust: the four rooms are fixed machinery, and the Brain is just the configuration they read — so swapping the voice never means rewriting the pipeline.

Read the source on GitHub →