<?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>Forem: Evan S</title>
    <description>The latest articles on Forem by Evan S (@shtatskyi).</description>
    <link>https://forem.com/shtatskyi</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3932040%2F666d461c-e876-4342-b888-540404338155.png</url>
      <title>Forem: Evan S</title>
      <link>https://forem.com/shtatskyi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/shtatskyi"/>
    <language>en</language>
    <item>
      <title>Why I Refused to Build a Web Scraper for My AI Facial Matching App</title>
      <dc:creator>Evan S</dc:creator>
      <pubDate>Tue, 19 May 2026 17:55:44 +0000</pubDate>
      <link>https://forem.com/shtatskyi/why-i-refused-to-build-a-web-scraper-for-my-ai-facial-matching-app-529i</link>
      <guid>https://forem.com/shtatskyi/why-i-refused-to-build-a-web-scraper-for-my-ai-facial-matching-app-529i</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8jgauua0bab8z5dikwxj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8jgauua0bab8z5dikwxj.png" alt=" " width="512" height="512"&gt;&lt;/a&gt;&lt;br&gt;
Building an AI facial matching app right now presents a massive ethical dilemma for developers. &lt;/p&gt;

&lt;p&gt;If you want to build a "find your doppelganger" tool, the easiest, fastest architectural route is obvious: spin up a Python script, hook into some open-source reverse-image APIs, and scrape the open web for massive datasets. It’s cheap, it’s fast, and it’s what almost everyone else is doing.&lt;/p&gt;

&lt;p&gt;But it is also a massive privacy nightmare. &lt;/p&gt;

&lt;p&gt;Every day, thousands of automated bots are crawling the web, quietly cataloging biometric data from background faces in tourist photos, public forums, and event galleries. They log facial structures into unregulated databases without user consent. &lt;/p&gt;

&lt;p&gt;As a developer, I realized I couldn't ethically contribute to that ecosystem. So, when I started building &lt;strong&gt;&lt;a href="https://dopplgrid.com" rel="noopener noreferrer"&gt;DopplGrid&lt;/a&gt;&lt;/strong&gt;, I set a hard constraint: &lt;strong&gt;Zero open-web scraping.&lt;/strong&gt; Here is how I approached the architecture instead.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Closed-Network Solution
&lt;/h3&gt;

&lt;p&gt;I decided to build the antithesis of an open-web scraper: a 100% closed, opt-in biometric network. &lt;/p&gt;

&lt;p&gt;Instead of searching the internet, the app acts as a private photo radar. It only scans and matches photos uploaded &lt;em&gt;within&lt;/em&gt; its own secure Firebase ecosystem. If you aren't explicitly opted-in and mapped in the database, the engine cannot see you.&lt;/p&gt;

&lt;h3&gt;
  
  
  Mapping Geometry, Not Pixels
&lt;/h3&gt;

&lt;p&gt;Most lazy scrapers use basic pixel-matching, which is terribly inaccurate and leads to false flags. To make the closed network actually valuable, I had to ensure the matching was mathematically precise. &lt;/p&gt;

&lt;p&gt;The DopplGrid engine maps 128 unique points of a user's facial geometry (similar to how FaceID operates) and stores that map in a secure personal vault. &lt;/p&gt;

&lt;p&gt;This allows for two completely private use cases:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Global Matching:&lt;/strong&gt; Users can scan the opted-in network to securely find their exact biometric doppelganger.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Similarity Testing:&lt;/strong&gt; Two users can scan their faces and the algorithm will calculate their exact mathematical similarity percentage (great for settling family debates about who the baby looks like).&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  The Developer Responsibility
&lt;/h3&gt;

&lt;p&gt;We can't rewind the clock on the internet, but we &lt;em&gt;can&lt;/em&gt; change how we build biometric tools moving forward. We need to stop relying on platforms that scrape data indiscriminately and start building platforms rooted in absolute consent.&lt;/p&gt;

