<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Saumya Brahmbhatt</title>
    <description>The latest articles on DEV Community by Saumya Brahmbhatt (@saumya_brahmbhatt_83a0809).</description>
    <link>https://dev.to/saumya_brahmbhatt_83a0809</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4136168%2Ffeb406c4-bbcb-4490-9ad1-376433ad7be2.png</url>
      <title>DEV Community: Saumya Brahmbhatt</title>
      <link>https://dev.to/saumya_brahmbhatt_83a0809</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/saumya_brahmbhatt_83a0809"/>
    <language>en</language>
    <item>
      <title>FindMyPal — A Million Eyes Looking Together</title>
      <dc:creator>Saumya Brahmbhatt</dc:creator>
      <pubDate>Mon, 21 Sep 2026 17:22:54 +0000</pubDate>
      <link>https://dev.to/saumya_brahmbhatt_83a0809/findmypal-a-million-eyes-looking-together-4jia</link>
      <guid>https://dev.to/saumya_brahmbhatt_83a0809/findmypal-a-million-eyes-looking-together-4jia</guid>
      <description>&lt;h1&gt;
  
  
  FindMyPal — Because Every Minute Counts
&lt;/h1&gt;




&lt;h2&gt;
  
  
  What We Built
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;FindMyPal&lt;/em&gt;&lt;/strong&gt; is a missing-persons platform we built at &lt;strong&gt;HopHacks&lt;/strong&gt; so families and communities aren't stuck with flyers and scattered social posts.&lt;/p&gt;

&lt;p&gt;A few days before the hackathon, &lt;strong&gt;Esube Wondwossen&lt;/strong&gt;, a student we know, went missing near Howard University. Watching it unfold in real time was gutting — not just because of the tragedy, but because of the chaos around it. Leads were splintering across Instagram stories, Reddit threads, and disconnected news segments. Nothing connected them. &lt;strong&gt;&lt;em&gt;That's what we built FindMyPal to fix.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;There are tens of thousands of active missing-person cases in the U.S. Tips get lost, maps don't update, and searching the open web overwhelming. FindMyPal lets people:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Publish cases&lt;/strong&gt; with photos, last-seen details, and descriptions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Submit location tips&lt;/strong&gt; with confidence scoring on a live timeline&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;See tips&lt;/strong&gt; on Leaflet maps and density heatmaps — updated in real-time&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Generate printable flyer PDFs&lt;/strong&gt; with QR codes in one click&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Browse active vs. reunited&lt;/strong&gt; ("found") cases&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use Gemini&lt;/strong&gt; for natural-language case search, AI case summaries, and 
Smart Person Search (Lookup) that structures messy public-web mentions into a readable brief&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Get live tip and found updates&lt;/strong&gt; through SpacetimeDB subscriptions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Optionally hear a case brief aloud&lt;/strong&gt; with ElevenLabs TTS&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The Feature No Other Platform Has
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Every time a tip is submitted, it updates in real-time alongside a map of &lt;br&gt;
public surveillance cameras and open camera infrastructure in the area.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is what makes FindMyPal genuinely different. Our &lt;strong&gt;marimo civic dashboard&lt;/strong&gt; maps public surveillance cameras alongside live incoming tips. The moment a tip comes in placing someone near an intersection:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Police can &lt;strong&gt;immediately see which cameras cover that location&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Law enforcement is &lt;strong&gt;notified directly&lt;/strong&gt; — no lag, no family having to 
relay what a stranger texted them&lt;/li&gt;
&lt;li&gt;The dashboard &lt;strong&gt;updates live&lt;/strong&gt; with every new submission&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tips don't sit in a feed waiting for someone to read them. &lt;strong&gt;&lt;em&gt;They instantly sharpen the picture for law enforcement.&lt;/em&gt;&lt;/strong&gt; No other missing persons platform operates in real-time like this.&lt;/p&gt;




&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;We were careful about product honesty: tips are unverified community &lt;br&gt;
information, not law-enforcement proof, and demo reunited profiles are labeled &lt;br&gt;
as hackathon demos.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Stack
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;React + Vite + Tailwind → FastAPI → SpacetimeDB&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;plus Gemini · Leaflet/Esri · Cloudflare Tunnel · GoDaddy · ElevenLabs · &lt;br&gt;
Apify scrapers&lt;/p&gt;




