instawinsta is a Manifest V3 Chrome extension that helps reduce addictive Instagram web behaviors and encourage intentional usage.
It keeps core messaging use-cases available (DMs, Stories, controlled Home feed) while blocking high-distraction surfaces like Reels and Explore.
- Focus and Relaxed modes
- Focus Mode: stricter feed limit (default: 10 posts)
- Relaxed Mode: looser feed limit (default: 15 posts)
- Route blocking
- Redirects
/explore,/reels, and/reelroutes to/direct/inbox/
- Redirects
- Reels and Explore UI suppression
- Hides related nav links/buttons where detected
- Suggested/recommended content removal
- Removes common algorithmic injection blocks by heuristic matching
- Feed depth enforcement
- Blurs and disables interaction past configured post threshold
- Shows:
Intentional usage only. Feed limit reached for this mode.
- Autoplay reduction
- Attempts to pause videos and disable autoplay/loop
- Behavioral interruption UX
- “Are you sure?” prompt when repeatedly trying to scroll past blocked posts
- Daily time limit (default 20 minutes/day)
- Usage tracked per day in extension storage
- Chrome Extension Manifest V3
- Vanilla JavaScript (no framework)
chrome.storage.syncfor mode/preferencesMutationObserver+ route watcher for dynamic Instagram updates
instawinsta/
├── content.js
├── manifest.json
├── popup.html
├── popup.js
└── styles.css
- Open Chrome and navigate to
chrome://extensions. - Enable Developer mode.
- Click Load unpacked.
- Select this folder:
instawinsta. - Open
https://www.instagram.com/. - Pin the extension (optional) and use popup controls.
- Click the extension icon.
- Toggle Focus Mode on/off:
- ON = Focus
- OFF = Relaxed
- Optionally adjust:
- Daily limit in minutes
- Focus post limit
- Relaxed post limit
- Click Save Settings.
Changes are saved to chrome.storage.sync and applied to open Instagram tabs.
mode:focusdailyLimitMinutes:20focusPostLimit:10relaxedPostLimit:15interruptionScrollAttempts:5redirectPath:/direct/inbox/
- Allowed: DMs, Stories, controlled Home feed
- Blocked/limited:
- Explore routes/UI
- Reels routes/UI
- Suggested/recommended feed injections
- Deep infinite feed scrolling beyond thresholds
- Uses throttled DOM re-application to reduce observer churn.
- Avoids broad reflow-heavy operations where possible.
- Uses least-privilege permissions (
storage+ Instagram host permission). - Does not use remote code,
eval, or Manifest V2 APIs.
- Instagram frequently changes DOM structure; selector heuristics may need updates.
- Suggested-content detection uses text/structure heuristics and may not catch all variants.
- Autoplay control depends on Instagram’s current media implementation.
- No build step is required for current version.
- To modify behavior, edit
content.jsdefaults/selectors and popup controls.
This project is an independent productivity tool and is not affiliated with or endorsed by Instagram/Meta.

