SaveMyLink is a lightweight React-TypeScript Chrome extension that helps you save and organize important links from your browser. With an intuitive interface and simple functionality, you can revisit your saved links anytime with ease.
- Save URLs Manually: Add any URL using the input field and save it to your list.
- Save Current Tab's URL: Quickly capture the URL of the active browser tab.
- Persistent Storage: Saved links remain intact even after you close the extension.
- Responsive Design: A user-friendly interface styled with TailwindCSS for both desktop and mobile views.
- Validation: Ensures only valid URLs are saved.
- React: Frontend library for building user interfaces.
- TypeScript: Ensures type safety and reliability.
- TailwindCSS: Provides utility-first CSS for responsive design.
- Chrome API: Used to fetch and save the active tab's URL.
-
Clone this repository to your local machine:
git clone https://github.com/your-username/SaveMyLink.git
-
Navigate to the project directory:
cd SaveMyLink -
Install dependencies:
npm install
-
Build the project:
npm run build
-
Load the extension in Chrome:
- Open
chrome://extensions/in your browser. - Enable Developer mode.
- Click on Load unpacked and select the
buildfolder in the project directory.
- Open
- Open the extension by clicking the SaveMyLink icon in your browser toolbar.
- To manually save a link:
- Enter the URL in the input field.
- Click on "Save URL."
- To save the current tab's URL:
- Click on the "Save From Tab" button.
- View your saved links in the "Saved Links" section. Click on any link to open it in a new tab.
SaveMyLink/
├── public/
│ ├── manifest.json # Chrome extension manifest file
│ ├── index.html # HTML template
│ └── assets/ # Static assets (images, icons, etc.)
├── src/
│ ├── components/
│ │ └── LinkBox.tsx # Component to render individual saved links
│ ├── App.tsx # Main application component
│ ├── index.tsx # Entry point for React
├── package.json # Project dependencies and scripts
└── tsconfig.json # TypeScript configuration
Ensure the manifest.json file contains the following permissions:
{
"permissions": ["tabs", "activeTab"],
"host_permissions": ["<all_urls>"]
}Install the Chrome type definitions:
npm install @types/chrome --save-devUpdate tsconfig.json to include:
{
"compilerOptions": {
"types": ["chrome"]
}
}- Cannot find name 'chrome': Ensure you have installed the
@types/chromepackage and updated yourtsconfig.json. - Extension not loading: Double-check the manifest file and ensure it's placed in the
publicfolder. - Invalid URLs: Use the built-in validation to ensure URLs are correctly formatted before saving.
- Fork the repository.
- Create a new branch:
git checkout -b feature-name
- Commit your changes:
git commit -m "Add new feature" - Push to the branch:
git push origin feature-name
- Open a Pull Request.
For any inquiries or feedback, feel free to contact:
- Adegbola Adedayo: Adegboladayor@gmail.com
Follow and explore my other projects on GitHub:
- GitHub: joesef127