Skip to content

Latest commit

Β 

History

57 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Fauxios Logo

Fauxios

The Autonomous Serverless Media & Social Publishing Engine
Powered by AWS Serverless Infrastructure, Generative AI, RAG Vector Search, and Programmatic Video Rendering

SST v3 AWS Serverless Astro v5 TypeScript Node.js
Google Gemini Pinecone Vector DB RunwayML AWS Polly Remotion


🌟 Overview

Fauxios is an enterprise-grade, fully automated news and social media generation platform. Utilizing modern serverless cloud architecture managed by SST and an ultra-fast Astro frontend, Fauxios continuously discovers topical trends, synthesizes rich journalism using Google Gemini AI enriched with Pinecone Vector RAG (Retrieval-Augmented Generation), generates custom artwork, renders dynamic multi-act video broadcasts via Remotion, and publishes directly to social networksβ€”all without human intervention.


✨ Key Features

  • πŸ€– Autonomous Article Production: Leverages vector similarity search (Pinecone) and live news data feeds (Newsdata.io / Apify) to draft contextual, highly detailed articles with automated cover image generation.
  • 🎬 Programmatic 3-Act Video Newscasts: Orchestrates parallel asset generation combining newscaster voiceovers synthesized by AWS Polly, animated political cartoons rendered via RunwayML, and talking AI avatars composited in real-time by Remotion Lambda.
  • πŸ“± Viral Social Reels Pipelines: Three specialized, autonomous orchestration engines (Truth vs Verse, Truth Reels, and Revolution Reels) producing custom graphics, comparative commentary, and vertical video reels posted directly to Facebook and X (Twitter).
  • ⚑ Cloud-Native Serverless & Edge Optimized: Built on SST v3 (Ion) with AWS Step Functions orchestration, DynamoDB Global Secondary Indexes (GSIs), public Amazon S3 distribution buckets, and an SSR/SSG hybrid Astro frontend.

πŸ—οΈ System Architecture

Fauxios is designed for zero-idle cost, high scalability, and seamless separation of concerns across web delivery, data persistence, and AI orchestration.

graph TD
    subgraph Client ["🌐 Client Tier"]
        Users["Web Readers & Visitors"]
        Social["Social Platforms (X / Facebook)"]
    end

    subgraph Frontend ["πŸ–₯️ Web & API Layer (AWS / SST)"]
        Astro["Astro 5 Web App (fauxios.com)"]
        APIGW["AWS API Gateway V2"]
    end

    subgraph Orchestration ["βš™οΈ AWS Step Functions (Orchestration Engine)"]
        FauxiosSFN["FauxiosOrchestrator<br/>(Daily News Articles)"]
        VideoSFN["VideoOrchestrator<br/>(3-Act Video Newscasts)"]
        TruthSFN["TruthVersesOrchestrator<br/>(3-Day Graphic Posts)"]
        TruthReelSFN["TruthReelOrchestrator<br/>(Reels: Mon/Wed/Fri)"]
        RevReelSFN["RevolutionReelOrchestrator<br/>(Reels: Tue/Thu/Sat)"]
    end

    subgraph Storage ["πŸ’Ύ Data & Storage Layer"]
        Dynamo["Amazon DynamoDB<br/>(Articles & Authors Tables)"]
        S3["Amazon S3 Buckets<br/>(Images, Processed & Video Assets)"]
        Pinecone["Pinecone Vector DB<br/>(RAG Knowledge Base)"]
    end

    subgraph AI ["🧠 AI & Media Services"]
        Gemini["Google Gemini AI<br/>(Text & Image Prompts)"]
        Runway["RunwayML Gen-1 / Gen-2<br/>(Cartoon & Avatar Video)"]
        Polly["Amazon Polly<br/>(Speech Synthesis)"]
        Remotion["Remotion Lambda<br/>(Video Compositing)"]
        Apify["Apify / Newsdata APIs<br/>(Live Ingestion)"]
    end

    Users -->|HTTP GET| Astro
    Astro -->|Fetch Content| APIGW
    APIGW -->|Query GSIs| Dynamo

    FauxiosSFN -->|RAG Search| Pinecone
    FauxiosSFN -->|Draft Article / Image| Gemini
    FauxiosSFN -->|Persist Post| Dynamo
    FauxiosSFN -->|Store Cover| S3
    FauxiosSFN -->|Publish| Social

    VideoSFN -->|Synthesize Speech| Polly
    VideoSFN -->|Animate Video Assets| Runway
    VideoSFN -->|Render Composition| Remotion
    VideoSFN -->|Store Video| S3

    TruthSFN -->|Ingest Trends| Apify
    TruthSFN -->|Generate Content| Gemini
    TruthSFN -->|Publish Post| Social

    TruthReelSFN -->|RAG & AI Draft| Gemini
    TruthReelSFN -->|Render Vertical Video| Remotion
    TruthReelSFN -->|Publish Reel| Social

    RevReelSFN -->|RAG & AI Draft| Gemini
    RevReelSFN -->|Render Vertical Video| Remotion
    RevReelSFN -->|Publish Reel| Social
