<?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: Yagnesh</title>
    <description>The latest articles on DEV Community by Yagnesh (@yagnesh97).</description>
    <link>https://dev.to/yagnesh97</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%2F1208856%2F08d2cba1-9d3b-4417-8aa1-38b3be8a02ad.png</url>
      <title>DEV Community: Yagnesh</title>
      <link>https://dev.to/yagnesh97</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/yagnesh97"/>
    <language>en</language>
    <item>
      <title>🧩 I Built a Privacy-First Chrome Extension to Collect Public Emails from LinkedIn</title>
      <dc:creator>Yagnesh</dc:creator>
      <pubDate>Sat, 17 Jan 2026 11:37:54 +0000</pubDate>
      <link>https://dev.to/yagnesh97/i-built-a-privacy-first-chrome-extension-to-collect-public-emails-from-linkedin-3mjg</link>
      <guid>https://dev.to/yagnesh97/i-built-a-privacy-first-chrome-extension-to-collect-public-emails-from-linkedin-3mjg</guid>
      <description>&lt;p&gt;While job hunting and doing outreach, I kept running into the same problem:&lt;/p&gt;

&lt;p&gt;A lot of LinkedIn posts and profiles already have email addresses in plain sight, but finding them is slow and repetitive. You scroll, click “see more”, copy one email, scroll again… repeat.&lt;/p&gt;

&lt;p&gt;I tried a few tools that claimed to solve this, but most of them had at least one of these issues:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;They sent data to external servers&lt;/li&gt;
&lt;li&gt;Required accounts or logins&lt;/li&gt;
&lt;li&gt;Over-automated things in a way that felt risky&lt;/li&gt;
&lt;li&gt;Or clearly wouldn’t pass Chrome Web Store review&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So I decided to build a small tool myself.&lt;/p&gt;

&lt;p&gt;That’s how &lt;strong&gt;ReachIn&lt;/strong&gt; was born.&lt;/p&gt;

&lt;p&gt;👉 Repo: &lt;a href="https://github.com/yagnesh97/reach-in" rel="noopener noreferrer"&gt;https://github.com/yagnesh97/reach-in&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What ReachIn Is (and What It Isn’t)
&lt;/h2&gt;

&lt;p&gt;ReachIn is a Chrome extension that helps collect &lt;strong&gt;publicly visible email addresses&lt;/strong&gt; from LinkedIn search result pages.&lt;/p&gt;

&lt;h3&gt;
  
  
  What it does
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Works only when you explicitly click a button&lt;/li&gt;
&lt;li&gt;Scrolls through LinkedIn search results&lt;/li&gt;
&lt;li&gt;Expands visible content&lt;/li&gt;
&lt;li&gt;Extracts email addresses already shown on the page&lt;/li&gt;
&lt;li&gt;Stores everything locally in your browser&lt;/li&gt;
&lt;li&gt;Lets you copy results or view past collections&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  What it &lt;em&gt;does not&lt;/em&gt; do
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;No background scraping&lt;/li&gt;
&lt;li&gt;No credential access&lt;/li&gt;
&lt;li&gt;No analytics or tracking&lt;/li&gt;
&lt;li&gt;No servers&lt;/li&gt;
&lt;li&gt;No remote APIs&lt;/li&gt;
&lt;li&gt;No automation running on its own&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Privacy From Day One
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Chrome reviewers care far more about intent and data handling than fancy features.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So I set a few non-negotiable rules early:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Everything runs locally&lt;/li&gt;
&lt;li&gt;No network requests&lt;/li&gt;
&lt;li&gt;User action triggers everything&lt;/li&gt;
&lt;li&gt;The behavior must be easy to explain in plain English&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Under the Hood (High Level)
&lt;/h2&gt;

&lt;p&gt;ReachIn is a plain &lt;strong&gt;Manifest V3 Chrome extension&lt;/strong&gt;. No frameworks, no build step.&lt;/p&gt;

&lt;p&gt;Structure looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;├── assets/
│   ├── css/
│   │   └── popup.css
│   ├── js/
│   │   ├── background.js
│   │   ├── content.js
│   │   └── popup.js
│   ├── icons/
│   │   ├── icon-16.png
│   │   ├── icon-32.png
│   │   ├── icon-48.png
│   │   └── icon-128.png
│
├── popup.html
├── manifest.json
│
├── README.md
├── PRIVACY.md
├── LICENSE
└── .gitignore
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The flow is simple:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The popup controls everything&lt;/li&gt;
&lt;li&gt;The content script runs only on &lt;code&gt;linkedin.com&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Scripts are injected only after user action&lt;/li&gt;
&lt;li&gt;Data is stored with &lt;code&gt;chrome.storage.local&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Content Script
&lt;/h2&gt;

