LinkSnap is a Chrome extension inspired by CodeSnap and Ray.so. It lets you capture LinkedIn posts as stunning, customizable PNG images with macOS-style window chrome, gradient backgrounds, and one-click export.
| Feature | Details |
|---|---|
| πΈ One-click Snap | A Snap button appears inline on every LinkedIn feed post |
| π¨ 6 Themes | macOS Light/Dark, Carbon, Ray.so, Vercel, GitHub Dark |
| π 7 Gradient Backgrounds | Sunset, Cosmic, Aurora, Carbon, Ocean, Neon, Minimal |
| π§ Live Customization | Adjust padding, card width, text length limit, and element visibility in real time |
| π₯ PNG Download | Export at 3Γ pixel ratio for crisp, high-resolution images |
| π Copy to Clipboard | Paste directly into Notion, Figma, Slack, or anywhere |
| π Privacy-First | No data leaves your browser β everything runs locally |
The extension injects a πΈ Snap button alongside the native Like / Comment / Share row on every post:
[π Like] [π¬ Comment] [β Share] [πΈ Snap]
Clicking Snap opens a full customization dashboard:
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β πΈ LinkSnap v1.0 β
βββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββ€
β Theme β β
β ββββββββββββββ β ββββββββββββββββββββββββββββββββ β
β β macOS Dark β β β β β β linkedin.com β β
β ββββββββββββββ β ββββββββββββββββββββββββββββββββ€ β
β β β π€ Jane Doe β β
β Background β β Senior Engineer @ Meta β β
β β β β β β β β β β β β
β β β Excited to share that I... β β
β Padding 48 β β β β
β βββββββββββββ β β π 1.2K π¬ 84 π 32 β β
β β ββββββββββββββββββββββββββββββββ β
β Card Width 580 β β
β βββββββββββββ β β
β β β
β Text Length 300β β
β βββββββββββββ β β
β Show / Hide β β
β Avatar β β β
β Post Text β β β
β Metrics β β β
β β β
β [π₯ Download] β β
β [π Copy] β β
β [β Close] β β
βββββββββββββββββββ΄βββββββββββββββββββββββββββββββββββββββ
LinkSnap/
β
βββ manifest.json # Chrome Extension Manifest V3
βββ background.js # Service worker β CORS image proxy
β
βββ content/
β βββ content.js # Content script entry point
β βββ injector.js # Injects πΈ Snap button on feed posts
β βββ extractor.js # Scrapes post data & converts images to Base64
β βββ content.css # Styles for the injected Snap button
β
βββ modal/
β βββ modal.js # Customization dashboard logic
β βββ modal.css # Dashboard & snap card styles
β
βββ popup/
β βββ popup.html # Extension popup UI
β βββ popup.css # Popup styles
β βββ popup.js # Popup settings controller
β
βββ themes/
β βββ macos-light.css # macOS Light card theme
β βββ macos-dark.css # macOS Dark card theme
β βββ carbon.css # IBM Carbon card theme
β βββ rayso.css # Ray.so card theme
β βββ vercel.css # Vercel card theme
β βββ github-dark.css # GitHub Dark card theme
β
βββ utils/
β βββ export.js # PNG download & clipboard copy helpers
β βββ storage.js # chrome.storage.local promise wrappers
β βββ constants.js # Default settings & gradient definitions
β
βββ assets/
β βββ icon16.png
β βββ icon48.png
β βββ icon128.png
β βββ logo.png
β
βββ libs/
βββ html-to-image.min.js # Vendor: DOM-to-PNG renderer
LinkSnap is not yet published on the Chrome Web Store. Load it as an unpacked extension.
-
Clone or download this repository:
git clone https://github.com/HanshalBobate/LinkSnap.git
-
Open Chrome and navigate to:
chrome://extensions/ -
Enable Developer mode (toggle in the top-right corner).
-
Click Load unpacked and select the
LinkSnap/folder. -
The extension icon (πΈ) will appear in your Chrome toolbar.
- Go to LinkedIn and scroll through your feed.
- Find any post β a πΈ Snap button will appear next to Like / Comment / Share.
- Click Snap. The customization dashboard opens.
- Adjust the Theme, Background, Padding, Card Width, and Text Length to your liking.
- Toggle visibility of Avatar, Post Text, Post Image, and Metrics.
- Click π₯ Download PNG or π Copy to Clipboard.
Click the extension icon in the Chrome toolbar to configure default presets that will be applied every time you open a Snap dashboard:
- Default Theme
- Default Background Gradient
- Default Padding
- Default Card Width
- Default Text Length
Settings are synced via chrome.storage.local and persist across browser sessions.
| Permission | Reason |
|---|---|
storage |
Save and restore your default settings |
host_permissions: linkedin.com |
Inject the Snap button on LinkedIn pages |
host_permissions: licdn.com |
Fetch profile/post images via the background service worker (CORS bypass) |
No personal data is collected. No external servers are contacted.
LinkedIn serves images from *.licdn.com with restrictive CORS headers. Rendering them on a <canvas> via html-to-image would result in a tainted (blank) canvas. LinkSnap uses a background service worker (background.js) to:
- Fetch the image URL server-side (extensions bypass CORS)
- Convert the binary response to a Base64 data URL
- Return it to the content script for use in the preview
LinkedIn enforces a strict Content Security Policy (CSP) that blocks dynamic import() of chrome-extension:// URLs at runtime. All scripts are therefore declared as sequential content_scripts in manifest.json, communicating via global window.linksnap* objects.
| Layer | Technology |
|---|---|
| Extension Platform | Chrome Manifest V3 |
| UI Rendering | Vanilla JS + CSS (no frameworks) |
| Image Export | html-to-image |
| Storage | chrome.storage.local |
| Fonts | System UI stack (-apple-system, Segoe UI, Roboto) |
MIT Β© 2025 LinkSnap Contributors