LinkDuck is a Chrome extension that intercepts navigation events and checks URLs for safety before allowing browsing. It provides immediate feedback on whether a site is safe, suspicious, or unsafe.
- Real-time URL Scanning: Intercepts navigation and checks URL safety before loading the page
- User Control: Choose whether to proceed to a site after reviewing its safety status
- Modern UI: Clean, intuitive interface with dark mode design
- Threat Intelligence: Integration with URL scanning APIs (URLscan.io mock implementation for MVP)
- Dashboard: Web-based dashboard for extension management and settings
- Next.js: For the dashboard and configuration interface
- TypeScript: Type-safe code throughout the project
- Shadcn UI: Modern, accessible UI components
- Chrome Extension APIs: For browser integration
- Webpack: For bundling the extension
/src/extension/
: Chrome extension source codebackground.ts
: Background script for navigation interception and URL scanningcontent.ts
: Content script for UI rendering in web pages
/public/extension/
: Static extension assetspopup.html
: Extension popup interfacepopup.js
: JavaScript for extension popupscanning.html
: Loading page shown during URL scans
/src/app/
: Next.js dashboard pagespage.tsx
: Main dashboard pagesettings/page.tsx
: Extension settings page
- Node.js (>= 14.x)
- npm or yarn
- Chrome browser
-
Clone the repository:
git clone https://github.com/yourusername/link-rubber.git cd link-rubber
-
Install dependencies:
npm install
-
Run the development server for the dashboard:
npm run dev
-
Build the Chrome extension:
npm run build:extension
-
Load the extension in Chrome:
- Open Chrome and navigate to
chrome://extensions/
- Enable "Developer mode"
- Click "Load unpacked" and select the
dist
directory
- Open Chrome and navigate to
The dashboard can be easily deployed to Vercel:
-
Install Vercel CLI (optional):
npm install -g vercel
-
Deploy using Vercel CLI:
vercel
-
Or deploy directly from the Vercel dashboard:
- Push your repository to GitHub
- Import the repository in Vercel dashboard
- Configure the deployment settings (all defaults work well)
- Deploy
-
Vercel will automatically detect the Next.js configuration and build the dashboard.
To build both the dashboard and extension:
npm run build:all
- After installing the extension, it will automatically start monitoring your navigation.
- When you click a link, LinkDuck will check the URL before loading it.
- A dialog will appear showing the safety status: Safe, Suspicious, or Unsafe.
- Choose whether to proceed to the site or cancel the navigation.
- Access settings and history through the extension popup or dashboard.
This is an MVP (Minimum Viable Product) with some limitations:
- Uses mock implementation for URL scanning (random verdicts for demonstration)
- Limited settings functionality in the UI
- Basic error handling
MIT