Skip to content

HanshalBobate/LinkSnap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

16 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Version Manifest License LinkedIn

LinkSnap Logo

LinkSnap

Turn any LinkedIn post into a beautiful, shareable screenshot β€” in one click.

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.


✨ Features

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

πŸ–₯️ Preview

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]      β”‚                                      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ“ Project Structure

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

πŸš€ Installation (Developer Mode)

LinkSnap is not yet published on the Chrome Web Store. Load it as an unpacked extension.

  1. Clone or download this repository:

    git clone https://github.com/HanshalBobate/LinkSnap.git
  2. Open Chrome and navigate to:

    chrome://extensions/
    
  3. Enable Developer mode (toggle in the top-right corner).

  4. Click Load unpacked and select the LinkSnap/ folder.

  5. The extension icon (πŸ“Έ) will appear in your Chrome toolbar.


🎯 How to Use

  1. Go to LinkedIn and scroll through your feed.
  2. Find any post β€” a πŸ“Έ Snap button will appear next to Like / Comment / Share.
  3. Click Snap. The customization dashboard opens.
  4. Adjust the Theme, Background, Padding, Card Width, and Text Length to your liking.
  5. Toggle visibility of Avatar, Post Text, Post Image, and Metrics.
  6. Click πŸ“₯ Download PNG or πŸ“‹ Copy to Clipboard.

βš™οΈ Default Settings (Popup)

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.


πŸ”‘ Permissions

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.


πŸ—οΈ Architecture Notes

CORS Image Handling

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:

  1. Fetch the image URL server-side (extensions bypass CORS)
  2. Convert the binary response to a Base64 data URL
  3. Return it to the content script for use in the preview

Script Loading Strategy

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.


πŸ› οΈ Tech Stack

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)

πŸ“„ License

MIT Β© 2025 LinkSnap Contributors

About

πŸ“Έ Turn LinkedIn posts into beautiful, customizable images inspired by CodeSnap and Ray.so. Export high-resolution cards with themes, gradients, and one-click sharing.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Contributors