New Piece
Food Game Media

The argument
nobody's making.

Research-to-writing intelligence for Australian hospitality. Pick your starting point.

🔭
Find a Topic
Discover what's trending today — globally or by region. Or search a specific topic and find the 10 best articles around it.
Explore trends →
🔗
Drop a Link
Found an article? Paste the URL and jump straight to writing. Add multiple links to synthesise a combined commentary.
Drop URL →
✏️
Write from Scratch
Have a topic or angle in mind? Go straight to the brief, set your search queries, and let the engine find sources.
Start writing →
or load from
Compose Brief
Define your topic, angle, and direction
Review Sources
No sources yet
Run Research first to find sources.
Your piece will appear here.
Topic Intelligence
Discover what's worth writing about
Drop a Link
Paste URLs or drop article text directly
Single URL — engine fetches the article and pre-fills your brief.
Multiple URLs (2–5) — synthesises all articles into one combined piece.
Note: Some sites block automated fetching. If fetch fails, use Paste Article Text.
Social Comment
Generate a sharp LinkedIn comment in Rory's style
Articles GitHub · all devices
No saved articles yet.

What is The Contrarian?

The opinion engine for Food Game — research-to-writing intelligence for Australian hospitality in a Rory Sutherland-inspired style.

Topic Intelligence — Data Sources

Runs NewsData.io and NewsAPI in parallel — results are merged, deduplicated, and enriched by Claude. Falls back to Claude web search if both APIs fail. Up to 15 results per search.

Publishing to Substack

The Contrarian writes the piece. You send it. Here's the flow:

  • Step 1 — Generate & review. Write your piece as normal. Review in the preview panel. Edit headline if needed.
  • Step 2 — Save to Articles. Click Save to store the piece locally before publishing.
  • Step 3 — Copy the raw text. Click Copy Raw Text in the output actions. This copies the clean article body ready to paste.
  • Step 4 — Go to Substack. Open thecontrarian.substack.com → click New Post → paste the text → add the headline.
  • Step 5 — Add the hosted link. At the bottom of the Substack post add: "Read the full formatted version: [link]" — the GitHub-hosted HTML link goes here once GitHub publishing is live.
  • Step 6 — Draft & send. Save as draft → review → send to subscribers.

Technical Notes

  • Claude Sonnet 4.6 via Cloudflare proxy
  • 15 second cooldown between API calls
  • History saved to browser localStorage
  • Works on desktop, iPad, and iPhone

Updating the Source Code

When a new version of The Contrarian is ready, follow these steps to push it live:

  • Step 1 — Get the new file. Download the updated index.html from your Claude session.
  • Step 2 — Open GitHub. Go to your repository and navigate to index.html.
  • Step 3 — Edit the file. Click the pencil ✏️ icon to open the editor, then select Upload file — or delete all existing content and paste the new code directly.
  • Step 4 — Commit. Scroll to Commit changes, add a short note (e.g. "Add source naming field"), then click Commit changes.
  • Step 5 — Wait for deploy. GitHub Pages redeploys automatically within 1–2 minutes. Hard refresh the live URL to confirm.

After Updating — Refresh on Each Device

The app does not auto-update on saved home screen installs. Each device needs a manual refresh after a new version is deployed.

  • MacBook (browser) — Hold Cmd + Shift + R to hard refresh, or open the URL in a new tab.
  • iPhone (home screen app) — Press and hold the app icon → Remove from Home Screen → open the GitHub Pages URL in Safari → tap Share → Add to Home Screen again.
  • iPad (home screen app) — Same as iPhone above.

Note: Home screen apps cached via Safari's "Add to Home Screen" cache aggressively. Remove and re-add is always the most reliable fix.