←back to thread

66 points marsw42 | 2 comments | | HN request time: 2.876s | source

Hi HN,

I built WhatHappened (whathappened.tech) because I have a love/hate relationship with this site. I love the content, but the "wall of text" UI gives me FOMO. I was spending too much time clicking into vague titles ("Project X") or wading through flame wars just to find technical insights.

I built this tool to act as a filter. It generates a card for the top daily posts with a few specific features to cut the noise:

1. AI Summaries: It generates a technical TL;DR (3 bullet points) and an ELI5 version for every post.

2. The Heat Meter: I analyze the comment section to visualize the distribution: Constructive vs. Technical vs. Flame War. If a thread is 90% Flame War, I know to skip it (or grab popcorn).

3. Contrarian Detection: To break the echo chamber, the AI specifically hunts for the most upvoted disagreement or critique in the comments and pins it to the card.

4. Mobile-First PWA: I mostly read HN on my phone, so I designed this as a PWA. It supports swipe gestures and installs to the home screen without an app store.

Stack: Next.js, Gemini, Supabase.

It currently supports English and Chinese. Any feedback will be appreciated! My original X post: https://x.com/marsw42/status/1997087957556318663, please share if you like it or find it helpful! :D

Thanks!

1. jimmySixDOF ◴[] No.46235753[source]
How is this determining a comment is "Highly Upvoted" on HN where that is explicitly kept out of the ui/ux and new comments are a/b tested across users etc... it's not a thing you can know. I have had comments with a big number of descendents but very low upvotes so thats not a reliable indicator either. Genuinely curious.
replies(1): >>46245916 #
2. marsw42 ◴[] No.46245916[source]
Here is the prompt I used!

* contrarian_view: * Look for the most upvoted comment that DISAGREES with the article's premise or the majority sentiment * This is the "steelman" of the opposing view - the most compelling counter-argument * If no significant contrarian view exists, set has_contrarian to false * Focus on constructive disagreement, not flame wars