&lt;p&gt;The content script does three things:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Scrolls the page&lt;/li&gt;
&lt;li&gt;Clicks “see more” where needed&lt;/li&gt;
&lt;li&gt;Extracts emails from visible text and &lt;code&gt;mailto:&lt;/code&gt; links&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That’s it.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No DOM mutation beyond expanding content.&lt;/li&gt;
&lt;li&gt;No hidden scraping.&lt;/li&gt;
&lt;li&gt;No background execution.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This was critical for staying within Chrome Web Store policies.&lt;/p&gt;




&lt;h2&gt;
  
  
  What’s Next
&lt;/h2&gt;

&lt;p&gt;I’m keeping the roadmap intentionally conservative:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Minor UX improvements&lt;/li&gt;
&lt;li&gt;Performance tweaks&lt;/li&gt;
&lt;li&gt;Optional export formats&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;If you’re curious, feel free to check out the repo:&lt;br&gt;
👉 &lt;a href="https://github.com/yagnesh97/reach-in" rel="noopener noreferrer"&gt;https://github.com/yagnesh97/reach-in&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Happy building.&lt;/p&gt;

</description>
      <category>chromeextension</category>
      <category>javascript</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Building a Modern Web App: FastAPI + React TypeScript Template</title>
      <dc:creator>Yagnesh</dc:creator>
      <pubDate>Tue, 21 Jan 2025 22:32:59 +0000</pubDate>
      <link>https://dev.to/yagnesh97/building-a-modern-web-app-fastapi-react-typescript-template-5d88</link>
      <guid>https://dev.to/yagnesh97/building-a-modern-web-app-fastapi-react-typescript-template-5d88</guid>
      <description>&lt;p&gt;Hey developers! 👋 I'm excited to share a template I've created that combines FastAPI and React with TypeScript, aimed at helping you kickstart your full-stack projects faster. Whether you're building a new web application or looking to modernize your stack, this template provides a solid foundation with best practices baked in.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why This Stack? 🤔
&lt;/h2&gt;

&lt;p&gt;The combination of FastAPI and React offers several compelling advantages:&lt;/p&gt;

&lt;h3&gt;
  
  
  Backend (FastAPI)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Lightning-fast performance with async support&lt;/li&gt;
&lt;li&gt;Automatic OpenAPI documentation&lt;/li&gt;
&lt;li&gt;Type hints and validation with Pydantic&lt;/li&gt;
&lt;li&gt;Easy to learn and highly productive&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Frontend (React + TypeScript)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Type safety and better developer experience&lt;/li&gt;
&lt;li&gt;Modern React features and hooks&lt;/li&gt;
&lt;li&gt;Scalable component architecture&lt;/li&gt;
&lt;li&gt;Reduced runtime errors&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Infrastructure
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;MongoDB for flexible document storage&lt;/li&gt;
&lt;li&gt;Redis for high-performance caching&lt;/li&gt;
&lt;li&gt;Docker for consistent environments&lt;/li&gt;
&lt;li&gt;Poetry and Yarn for dependency management&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Template Features 🚀
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Containerized Development&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Run everything in Docker or use a hybrid approach&lt;/li&gt;
&lt;li&gt;Consistent development environment across team members&lt;/li&gt;
&lt;li&gt;Production-ready Docker configurations&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Development Tools&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Code formatting utilities&lt;/li&gt;
&lt;li&gt;Development scripts for common tasks&lt;/li&gt;
&lt;li&gt;Environment configuration templates&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Modern Dependencies&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Python 3.11 with Poetry management&lt;/li&gt;
&lt;li&gt;Latest React 18 with TypeScript&lt;/li&gt;
&lt;li&gt;MongoDB and Redis integration&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Getting Started 🌟
&lt;/h2&gt;

&lt;p&gt;The template is designed to be easy to use. Here's how you can get started:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Clone the repository:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/yagnesh97/fastapi-react-template
&lt;span class="nb"&gt;cd &lt;/span&gt;fastapi-react-template
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Set up your environment files:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Backend environment&lt;/span&gt;
&lt;span class="nb"&gt;cd &lt;/span&gt;backend
&lt;span class="nb"&gt;cp&lt;/span&gt; .env-example .env

&lt;span class="c"&gt;# Database environment&lt;/span&gt;
&lt;span class="nb"&gt;cd&lt;/span&gt; ../database
&lt;span class="nb"&gt;cp&lt;/span&gt; .env-example .env
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Choose your development mode:&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Option 1: Full Docker Setup
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker-compose &lt;span class="nt"&gt;-f&lt;/span&gt; docker-compose.yml up &lt;span class="nt"&gt;--build&lt;/span&gt; &lt;span class="nt"&gt;-d&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Option 2: Hybrid Setup (Local Development with Dockerized Database)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Start MongoDB and Redis&lt;/span&gt;
docker-compose &lt;span class="nt"&gt;-f&lt;/span&gt; docker-compose.yml up mongo redis &lt;span class="nt"&gt;--build&lt;/span&gt; &lt;span class="nt"&gt;-d&lt;/span&gt;

&lt;span class="c"&gt;# Start Backend&lt;/span&gt;
&lt;span class="nb"&gt;cd &lt;/span&gt;backend
poetry &lt;span class="nb"&gt;install&lt;/span&gt;
./cmd.sh start

&lt;span class="c"&gt;# Start Frontend&lt;/span&gt;
&lt;span class="nb"&gt;cd &lt;/span&gt;frontend
yarn &lt;span class="nb"&gt;install
&lt;/span&gt;yarn start
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Project Structure 📁
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;├── backend/          # FastAPI application
├── frontend/         # React TypeScript application
├── database/         # Database configuration
└── docker-compose.yml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Development Workflow 💻
&lt;/h2&gt;

&lt;p&gt;The template supports a flexible development workflow:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Local Development&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Hot-reloading for both frontend and backend&lt;/li&gt;
&lt;li&gt;Local dependency management&lt;/li&gt;
&lt;li&gt;Easy debugging&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Docker Development&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Consistent environment across team&lt;/li&gt;
&lt;li&gt;Easy service orchestration&lt;/li&gt;
&lt;li&gt;Production-like setup&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Production Deployment&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Optimized Docker builds&lt;/li&gt;
&lt;li&gt;Environment-specific configurations&lt;/li&gt;
&lt;li&gt;Ready for CI/CD integration&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What's Next? 🌅
&lt;/h2&gt;

&lt;p&gt;Future improvements planned for the template:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Authentication boilerplate&lt;/li&gt;
&lt;li&gt;Testing setup and examples&lt;/li&gt;
&lt;li&gt;CI/CD pipeline templates&lt;/li&gt;
&lt;li&gt;More development utilities&lt;/li&gt;
&lt;li&gt;Performance optimization examples&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Acknowledgments 🙏
&lt;/h2&gt;

&lt;p&gt;This template was inspired by and builds upon the excellent work of &lt;a href="https://dev.to/dpills"&gt;@dpills&lt;/a&gt; in his article &lt;a href="https://dev.to/dpills/fastapi-production-setup-guide-1hhh"&gt;FastAPI Production Setup Guide&lt;/a&gt;. His guide provided valuable insights into structuring a production-ready FastAPI application, which I've extended by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Adding React with TypeScript for the frontend&lt;/li&gt;
&lt;li&gt;Integrating MongoDB and Redis&lt;/li&gt;
&lt;li&gt;Security enhancements to the Docker&lt;/li&gt;
&lt;li&gt;Including additional development utilities&lt;/li&gt;
&lt;li&gt;Providing multiple deployment options&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I highly recommend checking out his original article for in-depth insights into FastAPI production setups.&lt;/p&gt;

&lt;h2&gt;
  
  
  Contribute 🤝
&lt;/h2&gt;

&lt;p&gt;This template is open source and contributions are welcome! Whether it's:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bug fixes&lt;/li&gt;
&lt;li&gt;New features&lt;/li&gt;
&lt;li&gt;Documentation improvements&lt;/li&gt;
&lt;li&gt;Best practices suggestions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Feel free to:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Fork the repository&lt;/li&gt;
&lt;li&gt;Create your feature branch&lt;/li&gt;
&lt;li&gt;Submit a pull request&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Get Started Now 🚀
&lt;/h2&gt;

&lt;p&gt;Check out the template on GitHub: &lt;a href="https://github.com/yagnesh97/fastapi-react-template" rel="noopener noreferrer"&gt;fastapi-react-template&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you find it useful, don't forget to give it a star ⭐️&lt;/p&gt;

&lt;p&gt;Have questions or suggestions? Feel free to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open an issue&lt;/li&gt;
&lt;li&gt;Submit a pull request&lt;/li&gt;
&lt;li&gt;Comment below&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let's build something amazing together! 💪&lt;/p&gt;

&lt;h4&gt;
  
  
  #webdev #python #react #typescript #docker
&lt;/h4&gt;

</description>
    </item>
  </channel>
</rss>