&lt;p&gt;The reality is that user facial data is already floating around the internet. Our job should be giving them tools to take active ownership of it, rather than harvesting it from them.&lt;/p&gt;

&lt;p&gt;I just pushed the React build live. If you are interested in privacy-first architecture, ethical AI, or just want to test out the matching engine, I’d love for the dev community to tear it apart and give me feedback on the UI. &lt;/p&gt;

&lt;p&gt;Check out the secure vault at &lt;strong&gt;&lt;a href="https://dopplgrid.com" rel="noopener noreferrer"&gt;DopplGrid&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>privacy</category>
      <category>ethics</category>
      <category>webdev</category>
    </item>
    <item>
      <title>How I Built a Privacy-First Facial Similarity Network using React &amp; Firebase</title>
      <dc:creator>Evan S</dc:creator>
      <pubDate>Thu, 14 May 2026 22:40:14 +0000</pubDate>
      <link>https://forem.com/shtatskyi/how-i-built-a-privacy-first-facial-similarity-network-using-react-firebase-19gd</link>
      <guid>https://forem.com/shtatskyi/how-i-built-a-privacy-first-facial-similarity-network-using-react-firebase-19gd</guid>
      <description>&lt;p&gt;Building a consumer AI app right now is wild. Building one that relies on biometric data? That adds a massive layer of complexity, especially when you want to ensure total user privacy.&lt;/p&gt;

&lt;p&gt;Most "lookalike" apps out there rely on creepy web scrapers or basic reverse image searches. I wanted to build something entirely different: a 100% closed, opt-in biometric network where the user owns their face data. &lt;/p&gt;

&lt;p&gt;So, I built DopplGrid. Here is a look at the stack and the architecture behind it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Stack &amp;amp; Architecture
&lt;/h2&gt;

&lt;p&gt;I wanted to get the web application running flawlessly before wrapping it for the native iOS and Android releases. The frontend is built in React and heavily styled with Tailwind CSS to keep the UI clean, fast, and responsive across devices. &lt;/p&gt;

&lt;p&gt;For the backend and secure data vault, I am relying on Firebase. The core of the app is a biometric matching engine. Instead of scanning colors or pixels, it maps 128 unique points of a user's facial geometry. &lt;/p&gt;

&lt;h2&gt;
  
  
  The Privacy Constraint (No Web Scraping)
&lt;/h2&gt;

&lt;p&gt;The biggest architectural rule I set was zero open-web scraping. The app acts as a personal photo radar, but it only tracks photos uploaded &lt;em&gt;within&lt;/em&gt; the DopplGrid network. It only starts working after a user explicitly chooses to securely enroll their face. This ensures users can safely track their digital footprint without their data being aggregated from external sources.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Features (The Fun Part)
&lt;/h2&gt;

&lt;p&gt;Once the secure vault was operational, the matching algorithm opened up some really fun use cases. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Global Matching:&lt;/strong&gt; Users can scan the network to &lt;strong&gt;&lt;a href="https://dopplgrid.com" rel="noopener noreferrer"&gt;find your doppelganger&lt;/a&gt;&lt;/strong&gt; globally based on exact geometric similarity.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Family &amp;amp; Friends:&lt;/strong&gt; I added a similarity tool so users can compare their facial features directly with friends or relatives to see the exact percentage of how much they look alike. &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Looking for Feedback
&lt;/h2&gt;

&lt;p&gt;We just pushed the initial React web build live. If you are interested in AI tools, privacy-first architecture, or just want to see how accurate the matching engine is to &lt;strong&gt;&lt;a href="https://dopplgrid.com" rel="noopener noreferrer"&gt;find people who look like you&lt;/a&gt;&lt;/strong&gt;, I would love for the dev community to test it out. &lt;/p&gt;

&lt;p&gt;Check out the onboarding flow at &lt;a href="https://dopplgrid.com" rel="noopener noreferrer"&gt;DopplGrid&lt;/a&gt; and let me know what you think of the UI/UX!&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>privacy</category>
      <category>react</category>
    </item>
  </channel>
</rss>
