'use client' import { useEffect, useRef, useState } from 'react' import Link from 'next/link' import './landing.css' /* Scroll-reveal hook */ function useReveal() { const ref = useRef(null) useEffect(() => { const root = ref.current if (!root) return const els = root.querySelectorAll('.lp-reveal') const io = new IntersectionObserver( (entries) => { for (const e of entries) { if (e.isIntersecting) { e.target.classList.add('in') io.unobserve(e.target) } } }, { threshold: 0.12, rootMargin: '0px 0px -40px 0px' }, ) els.forEach((el) => io.observe(el)) return () => io.disconnect() }, []) return ref } /* Ticking clock for the terminal header (looks alive) */ function useClock() { const [t, setT] = useState('') useEffect(() => { const tick = () => { const d = new Date() setT(d.toISOString().replace('T', ' ').slice(0, 19) + ' UTC') } tick() const id = setInterval(tick, 1000) return () => clearInterval(id) }, []) return t } export default function LandingPage() { const rootRef = useReveal() const clock = useClock() return (
{/* ---------- HERO ---------- */}
Reading @realDonaldTrump on Truth Social · right now

Trump posts at 3am.
The bot trades at  3:00:02 .

Every Truth Social post is scraped, scored by AI, and turned into a Hyperliquid position — in under three seconds. You sleep. It doesn’t.

Launch Dashboard Watch the engine
{/* Ticker strip */}
{[0, 1].map((k) => (
))}
{/* ---------- THE ENGINE (terminal block) ---------- */}
The engine, running

No mock-ups. No dashboards in a marketing deck.

This is what the signal engine actually does, every time Trump posts. Scrape. Score. Decide. Execute.

{/* Terminal */}
LIVE trumpsignal.engine src=truthsocial.com/@realDonaldTrump {clock}
tail -f /var/log/engine posts analysed: 1,247 · uptime 99.8%
{/* Stat strip */}

Posts shown are examples in Trump’s style — your actual feed is live from the dashboard.

{/* ---------- PRESS / HEADLINES ---------- */}
Headlines you can Google

The market already trades every Trump post.

Big wallets have been scoring eight-figure moves on his Truth Social activity for two years. This bot won’t give you their edge — it just gives you their speed.

{/* Big card — the $6.8M trader story */}
verified · on-chain
+$6.8M
50× leverage · same-day close
Raw Story · NewsBreak Mar 2025

Anonymous whale placed a 50× leveraged BTC/ETH bet minutes before Trump’s crypto-reserve post — cashed out the same day.

CNBC Mar 2 2025

Trump’s Truth Social post confirming a Strategic Crypto Reserve sent Bitcoin from $84k to $91k overnight.

+8.2% BTC · 24 hours
one Truth Social post
Al Jazeera Mar 4 2025

Ethereum spiked more than 10% alongside Bitcoin as the reserve announcement rippled across every major alt.

+10%+ ETH · same window
BTC, SOL, XRP followed
CoinDesk Apr 20 2026

Five separate times a single Trump statement moved BTC within minutes — and why it keeps happening.

documented cases
BTC moved in minutes
TIME Mar 2025

Senator Schiff calls for an SEC investigation into possible insider trading around Trump’s market-moving posts.

SEC investigation requested
by a U.S. senator

Not our claims — their headlines. Click any card to read the source.

{/* ---------- WHY IT WORKS ---------- */}
Why bother

Trump moves markets. You can’t outrun him manually.

He posts at any hour, in any mood. By the time you see it, the move is half over. The bot doesn’t blink. That’s the whole pitch.

{/* ---------- FINAL CTA ---------- */}

Stop refreshing Truth Social.
Go do literally anything else.

2 minutes to set up. Free. Bring your own Hyperliquid account. If you don’t like it, disconnect — nothing to cancel.

Launch Dashboard

TrumpSignal is an experimental tool. Crypto perp trading is extremely high-risk; you can lose more than you deposit. Past signals are not predictions of future results. Not affiliated with Truth Social, Trump Media & Technology Group, or Donald J. Trump. Trade at your own risk.

© {new Date().getFullYear()} TrumpSignal Privacy Terms Contact
) } /* ---------- Terminal row ---------- */ function TermRow({ isNew, ts, text, verdict, soft, }: { isNew?: boolean ts: string text: string verdict: | { cls: 'LONG' | 'SHORT'; asset: string; conf: number; action: string } | { cls: 'NOISE'; skip: string } soft?: boolean }) { const cls = verdict.cls const valClass = cls === 'LONG' ? 'long' : cls === 'SHORT' ? 'short' : 'skip' return (
@realDonaldTrump · {ts} · truthsocial

{text}

cls {cls} {'asset' in verdict && ( <> asset {verdict.asset} conf {verdict.conf} action {verdict.action} )} {'skip' in verdict && ( reason {verdict.skip} )}
) } /* ---------- Small components ---------- */ function TickerItem({ asset, kind, text }: { asset: string; kind: 'buy' | 'sell' | 'hold'; text: string }) { return (
{kind.toUpperCase()} {asset} · {text}
) } function Stat({ value, suffix, label, sub }: { value: string; suffix?: string; label: string; sub?: string }) { return (
{value} {suffix && {suffix}}
{label}
{sub &&
{sub}
}
) } function WhyCard({ n, t, d }: { n: string; t: string; d: string }) { return (
{n}

{t}

{d}

) }