All cases

FluxrBot2026fluxrbot.com

Product, website, desktop app, neuro-blog, video factory and social — one system on one server

The gist in 10 seconds

The idea “a bot trades the news” became a whole system: engine, a 500-page site, a Windows app, a neuro-blog and video factory with no people, social media via cloud phones, own mail. All on one server, all honestly measured.

504
HTML pages on the site
76
engine modules
43
PostgreSQL tables
98
neuro-blog articles
246
videos generated
26
automation timers
14
free SEO tools
6
app releases
FluxrBot

Task

The client came with an idea: “a bot that trades the news”. The job was not just to write an engine but to turn the idea into a product with a site, an app, paid keys, content and promotion — and to honestly measure what it can do.

Result

A working product with 6 app releases, 98 articles, 246 videos and 26 automated processes. After measurement the product was honestly repositioned to pre-trade checks and a watchlist — every number on the site comes only from the “engine truth”.

What was done

  • Node 22 engine: 52 sources (RSS, government feeds, Reuters/AP via Bluesky Jetstream), deduplication, event-to-contract matching, LLM probability estimates, 5 paper strategies, exact exchange fees
  • PostgreSQL: 43 tables, 823k price snapshots, a journal of 450k decisions with reason codes
  • Astro 5 website: 41 routes → 504 pages, 14 calculators, glossary, docs, comparisons, changelog, RSS, llms.txt for AI crawlers
  • SEO/GEO: 23 schema.org types, OpenGraph, sitemap with honest lastmod, IndexNow, Google Search Console, robots allowing GPTBot and ClaudeBot
  • Neuro-blog: topic discovery in 52 sources → an editorial board of 5 AI roles → 600–900 word article with FAQ and internal links → 2–3 illustrations → publish and rebuild every hour
  • Video factory: three pipelines (Higgsfield + edge-tts + ffmpeg; OpenRouter; Seedance 2.5 + post-production with whisper subtitles), “1 video = 1 platform” rule
  • Social: two account grids on TikTok/Instagram/YouTube via GeeLark cloud phones (521 tasks), X with scheduled posting, Reddit/X engagement, YouTube Data API
  • Admin multitool: 13 sections and 49 actions — licences, topics, articles, video, social, X, chat, mailings, trading, builds
  • Windows app on Tauri 2 + Rust: 12 screens, 4 languages, .msi/.exe via GitHub Actions, OTA updates signed with minisign, release e-mails
  • Licensing: self-verifying keys, trial, device limit, activation at app.fluxrbot.info, Telegram bot with /check and /watch
  • Mail: own postfix + dovecot + Roundcube on the domain, transactional e-mail via Resend (6 types: key, chat, release, digest, warm-up)
  • Infrastructure: 3 services and 26 systemd timers, nginx, Let's Encrypt, GoAccess analytics, daily backup and audit, Telegram watchdogs, a public GitHub synced with the engine truth

Screens

Explore the details — the full picture

Where we started

The client came with an idea and a market: Polymarket and Kalshi, exchanges where event outcomes are traded. The hypothesis: news comes out before the price moves, so a bot that reads Reuters faster than a human gets there first. Our job was to test the hypothesis, not believe it.

We started with data, not the website: 52 sources (RSS, government feeds, regulators, Reuters and AP streaming accounts via Bluesky Jetstream), teaching the system to merge one story out of a dozen reprints and link it to specific contracts on both venues — about 1,300 at any moment. The language model answers one question: does the news affect the outcome and in which direction.

The engine

76 modules on Node 22 without frameworks. Separate runners for collection, matching, probability estimates, the model's “second opinion”, an ensemble, calibration over 73 measurements, post-mortems of losing trades, position review on contradicting news. Five strategies run on $100 paper accounts through the real order book with exact fee formulas of both exchanges.

Every decision — trade or refusal — is journaled with a reason code in four languages. 449 thousand refusals for 79 trades: that is the main value — you can see why the bot stayed out. PostgreSQL with 43 tables holds 823k price snapshots and 192k events.

