A Newsroom Built on the First Amendment
WTPN.news exists to do something the mainstream media abandoned decades ago: publish without a political filter. The platform — "We The People News Network" — is a 1st-amendment-protected media venue where any verified citizen can sign up, file a story, upload a video, livestream from the field, and have that content indexed, categorized, and distributed without an editorial board deciding whether their viewpoint deserves a microphone.
The problem WTPN solves is structural. Independent journalists, community reporters, and citizen witnesses have never had a publishing platform that treats them like real journalists — with verified press credentials, SEO infrastructure, livestream tooling, and a real CMS — without forcing them through the bias filters of a corporate newsroom or the algorithmic suppression of a social platform. WTPN gives them that home. The platform takes no editorial bias, runs on transparent rules, and treats the audience and the contributor as equal stakeholders in the news.
The Story Aggregation + Curator Pipeline
A news platform is only as alive as its feed, so ABSG built WTPN a fully automated story production pipeline that runs around the clock without burning out a human editor.
At the heart of it is the WTPN Curator — a Node.js scheduler living in its own Docker container — paired with an n8n workflow stack at n8n.wtpn.news. Every hour, the aggregator pulls RSS feeds from major wires (AP, BBC, NPR, Guardian, CBS, plus any source operators add through the dashboard), deduplicates by keyword clustering, and pipes the candidate stories into Anthropic's Claude API for synthesis. Claude rewrites each story from the source material into WTPN's voice, attaches SEO-friendly slugs, drafts Open Graph and Twitter Card metadata, and writes a publishable summary.
Every synthesized story lands in a pipeline_stories table as a draft. A human curator then opens the dashboard, reviews the AI's work, picks or replaces the featured image, edits the SEO and OG fields, and either saves as draft or publishes live to the main WTPN database. Nothing reaches the public feed without that human review — Claude proposes, the curator disposes.
An Image Enricher runs every two hours alongside the aggregator. It uses Puppeteer and Open Graph scraping to fetch missing story images, downloads them to /uploads/images/, and attaches them to the pipeline record so the curator never has to publish a story with a placeholder thumbnail.
The pipeline also generates 9:16 vertical short-form video for social distribution. Click "Generate Video" on any approved story and the server builds a voiceover script via Claude, synthesizes speech through ElevenLabs TTS, assembles a slideshow with FFmpeg, lays a background music bed under it, burns word-level captions from the ElevenLabs alignment data, and outputs a 1080×1920 MP4 ready for TikTok, Reels, or YouTube Shorts. Nine music tracks ship in the dropdown — Newsbeat, B-Roll, Flash Intro, 80s Beat, and more.
Press Passes for Independent Journalists
The platform's most distinctive feature is its digital press pass system. Any user who earns reporter status on WTPN can apply for an official WTPN press credential — issued, displayed, and verified entirely inside the platform.
The application flow is a guided four-step wizard: welcome, photo capture (with front-facing camera default and an in-browser portrait crop at 3:4 aspect ratio), reporter details, and review. Once submitted, the pass enters an admin approval queue at /admin/press-passes. Approved passes display in a fullscreen, animated live view that proves to anyone at a scene that they're looking at a real-time credential, not a screenshot — a subtle animated header pulses to defeat impersonation.
Every pass carries a QR code that resolves to /verify/:token. A police officer, event security guard, or fellow reporter can scan it from a phone and see the journalist's name, photo, beat, and reporter status verified live against the WTPN database. Every scan is logged in press_pass_scans for audit. Apple Wallet and Google Wallet integration is stubbed and ready to flip on once the relevant credentials are provisioned.
This isn't a sticker. It's a credentialing system that gives an independent journalist the same verifiable identity legacy media has had for a century.
Tech Stack
WTPN runs on a modern, fully type-safe, fully containerized stack:
- Frontend: React 18 + TypeScript, Wouter for routing, Tailwind CSS with Shadcn/UI, TanStack Query, Framer Motion, TipTap for the rich-text story editor with table, image, link, YouTube embed, font, and color extensions.
- Backend: Node.js 20 + Express.js + TypeScript, Drizzle ORM with
drizzle-zodschema validation, JWT auth, bcrypt password hashing, Multer file uploads, WebSockets for live updates, server-side rendering of meta tags for OG/Twitter/JSON-LD. - Database: PostgreSQL 15 with Drizzle migrations —
stories,users,beats,homepage_stories,press_passes,press_pass_scans,pipeline_stories,pipeline_runs,pipeline_sources,pipeline_images,pipeline_configs. - Auth: Local password + Google OAuth (GIS) + Facebook OAuth (Graph API v21), unified social-auth handler that auto-links to existing accounts or creates new ones.
- Aggregation: n8n at
n8n.wtpn.newsplus a Node.js scheduler in thewtpn_curatorcontainer. Both feed the same Postgres. - AI: Anthropic Claude (primary), OpenAI and Google Gemini (backup providers), ElevenLabs (TTS).
- Infra: Docker Compose across
wtpn_networkandn8n_net; the curator dashboard sits on both so it can talk to the main DB and the n8n orchestrator. Production exposed on port 88 behind ABSG's reverse proxy. - Observability: Google Analytics + StatCounter, plus NTFY for real-time admin push notifications.
What ABSG Tech Built & What We Manage
- Architected and built the full-stack platform — React + TypeScript newsroom, Express + Drizzle API, PostgreSQL schema, JWT auth, social login, role-based access, rich-text publishing, and live-streaming integration.
- Designed and operate the AI-assisted story aggregation pipeline — hourly RSS sweeps, Claude-driven synthesis, image enrichment, and a human-curator dashboard that gates every story before it hits the public feed.
- Engineered the digital press pass system end to end — guided creation flow, in-browser camera capture, admin approval queue, fullscreen anti-screenshot live display, QR verification, and scan audit trail.
- Host, scale, and monitor the multi-container Docker stack (app, Postgres, curator, n8n) on ABSG infrastructure — SSL termination, backups, persistent uploads volume, and zero-downtime deploys.
- Wired the SEO and discovery layer — server-rendered Open Graph and Twitter meta, JSON-LD NewsArticle and BreadcrumbList, canonical URLs, robots.txt, sitemap generation, RSS feeds, and visitor-aware feed ordering.
- Built the short-form video factory — Claude-scripted voiceovers, ElevenLabs TTS, FFmpeg slideshow assembly, burned captions, music mixing, and 1080×1920 vertical output for social distribution.
What Makes It Different
Most news platforms either filter their contributors aggressively (legacy media) or filter their audience aggressively (algorithmic social platforms). WTPN does neither. It's role-based and credentialed — users, reporters, and admins each have clear capabilities — but the credential is earned through transparent action, not granted by an editorial board.
Where Substack hands a writer a newsletter, WTPN hands a journalist a verified press pass and a live-streaming endpoint. Where X gives a citizen a 280-character post, WTPN gives them a full HTML rich-text editor, embedded YouTube, polls, reactions, and an SEO-optimized story page that Google can index as a NewsArticle. Where local TV stations hide behind a paywall, WTPN's reader experience is free and open. And where most independent outlets struggle to keep their homepage fresh, WTPN's AI-assisted curator pipeline ensures a steady, human-reviewed feed runs 24 hours a day.
Who It's For
- Independent journalists and citizen reporters who want a credentialed, verifiable home for their work.
- Local community correspondents covering city hall, school boards, county sheriffs, and the stories the regional paper stopped covering.
- Live streamers and field videographers broadcasting protests, public meetings, breaking events, and on-the-ground footage.
- News readers looking for an unfiltered, unbiased aggregation of stories spanning the political spectrum.
- Press-pass holders needing a verifiable digital credential they can present at scenes, events, and press conferences.
Where It's Heading
The codebase shows the roadmap clearly. Apple Wallet and Google Wallet integration is stubbed and waiting on credentials — once activated, press passes become real pocket credentials. The Gemini API key is already wired as an alternative AI provider for redundancy. The Pipeline Registry in Settings is built to register additional pipelines beyond RSS + Image Enricher — meaning new content sources (YouTube, podcasts, social media monitoring) can be added without code changes. The video generation engine opens a path into automated short-form social syndication. And the beat system sets up beat-specific subscriptions, push notifications via NTFY, and per-beat RSS feeds that already exist server-side.
WTPN is positioned to grow from a news platform into a full independent journalism operating system — credentialing, publishing, livestreaming, video production, and distribution under one roof.
At a Glance
- First-Amendment-protected media platform — no editorial bias
- Verified digital press pass system with QR-code validation
- Hourly AI-assisted story pipeline: RSS → Claude → curator → publish
- Automated 9:16 vertical video generation
- Multi-platform live streaming (YouTube, Facebook, Twitch, RTMP)
- Full SEO stack: OG, Twitter, JSON-LD NewsArticle, RSS, sitemap
- Triple authentication: local + Google + Facebook OAuth
- Role-based access: admin / reporter / user
- TipTap rich-text editor with polls, reactions, embeds
- Visitor-aware homepage prioritizes unseen stories for returning readers
- React + TypeScript + Express + PostgreSQL 15 + Drizzle ORM + Docker
- Production: Anthropic Claude + OpenAI + Gemini + ElevenLabs