Loading

πŸ”„ Orchestration Workflows

Fauxios utilizes modular AWS Step Functions state machines to govern complex, multi-step asynchronous AI pipelines.

1. Daily Article Generation Pipeline (FauxiosOrchestrator)

Triggered automatically via AWS EventBridge Cron on a daily schedule, this state machine manages the end-to-end editorial lifecycle.

sequenceDiagram
    autonumber
    actor Cron as AWS EventBridge Cron (Daily)
    participant SFN as FauxiosOrchestrator
    participant L1 as GenerateArticleContent
    participant L2 as GenerateArticleImage
    participant L3 as AssemblePost
    participant L4 as PostToSocials
    participant DB as DynamoDB & S3
    participant Ext as Social Media (X / FB)

    Cron->>SFN: Trigger Daily Execution
    SFN->>L1: Invoke Content Generator
    L1->>L1: Query Pinecone (RAG) & Newsdata feeds
    L1->>L1: Draft comprehensive journalism via Google Gemini AI
    L1-->>SFN: Return Article Draft Payload
    SFN->>L2: Invoke Image Generator
    L2->>L2: Generate AI prompt & synthesize cover image
    L2->>DB: Process with Sharp & store in S3
    L2-->>SFN: Return S3 Image URLs
    SFN->>L3: Invoke Post Assembler (Article + Image)
    L3->>DB: PutItem into DynamoDB Articles Table
    L3-->>SFN: Return Assembled Post Payload
    SFN->>L4: Invoke Social Poster
    L4->>Ext: Publish to Twitter (X) & Facebook Page
    L4-->>SFN: Execution Complete
Loading

2. Three-Act Video Newscast Pipeline (VideoOrchestrator)

Generates rich broadcast videos by executing voiceover and avatar animations in parallel before passing them to an AWS Remotion Lambda cluster for high-definition rendering.

stateDiagram-v2
    [*] --> Input: Receive Headline, Cartoon Image, Quote & Author
    state Input {
        [*] --> PrepareData
    }
    
    state GenerateAssetsInParallel {
        state "Branch A: Voiceover Speech" as B1
        state "Branch B: Talking Avatar Video" as B2
        
        [*] --> B1
        [*] --> B2
        
        B1 --> Polly: GenerateVoiceover Lambda (AWS Polly)
        Polly --> S3_Voice: Save voiceover.mp3 to S3
        
        B2 --> Runway: GenerateAvatar Lambda (RunwayML Gen-1)
        Runway --> S3_Avatar: Save avatar.mp4 to S3
    }
    
    Input --> GenerateAssetsInParallel
    GenerateAssetsInParallel --> RenderFinalVideo: Aggregate S3 Asset URLs
    
    state RenderFinalVideo {
        [*] --> RemotionClient: Invoke renderVideo Lambda
        RemotionClient --> RemotionLambda: Trigger AWS Remotion Renderer
        RemotionLambda --> Composite: Composite Voiceover + Cartoon + Avatar
        Composite --> S3_Video: Output final_video.mp4 to S3
    }
    
    RenderFinalVideo --> [*]: Return Video Asset URL
Loading

3. Viral Reels & Social Media Pipelines

To maintain continuous engagement across social platforms, Fauxios operates three specialized, scheduled social pipelines:

