Signal - Hyperlocal AI Fact-Checking
Signal is a map-based community fact-checker. You see rumors spreading in your neighborhood in real-time, submit claims, and instantly get AI-powered verification. Upvote what's credible, flag what's not.
Inspiration
False claims spread fastest where people don't know each other. Think about your neighborhood Facebook group, your kid's school group chat, the apartment complex Slack. One person overhears something, posts it, and suddenly everyone believes it. By the time fact-checkers look into it, the damage is done. We wanted to do real-time verification at the neighborhood level, using Claude to understand the specific context of where each claim is coming from.
What it does
Signal lets you:
- See rumors on a live map - every claim shows up pinned to the exact neighborhood where it's being spread
- Submit claims in seconds - just describe what you heard and where you heard it
- Get instant AI verdict - Claude analyzes the claim using neighborhood context (who lives there, what's been happening lately, etc.)
- Vote on what's credible - upvote verdicts you trust, build reputation within your community
- Read the full reasoning - Claude shows you exactly what evidence it considered and why it reached that conclusion
Works on web (Next.js) and mobile (React Native Expo).
How we built it
- Frontend: Next.js for web, React Native Expo for mobile. Both have native map support and smooth gesture interactions.
- Backend: Supabase handles real-time sync, Claude API does the actual fact-checking.
- Maps: MapLibre GL on web, react-native-maps on mobile. We cluster pins so the map isn't a mess when lots of claims come in.
- UI: Tailwind for web, glass morphism bottom sheet on mobile with haptic feedback so you actually feel the app respond.
- How it works: Claim comes in, gets sent to Claude, Claude returns a verdict with reasoning and confidence, we store it and show it to everyone.
On mobile, you tap a pin on the map, then see claims nearby in a scrollable list. Swipe up to see Claude's full breakdown. Everything stays on the map view, no app jumping around to different screens.
Challenges we ran into
React Native Expo was new territory for us. This was our first time using Expo, and getting react-native-maps working on iOS was rougher than expected. Managed Expo Go limitations, CocoaPods conflicts, and the whole JavaScript-to-native-Swift bridge. We had to:
- Eject from Expo Go to use custom build (Expo Prebuild)
- Fight peer dependency conflicts between gesture-handler, reanimated, and maps
- Debug why map cluster pins weren't showing on iOS first load
- Learn Expo's plugin system on the fly just to inject native code
It took about 4 hours out of the hackathon, but the mobile experience was worth it.
Claude API latency. Fact-checking takes 2-3 seconds, but people expect instant response. So we built a nice loading state with an animated verdict view while Claude works in the background, haptic feedback when it's done, and the claim shows up right away so it feels fast.
Real-time map sync. Keeping everyone's pins in sync required Supabase realtime subscriptions. We had to be careful about how we handle new claims coming in while someone's scrolling the map.
Accomplishments that we're proud of
- Glass morphism mobile UI - the bottom sheet has that frosted glass effect (BlurView plus gradients) and it actually runs smooth even on cheaper Android phones
- Haptic feedback everywhere - tapping a claim feels different than upvoting which feels different than submitting. Your phone actually talks to you.
- Claude shows its work - you don't just get "true" or "false". You get Claude's actual reasoning: what it looked at, what it couldn't figure out, why it landed on that verdict
- Super fast claim submission - you can submit a claim from the map in like 10 seconds tops
- Web and mobile match - same Supabase backend, same Claude logic, so if you see a claim on your phone and then open Signal on your laptop, you get the same verdict on both
What we learned
- Expo actually works for real apps. If you're ok with some limitations on which native modules you can use, you can genuinely ship iOS and Android in a weekend. That's huge.
- Design Matters. We almost went with flat dark design, but the subtle blur and gradients made it feel way more premium. Like 10x better just from that.
- Claude's reasoning is the key to trust. People don't just believe an AI verdict because it says so. But when Claude shows you exactly what evidence it considered and why it reached a conclusion, people actually listen.
What's next for Signal
- Reputation system. Right now all upvotes are equal. We want to track who's voted "correctly" before (as verified by later fact-checking) and give their votes more weight.
- Watch rumors spread. Track how a single claim mutates as it goes neighborhood to neighborhood. That could help spot coordinated disinformation.
- Community moderators. Give trusted members the ability to categorize claims (health, politics, safety), add local context, and flag things that need urgent fact-checking.
- SMS and WhatsApp. Not everyone has the app. A lot of older people and recent immigrants use WhatsApp way more than Slack or Facebook.
- Multiple languages. Claude speaks tons of languages, so we can actually serve diaspora and immigrant communities that need hyperlocal fact-checking in their own language.
Log in or sign up for Devpost to join the conversation.