Your users live in a terminal, so the Cyber Monday deal should too. This announcement bar is a single line of phosphor green JetBrains Mono on near-black: "$ cyber-monday --off=50%" with a pulsing block cursor on the left, and on the right a live "ttl 47:59:59" countdown beside an outlined "claim ->" button. Built for the fictional app hosting company Stackfort, the bar rotates three log lines - the command, the offer, and a bonus - while the countdown and the button stay fixed, like a status line that never scrolls away.
The messages behave like log output. Each pane's message lives in its own block that enters from the bottom and exits to the top, so the bar reads like new lines printing in a shell: "$ cyber-monday --off=50%" types itself out on the first pane, "// 50% off Pro for 12 months" follows as a dim comment with "50%" highlighted in bold green, and "$ deploy --free-credits=100" closes the cycle before it loops. Every line ends with a green block cursor that pulses, the one repeating animation in the bar.
The countdown is part of the joke and part of the deal. "ttl" is shell slang for time to live, and the countdown reads it in bold green next to a thin divider, with "claim ->" in an outlined green box beside it (JetBrains Mono renders the arrow as a ligature). Both sit on a shared block that appears on all three panes, so the deadline and the action never move while the messages change. When the deal ends, the countdown swaps to "deal expired" and the button to "plans ->", so the bar degrades gracefully instead of advertising an offer that is gone.
Everything is built for the announcement bar format. The canvas is 1920x240, one face throughout, and no text below 56px, so the bar stays legible when the site is viewed on a laptop. The copy avoids dates and durations on purpose: the countdown is the only time statement, so you can move the deadline without rewriting a single message.
Export to React, Next.js, Vue, or Svelte and mount the bar as the first element of your layout, so it appears on your homepage, pricing page, blog, and docs at once. The live countdown ends at the same moment for every visitor, and "claim ->" links to your upgrade flow.
Place the bar at the top of your documentation site or inside your app dashboard, where existing users spend their time. The terminal voice fits right in next to code samples, and the "plans ->" ended state keeps the space useful after the deal ends.
Publish the project as a hosted link and embed it with the platform's embed element. The bar keeps its 8:1 aspect as the container resizes, the messages keep rotating, and the countdown keeps ticking.
ttl {hh}:{mm}:{ss} countdown, open the "Countdown" group, and set "Ends at" to when your deal endsOpen this template in PaneFlow, customize it to match your brand, and export as HTML, React, Vue, or video.