graph LR
    subgraph TruthVerses ["πŸ“– Truth vs Verse (Every 3 Days)"]
        TV_Trigger["Cron Schedule"] --> TV_Gen["GenerateTruthVsVerse<br/>(Apify + Gemini AI)"]
        TV_Gen --> TV_Render["Satori + Resvg + Sharp<br/>(Custom Graphic Generation)"]
        TV_Render --> TV_Post["PostTruthToFacebook<br/>(Page Feed Publishing)"]
    end

    subgraph TruthReel ["πŸ™ Truth Reel (Mon / Wed / Fri - 16:00 UTC)"]
        TR_Trigger["Cron Schedule"] --> TR_Data["GenerateTruthVsVerseData<br/>(Gemini AI)"]
        TR_Data --> TR_Img["GenerateBiblicalTruthImage<br/>(Gemini AI)"]
        TR_Img --> TR_Render["RenderTruthReel<br/>(Remotion Vertical Video)"]
        TR_Render --> TR_Post["PostTruthReelToFacebook<br/>(Facebook Reels)"]
    end

    subgraph RevReel ["πŸ—½ Revolution Reel (Tue / Thu / Sat - 16:00 UTC)"]
        RR_Trigger["Cron Schedule"] --> RR_Data["GenerateTruthVsFoundingData<br/>(Pinecone RAG + Gemini AI)"]
        RR_Data --> RR_Img["GenerateMillerRevolutionImage<br/>(Gemini AI)"]
        RR_Img --> RR_Render["RenderRevolutionReel<br/>(Remotion Vertical Video)"]
        RR_Render --> RR_Post["PostRevolutionReelToFacebook<br/>(Facebook Reels)"]
    end
Loading

πŸ—‚οΈ Project Structure

fauxios-project/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ functions/                 # AWS Lambda Serverless Handlers
β”‚   β”‚   β”œβ”€β”€ articles.ts            # API Gateway handler for article retrieval
β”‚   β”‚   β”œβ”€β”€ assemblePost.ts        # Article & image DynamoDB assembler
β”‚   β”‚   β”œβ”€β”€ generateArticle*.ts    # Gemini AI text & image generators
β”‚   β”‚   β”œβ”€β”€ generateAvatar.ts      # RunwayML avatar video generator
β”‚   β”‚   β”œβ”€β”€ generateVoiceover.ts   # AWS Polly speech synthesis
β”‚   β”‚   β”œβ”€β”€ renderVideo.ts         # Remotion Lambda video render trigger
β”‚   β”‚   β”œβ”€β”€ postToSocials.ts       # Twitter (X) & Facebook publishing
β”‚   β”‚   └── *ReelTrigger.ts        # Scheduled EventBridge cron triggers
β”‚   β”œβ”€β”€ pages/                     # Astro 5 SSR/SSG Web Pages & Routing
β”‚   β”œβ”€β”€ components/                # UI Components & Layouts
β”‚   └── styles/                    # Tailwind CSS Design System
β”œβ”€β”€ packages/
β”‚   β”œβ”€β”€ scripts/                   # CLI maintenance, diagnostics & seeding scripts
β”‚   └── video-renderer/            # Remotion React video composition templates
β”œβ”€β”€ public/
β”‚   β”œβ”€β”€ images/                    # Static brand logos, SVGs & placeholders
β”‚   └── favicon.svg                # Site iconography
β”œβ”€β”€ sst.config.ts                  # Infrastructure-as-Code (IaC) configuration
β”œβ”€β”€ package.json                   # Project dependencies and script definitions
└── VIDEO_GENERATION_ARCHITECTURE.md # Detailed Remotion & video documentation

πŸ› οΈ Technology Stack

Category Technologies & Tools
Frontend Framework Astro v5 (Hybrid SSR / SSG), Tailwind CSS
Infrastructure & IaC SST v3 (Ion), AWS Serverless Platform
Compute & Orchestration AWS Step Functions, AWS Lambda, EventBridge Cron
Database & Storage Amazon DynamoDB (with 3 GSIs), Amazon S3
Vector RAG & Search Pinecone Vector Database
Artificial Intelligence Google Gemini AI (Content & Image Prompts), RunwayML Gen-1/Gen-2, Amazon Polly
Video & Graphic Rendering Remotion (Lambda Cluster), Satori, Sharp, Resvg
Social Media & Ingestion Twitter API v2, Facebook Graph API, Apify, Newsdata.io

πŸš€ Getting Started

1. Prerequisites

  • Node.js: v18.0.0 or later
  • AWS Credentials: Configured locally with administrator access for SST resource provisioning (~/.aws/credentials).
  • SST CLI: Installed globally (npm install -g sst).

2. Installation

Clone the repository and install the Node.js dependencies:

git clone <repository-url>
cd fauxios-project
npm install

3. Secret Management

Fauxios uses SST's encrypted secret store (sst.Secret) to manage API keys and OAuth tokens securely across environments. Configure the required secrets before your initial deployment:

# Twitter / X Credentials
npx sst secret set TwitterApiKey "your_twitter_api_key" --stage dev
npx sst secret set TwitterApiSecret "your_twitter_api_secret" --stage dev
npx sst secret set TwitterAccessToken "your_twitter_access_token" --stage dev
npx sst secret set TwitterAccessTokenSecret "your_twitter_token_secret" --stage dev

# Facebook Page Credentials
npx sst secret set FacebookUserId "your_fb_user_id" --stage dev
npx sst secret set FacebookUserAccessToken "your_fb_user_token" --stage dev
npx sst secret set FacebookPageId "your_fb_page_id" --stage dev
npx sst secret set FacebookPageAccessToken "your_fb_page_token" --stage dev

# AI & Data Ingestion Keys
npx sst secret set GeminiApiKey "your_gemini_api_key" --stage dev
npx sst secret set PineconeApiKey "your_pinecone_api_key" --stage dev
npx sst secret set NewsdataApiKey "your_newsdata_api_key" --stage dev
npx sst secret set ApifyApiKey "your_apify_api_key" --stage dev
npx sst secret set RunwayApiKey "your_runwayml_api_key" --stage dev

πŸ’» Development & Deployment

Local Development Server

Start the local Astro frontend and bind live AWS Lambda development sessions:

npx sst dev

This launches your local development server at http://localhost:4321 with real-time cloud reloading.

Production Deployment

Deploy the full serverless stack (Astro site, API Gateway V2, Step Functions, DynamoDB, S3, and Cron triggers) to your AWS account:

npm run deploy:prod
# Or manually via SST:
npx sst deploy --stage dev

Tip

macOS Homebrew Troubleshooting: If you encounter a flag provided but not defined: -root error during deployment on macOS, SST's internal Pulumi engine may be conflicting with a global Homebrew Pulumi installation. Run brew unlink pulumi before deploying, and brew link pulumi afterward when needed.


⚑ CLI & Diagnostic Scripts

Fauxios includes an extensive suite of maintenance, seeding, and manual workflow triggering scripts located in packages/scripts/. Execute these within the SST shell environment to inherit the necessary AWS IAM permissions and environment variables:

# General execution syntax:
npx sst shell --stage dev -- npm run <script-name>
Script Name Command Description
invoke-generator npm run invoke-generator Manually triggers the daily FauxiosOrchestrator article generation pipeline.
invoke-truth-verses npm run invoke-truth-verses Manually triggers the TruthVersesOrchestrator graphic & social post workflow.
invoke-truth-reel npm run invoke-truth-reel Manually triggers the TruthReelOrchestrator Remotion video reel workflow.
invoke-revolution-reel npm run invoke-revolution-reel Manually triggers the RevolutionReelOrchestrator historical comparison reel workflow.
reindex-articles npm run reindex-articles Re-indexes all existing DynamoDB articles across createdAt, postedToSocial, and topic GSIs.
scan-topics npm run scan-topics Diagnostic tool to inspect topic distribution across database items.
clear-articles-by-date npm run clear-articles-by-date Prunes legacy or test articles from DynamoDB based on timestamp ranges.
normalize-sources npm run normalize-sources Clean and format raw text source documents for ingestion.
setup-index npm run setup-index Initializes and configures the primary Pinecone vector database index.
seed-pinecone npm run seed-pinecone Embeds and seeds vector embeddings from source documents into Pinecone RAG.
seed-authors npm run seed-authors Seeds the DynamoDB authors table with baseline AI editorial personas.

πŸ“‘ API Reference

The backend exposes a public AWS API Gateway V2 REST API for querying published articles and topic metadata:

HTTP Method Endpoint Description
GET /articles Retrieve a paginated list of all published news articles.
GET /articles/{articleId} Fetch full content and metadata for a specific article by its UUID.
GET /topics List all available article topics and category classifications.
GET /articles/topic/{topic} Query articles filtered by a specific topic index using DynamoDB GSIs.

πŸ“„ License & Documentation

  • Video Architecture: For a deep dive into Remotion Lambda infrastructure and video compositing, see VIDEO_GENERATION_ARCHITECTURE.md.
  • Facebook Integration: For guidelines on configuring long-lived Facebook Graph API tokens, see facebook_posting_notes.md.
  • License: This project is licensed under the MIT License.

Built with ❀️ using SST, Astro, and Google Gemini.

About

Automated AI generated satirical news site and publishing platform

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages