system architecture
TECHNICAL STACK
Frecuencia Global is a publishing automation system that transforms markdown content into validated, multi-platform posts via custom scripts, API integrations, and a local HTTP bridge server.
ARCHITECTURE OVERVIEW
┌─────────────────────────────────────────────────┐
│ Content Pipeline │
│ │
│ Markdown → Preflight → Dry-run → Publish │
│ (04_Produccion/) (validator) (per-platform) │
│ │
├───────────────┬───────────────┬───────────────────┤
│ Bridge API │ Publishing │ Asset Generation │
│ (Python HTTP)│ Scripts │ │
│ :3001 │ (Playwright) │ (Gemini AI) │
│ 5 endpoints │ (Graph API) │ (auto-watermark) │
│ API key auth │ (Bot API) │ │
├───────────────┴───────────────┴───────────────────┤
│ Infrastructure │
│ Astro 6 · Tailwind 4 · n8n Cloud · Docker │
│ Cloudflare Tunnel · ForwardEmail │
└─────────────────────────────────────────────────┘ CORE STACK
Astro v6.x
Static site generator
Tailwind CSS v4.x
Utility-first styling
Python v3.14
Automation scripts & bridge server
Node.js v22.x
Build tooling & RSS generation
Playwright v1.58
Browser automation for publishing
n8n Cloud
Workflow orchestration
Docker v29.x
Containerized services
PowerShell v5.1
Daily ops automation
PUBLISHING SCRIPTS
Each script handles the full lifecycle for one platform: content extraction from markdown, asset resolution, authentication, and either API calls or browser automation.
x_publish_post.py Publishes to X/Twitter via Playwright + persistent Chrome session
threads_publish_post.py Publishes to Threads via Graph API (text + image)
ig_publish_post.py Publishes to Instagram via browser automation
linkedin_publish_post.py Publishes to LinkedIn Company Page via Playwright
gemini_generate_image.py AI image generation via Gemini web + clipboard automation
fg_local_publish_mvp.py Dry-run validator for all platforms before publishing
activepieces_bridge.py HTTP bridge server with API key auth (5 endpoints)
fg_daily_check.ps1 PowerShell wrapper for daily batch validation
monitor_domain.py DNS monitoring with Telegram notifications
BRIDGE API SERVER
A local Python HTTP server that exposes the publishing pipeline as a REST API.
Authenticated via X-API-Key header on write endpoints.
| Method | Endpoint | Description |
|---|---|---|
| GET | / | Health check + version info |
| GET | /piezas | Auto-discover PublishReady content |
| GET | /history | List recent validation reports |
| POST | /run_mvp | Validate single content piece (auth required) |
| POST | /run_all | Batch validate all pieces (auth required) |
PLATFORM INTEGRATIONS
| Platform | Method | Status |
|---|---|---|
| Threads | Graph API | Operational |
| X / Twitter | Browser automation | Operational |
| Browser automation | Operational | |
| Browser automation | Operational | |
| Gemini | Web automation | Operational |
| Telegram | Bot API | Operational |
PROJECT STRUCTURE
frecuencia-global/
├── website/ # Astro 6 static site (this site)
│ ├── src/pages/ # Routes: index, stack, podcast, articles
│ ├── src/components/ # Reusable Astro components
│ └── src/content/ # Markdown content collections
├── scripts/ # Python + PowerShell automation
│ ├── *_publish_post.py # Per-platform publishing scripts
│ ├── activepieces_bridge.py # REST API bridge server
│ └── fg_daily_check.ps1 # Daily validation runner
├── 04_Produccion/ # PublishReady markdown files
├── 06_Assets/ # Generated images per piece
├── 07_Operaciones/ # Operational docs and reports
└── 08_n8n/ # Workflow definitions (JSON) CURRENT STATUS
09
automation scripts
06
platform integrations
05
API endpoints
open source
This project is built with open-source tools and free-tier services. The automation layer is designed to be reproducible and self-hosted.
github.com/59gray →