<?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: Evan S</title>
    <description>The latest articles on DEV Community by Evan S (@shtatskyi).</description>
    <link>https://dev.to/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>DEV Community: Evan S</title>
      <link>https://dev.to/shtatskyi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/shtatskyi"/>
    <language>en</language>
    <item>
      <title>The Invisible Digital Footprint: Finding Your Face Without Scraping the Web</title>
      <dc:creator>Evan S</dc:creator>
      <pubDate>Fri, 29 May 2026 18:11:32 +0000</pubDate>
      <link>https://dev.to/shtatskyi/the-invisible-digital-footprint-finding-your-face-without-scraping-the-web-34ao</link>
      <guid>https://dev.to/shtatskyi/the-invisible-digital-footprint-finding-your-face-without-scraping-the-web-34ao</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%2F6h97k0c1f57kdsuuz9dz.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%2F6h97k0c1f57kdsuuz9dz.png" alt=" " width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Every time you walk through a crowded tourist spot or attend a stadium concert, you become an extra in someone else's digital memory. &lt;/p&gt;

&lt;p&gt;There is a massive, invisible digital footprint of your face scattered across the internet. There are likely thousands of photos of you sitting on servers right now that you will never know about. It begs a fascinating question: &lt;em&gt;How cool would it be to find them?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Imagine being able to query the entire internet for your own face to find that random background shot of yourself in New York from 2018. But to build a tool that searches the open web for your face, a company has to relentlessly scrape billions of images without permission. It requires strip-mining personal data and violating privacy just to satisfy a curiosity. &lt;/p&gt;

&lt;p&gt;I wanted to explore the technical side of facial matching without the shady data practices. That is why I built &lt;strong&gt;DopplGrid&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;DopplGrid is a closed-loop, 100% private facial recognition network. Instead of scraping the open web, it operates as a secure vault. Our database only grows when real people explicitly choose to opt-in and lock their faces into the grid. &lt;/p&gt;

&lt;h2&gt;
  
  
  The Architecture Behind the Vault
&lt;/h2&gt;

&lt;p&gt;To make this work securely, the app relies heavily on isolated backend microservices. The heavy lifting—like processing biometric vector embeddings and triggering real-time notifications—is handled securely via Firebase Cloud Functions. &lt;/p&gt;

&lt;p&gt;For example, our onboarding flow utilizes a standalone, event-driven microservice. When a user joins the grid, a background function uses the Firebase Admin SDK to securely bypass frontend rules, provision a secure chat room, and inject a personalized welcome message along with real-time UI notification badges directly into the database. By keeping these services entirely isolated, the heavy backend processing never bottlenecks the user's onboarding flow and is completely abstracted away from the client side. &lt;/p&gt;

&lt;p&gt;Because the network is entirely opt-in, you might not find a global doppelganger on day one. But the moment your face is in the vault, the engine is active. As more users join globally, your chances of an automated match increase. &lt;/p&gt;

&lt;h2&gt;
  
  
  Test the Engine
&lt;/h2&gt;

&lt;p&gt;In the meantime, the matching engine is fully live. You can invite a friend, run your faces through the engine, and calculate your exact mathematical similarity percentage to see how closely you actually resemble each other.&lt;/p&gt;

&lt;p&gt;We can build and explore the coolest parts of facial AI, but we have to do it on an architecture built on trust and consent. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://dev.toINSERT_YOUR_APP_LINK_HERE"&gt;Check out DopplGrid here&lt;/a&gt;&lt;/strong&gt; and let me know what you think of the onboarding flow and the underlying architecture!&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Note: Add the following tags in the Dev.to editor settings: &lt;code&gt;webdev&lt;/code&gt;, &lt;code&gt;programming&lt;/code&gt;, &lt;code&gt;firebase&lt;/code&gt;, &lt;code&gt;privacy&lt;/code&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>privacy</category>
      <category>programming</category>
      <category>socialmedia</category>
    </item>
    <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://dev.to/shtatskyi/why-i-refused-to-build-a-web-scraper-for-my-ai-facial-matching-app-529i</link>
      <guid>https://dev.to/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://dev.to/shtatskyi/how-i-built-a-privacy-first-facial-similarity-network-using-react-firebase-19gd</link>
      <guid>https://dev.to/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>
