- 🧹 Removes Suggested and Promoted Posts from your LinkedIn feed.
- ❌ Block LinkedIn News and ad modules across the site.
- 🎯 Focus Mode: Hide the entire feed to stay distraction-free.
- 🌗 Dark/Light Theme: Seamlessly switch between dark and light themes.
- ⚡️ Lightweight, open source, and privacy-friendly — no tracking!
- 🕹️ Control Panel to toggle features on/off.
- Brave, Google Chrome, Microsoft Edge, Vivaldi, etc. (Chromium-based browsers) are supported.
- Chrome Web Store: Link
- Click Add to Brave.
The extension is currently under review in the Mozilla Add-ons store. In the meantime, you can manually build and install it using the steps below.
- Clone the repository:
git clone https://github.com/karan51ngh/no-noise-linkedin.gitcd no-noise-linkedin
- Install dependencies and build:
npm installnpm run build
- Open
chrome://extensions/, enable Developer mode, click Load unpacked, and select the dist/ folder that was generated by the build.
- Clone the repository:
git clone https://github.com/karan51ngh/no-noise-linkedin.gitcd no-noise-linkedin
- Install dependencies and build for Firefox:
npm installnpm run build:firefox
- Open Firefox and navigate to
about:debugging#/runtime/this-firefox - Click Load Temporary Add-on...
- Select the
manifest.jsonfile inside thedist/folder that was generated by the build.
- Download the latest release from GitHub Releases page
- Extract the ZIP file compatible with your browser.
- For Brave, Google Chrome, Microsoft Edge, Vivaldi, etc. (Chromium-based browsers):
- Open
chrome://extensions/in your browser - Enable Developer mode (top-right corner).
- Click Load unpacked and select the dist/ folder inside the extracted release.
- Open
- For Firefox (and other Gecko-based browsers):
- Open
about:debugging#/runtime/this-firefoxin Firefox - Click Load Temporary Add-on...
- Select the
manifest.jsonfile inside thedist/folder that was generated by the build.
- Open
├── src/
│ ├── components/
│ │ ├── ControlPanel.tsx # React-based UI with toggles (Promoted, Feed, etc.)
│ │ ├── ControlPanelRow.tsx # Reusable UI row for control panel
│ │ ├── Footer.tsx # Footer component
│ │ ├── Header.tsx # Header component
│ │ ├── NNLButton.tsx # NNL button component
│ │ ├── Reload.tsx # Reload prompt component
│ │ ├── Switch.tsx # Toggle switch component
│ │ ├── constants.ts # Settings types and defaults
│ │ └── useSettings.ts # Utilities for reading/writing settings in chrome.storage
│ ├── services/
│ │ └── FilterEngine.ts # Core logic for filtering posts
│ ├── types/
│ │ ├── css-raw.d.ts # CSS raw import types
│ │ ├── images.d.ts # Type definitions for images
│ ├── App.tsx # Hosts the floating button, settings wiring, and logic
│ ├── index.tsx # Mounts the React app into the page via Shadow DOM
│ └── style.css # Global styles
├── images/ # Extension icons (16/32/48/128)
├── assets/ # Project images and screenshots used in README
├── dist/ # Production build output (Load this as unpacked)
├── index.html # Extension popup entry (default_popup)
├── manifest.json # Chrome extension configuration (MV3)
├── vite.config.ts # Vite build configuration
├── tailwind.config.js # Tailwind CSS configuration
└── tsconfig.json # TypeScript configuration
This project is licensed under the GNU General Public License v3.0. See the LICENSE file for more details.
This project uses react-content-script to integrate a React app as a content script and mount it inside a Shadow DOM host.
- GitHub: GitHub.com/Karan51ngh
- LinkedIn: LinkedIn.com/in/Karan51ngh
- 𝕏 / Twitter: Karan5ingh
- Medium: karan51ngh.medium.com
- GitHub Issues: Issues
- Email: [email protected]




