{"id":49950670,"url":"https://github.com/shejanmahamud/picky-share","last_synced_at":"2026-05-17T19:03:09.357Z","repository":{"id":320686572,"uuid":"1083024656","full_name":"ShejanMahamud/picky-share","owner":"ShejanMahamud","description":"Picky Share is a Chrome extension that allows you to select text from any webpage and instantly create a shareable public URL","archived":false,"fork":false,"pushed_at":"2025-10-25T08:07:23.000Z","size":81,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-25T09:20:20.898Z","etag":null,"topics":["chrome-extension","mozilla-firefox-addon"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ShejanMahamud.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-25T07:30:18.000Z","updated_at":"2025-10-25T08:08:01.000Z","dependencies_parsed_at":"2025-10-25T09:20:23.841Z","dependency_job_id":"a7529e19-240e-46fe-ab47-b322a2fe06c6","html_url":"https://github.com/ShejanMahamud/picky-share","commit_stats":null,"previous_names":["shejanmahamud/picky-share"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/ShejanMahamud/picky-share","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShejanMahamud%2Fpicky-share","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShejanMahamud%2Fpicky-share/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShejanMahamud%2Fpicky-share/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShejanMahamud%2Fpicky-share/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ShejanMahamud","download_url":"https://codeload.github.com/ShejanMahamud/picky-share/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShejanMahamud%2Fpicky-share/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33151625,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-17T09:28:26.183Z","status":"ssl_error","status_checked_at":"2026-05-17T09:27:52.702Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chrome-extension","mozilla-firefox-addon"],"created_at":"2026-05-17T19:03:08.103Z","updated_at":"2026-05-17T19:03:09.348Z","avatar_url":"https://github.com/ShejanMahamud.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Picky Share - Chrome Extension\n\n**Picky Share** is a Chrome extension that allows you to select text from any webpage and instantly create a shareable public URL using the [paste.rs](https://paste.rs/) service.\n\n## Demo\n\n![Picky Share demo](public/demo.gif)\n\n## Features\n\n- **Easy Text Sharing**: Select any text on a webpage to create a shareable link\n- **One-Click Copy**: Copy the generated link to clipboard instantly\n- **Inline Share Button**: Share interface appears directly when you select text\n- **Public URLs**: Generate permanent shareable links\n- **Share History**: View and reuse your recent shares\n- **Clean UI**: Intuitive popup and content UI with visual feedback\n- **Privacy-First**: No data stored locally; uses paste.rs service\n- **Error Handling**: Comprehensive error messages and retry logic\n- **Logging**: Built-in logging for debugging\n\n## Quick Start\n\n### Installation for Development\n\n1. Clone the repository:\n\n```bash\ngit clone https://github.com/ShejanMahamud/picky-share\ncd picky-share\n```\n\n2. Install dependencies:\n\n```bash\npnpm install\n```\n\n3. Start development server:\n\n```bash\npnpm run dev\n```\n\n4. Load the extension in Chrome:\n\n   - Open Chrome and navigate to `chrome://extensions/`\n   - Enable **\"Developer mode\"** (toggle in top right)\n   - Click **\"Load unpacked\"**\n   - Select the `dist` folder from this project\n\n5. Test the extension:\n   - Select any text on an HTTPS website\n   - Click the \"Share Text\" button that appears\n   - Copy and share the generated link\n\n### Build for Production\n\n```bash\npnpm run build\n```\n\nThe built extension will be in the `dist` folder, and a zip file for distribution will be in the `release` folder.\n\n## How It Works\n\n### User Workflow\n\n```\n1. User selects text on a webpage\n   ↓\n2. Inline \"Share Text\" button appears\n   ↓\n3. Click button → Upload text to paste.rs\n   ↓\n4. Receive shareable link\n   ↓\n5. Copy link and share with others\n   ↓\n6. Anyone can view the content at the link\n```\n\n### Technical Architecture\n\n```\nContent Script (on webpage)\n    ↓\n    └→ Detects text selection\n       Displays inline share button\n       Sends message to background worker\n\nBackground Service Worker\n    ↓\n    └→ Receives requests from content/popup\n       Validates input\n       Calls paste.rs API\n       Stores share history\n\nPopup UI\n    ↓\n    └→ Shows selected text preview\n       Displays share link\n       Manages share history\n       Toast notifications\n```\n\n## 📁 Project Structure\n\n```\nsrc/\n├── background/\n│   └── worker.ts              # Background service worker\n│                              # - Message passing\n│                              # - API calls\n│                              # - History management\n├── components/\n│   ├── Toast.tsx             # Toast notification component\n│   └── Toast.css             # Toast styles\n├── content/\n│   ├── main.tsx              # Content script entry point\n│   └── views/\n│       ├── App.tsx           # Inline share button UI\n│       └── App.css           # Inline button styles\n├── popup/\n│   ├── main.tsx              # Popup entry point\n│   ├── App.tsx               # Popup main component\n│   ├── App.css               # Popup styles\n│   ├── index.html\n│   └── index.css             # Global popup styles\n├── sidepanel/                # Side panel (extensible)\n│   ├── main.tsx\n│   ├── App.tsx\n│   ├── App.css\n│   └── index.html\n└── utils/\n    ├── config.ts             # Configuration \u0026 constants\n    ├── logger.ts             # Logging utility\n    └── pasteApi.ts           # paste.rs API client\n```\n\n## Configuration\n\nAll configuration is centralized in `src/utils/config.ts`:\n\n```typescript\nCONFIG.API; // paste.rs endpoint, timeout, max size\nCONFIG.EXTENSION; // Version, name, limits\nCONFIG.UI; // UI positioning, durations\nCONFIG.STORAGE; // Storage keys, history limits\n```\n\n## License\n\nMIT License - See LICENSE file for details\n\n## Contributing\n\nContributions are welcome! Please:\n\n1. Fork the repository\n2. Create a feature branch\n3. Commit your changes\n4. Push to the branch\n5. Open a Pull Request\n\n## Support\n\nFor issues, questions, or suggestions:\n\n- Open an issue on GitHub\n- Check existing issues first\n- Include reproduction steps\n\n## Acknowledgments\n\n- Built with [React](https://react.dev/)\n- Powered by [Vite](https://vitejs.dev/)\n- Chrome extension tooling by [CRXJS](https://crxjs.dev/)\n- Pastebin service by [paste.rs](https://paste.rs/)\n\n---\n\n**Made with ❤️ for sharing text easily**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshejanmahamud%2Fpicky-share","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshejanmahamud%2Fpicky-share","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshejanmahamud%2Fpicky-share/lists"}