“Engine truth” is a separate module that recomputes measured metrics every 6 hours and publishes them as JSON. The site, the GitHub README and the badges take numbers only from there. The file lists what may and may not be claimed: any number in text that is not in the truth file counts as fiction.

Website and SEO/GEO

Astro 5, static files from nginx, CSS inlined for first paint on mobile. 41 routes expand to 504 pages: home, 8-section docs, strategies with live numbers, a 30-term glossary, changelog, three comparisons, live market tables by category and 14 free calculators — each catching its own search query (Kelly, odds converter, arbitrage, chain probability).

Markup for search engines and AI: 23 schema.org types (Article, FAQPage, SoftwareApplication, DefinedTermSet, BreadcrumbList and more), OpenGraph and Twitter Card, a sitemap with honest lastmod (pages do not claim “I changed” on every build so the crawler keeps trusting), thin tag pages kept out of the index, IndexNow, Google Search Console, robots explicitly allowing GPTBot, ClaudeBot, PerplexityBot, llms.txt and llms-full.txt generated from live content.

A neuro-blog with no human

A classifier scans sources and files article ideas — 2,970 accumulated. An autopilot editorial board of five AI roles grades each: the deduplicator dropped 1,954 look-alikes, 716 expired. Survivors enter a queue with a single slot for heavy generation so the model budget is not burned.

An article is 600–900 words with a hook, a three-point TL;DR, FAQ, links to tools and other posts. 2–3 illustrations are generated, a cover is set, everything lands in Astro markdown, the site rebuilds hourly and pings search engines. Two months in: 98 published articles, 355 illustrations, 33 articles with embedded video.

Video factory and social

Three pipelines: Higgsfield API + edge-tts voice + ffmpeg assembly; OpenRouter with price presets; Seedance 2.5 with a hand-written prompt and post-production — CapCut-style whisper subtitles, overlays, loudness normalisation, branded intro and fade to black. 246 videos, 3.5 GB. The “1 video = 1 platform” rule: algorithms choke cross-posted videos, so each article is assigned its own platform — TikTok, YouTube Shorts or X.

Publishing goes through GeeLark cloud phones: two account grids of five platforms, 521 tasks, live warm-up, per-upload uniquification. X runs separately: 166 drafts, scheduled posting in activity windows, engagement in Reddit and X threads across 1,286 targets. YouTube Data API fills descriptions and metadata.

App, licensing, mail, admin

A Windows app on Tauri 2 and Rust: 12 screens, 4 installer languages, .msi/.exe builds in GitHub Actions, OTA updates signed with minisign, “new version” e-mails. Licensing — self-verifying keys, trial, device limit, activation on a separate domain, a Telegram bot with contract-check and watchlist commands.

Own mail on the domain (postfix, dovecot, Roundcube) plus transactional e-mail via Resend: key, chat reply, release, digest, three trial warm-up letters. The admin multitool: 13 sections and 49 actions — from licences and blog topics to video, social, chat and app builds.

Infrastructure

One VPS: 3 permanent services and 26 systemd timers from one minute to weekly, nginx for two domains, Let's Encrypt, GoAccess analytics with a lead funnel, daily database backup and site audit, watchdogs for silent failures (model silent, feeds empty, market snapshot stale) with Telegram alerts. The public GitHub syncs with the engine truth on the same timer.

Honest: what is not finished

  • No live trading: after a month of measurement the model does not beat the market price (Brier 0.152 vs 0.152), so the product was honestly repositioned to pre-trade checks and a watchlist.
  • The Windows code-signing certificate is not purchased — the installer triggers a SmartScreen warning.
  • Video generation and publishing run on the owner's button; autopilot covers topics and articles only.

Stack Node 22PostgreSQLAstro 5Tauri 2 / RustClaude APIGeeLarkResendffmpeg / whisperSeedance / HiggsfieldYouTube Data APIX APInginx / systemd

request

Tell us the idea. A couple of lines is enough.

We reply within a business day in the messenger you choose. No newsletters.

Or straight to Telegram: @moreteploe

We need a @handle, phone or e-mail — otherwise we cannot find you.
Preferred channel

By sending you agree to data processing needed to answer your request.