Overview
SmartyPant is an addictive daily news aggregator with games, powered by an OpenClaw pipeline running on a mini PC on my desk. Every night while I sleep, it pulls from 13 RSS feeds across 7 topic zones, researches and writes 5-7 stories with sharp analytical takes, generates a cover collage and a set of puzzles, and publishes a finished edition to the web. 22+ editions so far. No human touches it unless QA escalates.
What Makes It Interesting
It actually ships every day. This isn't a demo or a proof of concept. It's a real product that has published every morning since March 23, 2026. The pipeline runs 7 sequential stages overnight and the site is live by breakfast.
Two-layer AI quality control. The draft passes through 36+ regex patterns catching mechanical slop (exclamation marks, cliches, em-dash overuse) plus a separate LLM classifier that flags subtler problems like negation-reframes, moralizing, and false profundity. Up to 3 retry cycles before it escalates to a human.
Zero-backend architecture. The website is just JSON files in a Git repo. No CMS, no database, no server. Each edition is a structured JSON file committed by the pipeline, and a GitHub Actions build turns it into static HTML on GitHub's CDN.
Append-only state management. All pipeline mutations write to JSONL files. Pre-computed state files feed each stage deterministic inputs. No race conditions, no shared mutable state, cron-safe by design.
LLM-generated puzzles with automated QA. Two of the four puzzle types (Sorted and Morph) are written by AI agents, not procedural code. Separate QA agents validate each puzzle, walking through the deduction to confirm exactly one solution exists. Up to 3 generation attempts before the puzzle is dropped from the edition. The other two (Picross and Span) are procedurally generated at build time with a date-seeded PRNG.
The Pipeline
Seven stages run sequentially from midnight to 4 AM PT:
- Source - Pulls 12-15 candidate topics from 13 RSS feeds, fills gaps with web searches
- Research - Builds research cards with up to 3 sources per topic, scores relevance
- Draft - Writes the edition: headlines, context, and a "second move" analytical take per story
- QA - Reviews against voice guidelines, flags specific passages
- Revise - Up to 2 revision passes addressing QA notes, same slop checks
- Audit - Read-only integrity check on all JSONL state files
- Deliver - Generates cover collage, creates puzzles, publishes to web, posts to Discord
The Website
A static-generated, mobile-first news reader built with Next.js 14 + TypeScript.
- Swipeable card UI - Stories as draggable cards with touch physics instead of infinite scroll. Each story can span multiple cards.
- Four daily puzzle types - Sorted (logic constraints) and Morph (word chains) are LLM-generated nightly by dedicated OpenClaw agents, each with its own QA pass. Picross (nonograms) and Span (word spotting) are procedurally generated at build time. All solutions are SHA-256 hashed per-letter so you can't cheat by inspecting source.
- Installable PWA - Offline support, standalone display mode, app shortcuts.
- Reading streak tracker - localStorage-based consecutive-day counter.
- Compile-time RSS - Feed generated at build from all data files.
- Minimal dependencies - Just Next.js, React, and TypeScript. No component libraries, no CSS frameworks.
Puzzle Generation
Sorted and Morph run as their own pipeline stages between 3:00 and 3:25 AM, before the delivery lane picks them up.
Sorted is an Einstein's Riddle-style puzzle: 4 positions, 2 categories, 6-8 clues. The generation agent picks a daily difficulty (easy/medium/hard by day of week), invents a theme with characters and objects, and writes clues using varied constraint types (at, before, adjacent, cross-category). The QA agent then walks through the full deduction to prove exactly one valid arrangement exists. Three strikes and the puzzle is cut.
Morph is a word chain where each step swaps a real morphological chunk (prefix, root, or suffix) while keeping another. The agent builds a 7-word chain, writes vague clues for each step, and marks which letters are pre-filled vs. blank. QA validates that consecutive pairs genuinely share a morpheme and that each step is solvable from the clue plus revealed letters.
Both puzzle types are stripped of their solutions at build time. Sorted answers are replaced with a single SHA-256 hash checked on submission. Morph answers are replaced with per-letter salted hashes so the UI can give instant feedback as you type. Puzzles are interleaved between news stories in the reader, rotating position daily.