&lt;h2&gt;
  
  
  What We Learned
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;AI is most useful for structuring and ranking&lt;/strong&gt; — not declaring someone "found." Every Gemini output is framed as a lead, not a conclusion.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Realtime is worthless if private tip fields leak&lt;/strong&gt; — sensitive data stays behind FastAPI while the client only subscribes to public &lt;code&gt;case_activity&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;For hackathons, a Cloudflare quick tunnel beats fighting nameservers&lt;/strong&gt; &lt;br&gt;
the night before judging — learned that one the hard way&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Live Demo&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://findmypal.us/" rel="noopener noreferrer"&gt;https://findmypal.us/&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;GitHub&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/Saumya812/hophacks" rel="noopener noreferrer"&gt;https://github.com/Saumya812/hophacks&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;YouTube Walkthrough&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=dSlUOPn9fww&amp;amp;t=2s" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=dSlUOPn9fww&amp;amp;t=2s&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Try it yourself:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Home gallery → click a case → Tips &amp;amp; Map → Family tab (flyer + tools) → &lt;br&gt;
&lt;code&gt;/lookup&lt;/code&gt; for Smart Person Search → &lt;code&gt;/dashboard&lt;/code&gt; for live camera mapping &lt;br&gt;
and city stats&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Partner Technologies
&lt;/h2&gt;

&lt;h3&gt;
  
  
  SpacetimeDB
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Primary database and real-time layer.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Cases, tips, and public &lt;code&gt;case_activity&lt;/code&gt; live here. The frontend opens a WebSocket subscription for live tip and found signals; private rows stay API-only. We migrated from an earlier Supabase prototype and publish a TypeScript module instead of classic SQL migrations.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Powerful native real-time subscriptions&lt;/li&gt;
&lt;li&gt;Steeper mental model than Postgres — CLI + module, not a table editor&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Google Gemini
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Natural language, extraction, and summarization.&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Natural-language search &lt;em&gt;("active cases near Baltimore")&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Lookup extraction from noisy public web text&lt;/li&gt;
&lt;li&gt;AI case summaries so volunteers aren't reading raw tip blobs&lt;/li&gt;
&lt;li&gt;Falls back to strict heuristics when quotas fail — &lt;strong&gt;&lt;em&gt;we never invent sightings&lt;/em&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  ElevenLabs
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Accessibility and shareability.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Optional "read this profile aloud" TTS on the case Family tools panel, with disk caching and transcript-only fallback if the API fails.&lt;/p&gt;




&lt;h3&gt;
  
  
  Cloudflare
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Public HTTPS demo delivery.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Tunnel kept the live demo accessible to judges without requiring them to be on our LAN. The quick tunnel saved us when the named tunnel fought us at cutover.&lt;/p&gt;




&lt;h3&gt;
  
  
  Leaflet / Esri
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Maps, tip markers, and density heatmaps.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Every tip shows up as a pin. Enough tips in one area surface as a heatmap cluster.&lt;/p&gt;




&lt;h3&gt;
  
  
  marimo
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;The civic intelligence layer.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Notebooks power the live public camera dashboard. When a tip comes in, marimo &lt;br&gt;
updates which cameras cover that area in real-time — giving law enforcement an immediate, actionable surveillance reference without a single manual lookup.&lt;/p&gt;




&lt;h3&gt;
  
  
  GoDaddy
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Domain registration for **findmypal.us&lt;/em&gt;**&lt;/p&gt;




&lt;h3&gt;
  
  
  Cursor &lt;em&gt;(Agent Mode)&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Our build and debug loop throughout.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Multi-file fixes, process and port diagnosis, and verifying tunnel routing under deadline. Turned stack-wide failures into fixable loops instead of hour-long rabbit holes.&lt;/p&gt;




&lt;h2&gt;
  
  
  Hackathon Experience
&lt;/h2&gt;

&lt;p&gt;We built FindMyPal at &lt;strong&gt;HopHacks&lt;/strong&gt; (Johns Hopkins University) — classic MLH energy: late nights, sponsor booths, and a constant race between &lt;em&gt;"ship the feature"&lt;/em&gt; and &lt;em&gt;"keep the demo alive."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;What we'll remember most is the end-to-end crunch — not just coding UI, but keeping &lt;strong&gt;SpacetimeDB, FastAPI, Vite, and a Cloudflare tunnel&lt;/strong&gt; all healthy simultaneously so a judge could click a face on the gallery and open a live case with maps, tips, and real-time camera data.&lt;/p&gt;

&lt;p&gt;The hardest moments:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Domain cutover&lt;/strong&gt; for findmypal.us fought us right before judging — 
the quick tunnel saved the demo&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SpacetimeDB locked processes&lt;/strong&gt; took out the DB mid-session&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;React hooks crashes&lt;/strong&gt; were blanking full case profiles&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cursor Agent mode turned all of it from hour-long rabbit holes into fixable loops.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;We built something real because something real happened. That's the version of FindMyPal we shipped.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>mlhacks</category>
      <category>devchallenge</category>
      <category>hackathon</category>
    </item>
  </channel>
</rss>
