# LinkStack Browser Extension
A browser extension that allows you to save and sync links with the LinkStack Android app through GitHub.
- Save links from any webpage
- Automatically extract page metadata (title, description, preview image)
- Add tags to organize your links
- Sync with GitHub repository
- Compatible with LinkStack Android app
- Uses secure device flow authentication
- Install dependencies:
npm install-
Configure GitHub credentials:
- Create a new OAuth app at https://github.com/settings/developers
- Copy
config.sample.jsontoconfig.json - Update
config.jsonwith your GitHub OAuth app credentials:{ "github": { "clientId": "your-github-client-id", "clientSecret": "your-github-client-secret" } } - Note: Never commit
config.jsonto version control!
-
Build icons:
npm run build- Load the extension in Chrome:
- Open Chrome and navigate to
chrome://extensions/ - Enable "Developer mode" in the top right
- Click "Load unpacked" and select the extension directory
- Open Chrome and navigate to
- Click the LinkStack extension icon in your browser
- First time: Authenticate with GitHub using the device flow
- The extension will automatically extract information from the current page
- Add any tags and notes
- Click "Save" to sync the link to your GitHub repository
The extension uses GitHub's device flow authentication, which is secure and doesn't require storing any client secrets. When you first use the extension:
- Click "Start Authentication"
- You'll see a device code
- Click the link to open GitHub
- Enter the code shown in the extension
- Authorize the application
Your GitHub access token will be securely stored in the extension's storage.
├── manifest.json # Extension configuration
├── src/
│ ├── auth/ # Authentication logic
│ ├── github/ # GitHub API integration
│ ├── content/ # Content scripts
│ └── background/ # Background service worker
├── popup/ # Extension popup UI
├── icons/ # Extension icons
└── scripts/ # Build scripts
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Create a production build:
# Set your production GitHub OAuth credentials
export GITHUB_DEVICE_CLIENT_ID="your-prod-device-client-id"
export GITHUB_DEVICE_CLIENT_SECRET="your-prod-device-client-secret"
export GITHUB_WEB_CLIENT_ID="your-prod-web-client-id"
export GITHUB_WEB_CLIENT_SECRET="your-prod-web-client-secret"
# Build the extension
npm run buildThis will create linkstack-extension.zip in the project root.
-
Create a Chrome Web Store account:
- Go to the Chrome Web Store Developer Dashboard
- Sign up for a developer account
- Pay one-time registration fee ($5)
-
Create new item:
- Click "New Item" in the dashboard
- Upload the generated
linkstack-extension.zip - Fill in store listing details:
- Description
- Screenshots
- Store icon
- Category (Productivity recommended)
- Privacy practices
- Submit for review
The review process typically takes a few business days. Once approved, your extension will be available in the Chrome Web Store!
This project is licensed under the MIT License - see the LICENSE file for details.