{"id":26641240,"url":"https://github.com/a-chris/peffect-bookmarks-manager","last_synced_at":"2025-04-10T20:54:24.877Z","repository":{"id":122489806,"uuid":"326265067","full_name":"a-chris/peffect-bookmarks-manager","owner":"a-chris","description":"An advanced bookmarks manager extension built for Google Chrome.  Work in progress.","archived":false,"fork":false,"pushed_at":"2021-10-19T21:35:34.000Z","size":1525,"stargazers_count":8,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-24T18:35:59.359Z","etag":null,"topics":["bookmarks","chrome","chrome-extension","react","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/a-chris.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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}},"created_at":"2021-01-02T20:26:48.000Z","updated_at":"2024-01-15T23:15:16.000Z","dependencies_parsed_at":"2023-10-20T16:16:22.191Z","dependency_job_id":null,"html_url":"https://github.com/a-chris/peffect-bookmarks-manager","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a-chris%2Fpeffect-bookmarks-manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a-chris%2Fpeffect-bookmarks-manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a-chris%2Fpeffect-bookmarks-manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a-chris%2Fpeffect-bookmarks-manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/a-chris","download_url":"https://codeload.github.com/a-chris/peffect-bookmarks-manager/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248297796,"owners_count":21080312,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["bookmarks","chrome","chrome-extension","react","typescript"],"created_at":"2025-03-24T18:27:36.737Z","updated_at":"2025-04-10T20:54:24.831Z","avatar_url":"https://github.com/a-chris.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Peffect Bookmarks Manager\r\n\r\nPeffect Bookmarks Manager is an extension, written in Typescript and React, for the Google Chrome browser that aims to improve and simplify the bookmarks management inside the browser through a multi-column UI, drag-and-drop and more advanced operations. \r\n\r\nIf you are like me, with thousands of bookmarks collected during many years on the internet, you will love it.\r\n\r\nOnce installed it will replace the default Chrome bookmarks manager available at `chrome://bookmarks/`.\r\n\r\n![screenshot](readme/screenshot.png)\r\n\r\n## Features\r\n\r\n- Simple UX, minimal UI\r\n- Dark theme (I was tired of losing my eyes while organizing my bookmarks at 01:00 A.M.)\r\n- UI organized in two column, each one with it's own navigation, that allows us to navigate different folders at the same time and to have a comprehensive vision of the bookmarks.\r\n- Drag-and-drop: the most simple way to manage your bookmarks. Just select a bookmark from the left column and move it into a folder of the right column.\r\n- Some advanced operations suchs as `Sort children` that allows to sort all the bookmarks inside a folder in alphabetical ascending order but keeping the folders at the top of the list, as it happens with the file explorer we use everyday. This actually changes the order of the bookmarks saved in your browser. There is also a **recursive** version of this feature.\r\n\r\n## How to install and use it\r\n\r\nThe application is too unstable to have a released version. If you want to give it a try you can clone this repository and build the project, here is the commands to run:\r\n\r\n```bash\r\n  git clone https://github.com/a-chris/peffect-bookmarks-manager.git\r\n  cd peffect-bookmarks-manager\r\n  npm install\r\n  npm run build\r\n```\r\n\r\nthen\r\n\r\n1. go to `chrome://extensions/`\r\n2. click **Load unpacked**\r\n3. select the `dist` folder of this project\r\n4. the app is now available at `chrome://bookmarks/`, if you can't see it then try to reload the page.\r\n\r\n## TODO\r\n\r\n- [ ] Find a nice icon\r\n- [ ] Fix most of the performance issues. The other planned features depend on this.\r\n- [ ] Allow drag-and-drop for both bookmarks and folders to from the left column to the right column and viceversa. At the moment we can only **drag** a bookmark from the **left column** and **drop** to the **right column** and we can't move folders due to the number of Droppable and Draggable components which would really degrade performance.\r\n- [ ] Batch operations: each bookmark of the list should have a checkbox to select/unselect it and then we can execute CRUD operation on the selected bookmarks at the same time. This feature is a must but I need to work on the performance issues before to work on this.\r\n- [ ] Implements the extension popup\r\n- [ ] Write tests for the Redux logics\r\n\r\n## Known issues\r\n\r\n### Performance\r\n\r\nOpening multiple heavy nested bookmarks folders make the application unusable. This is much worse during the development and while using Linux machines (due to the missing hardware accelleration on my computer, I think)\r\n\r\n### Hard to debug\r\n\r\nRedux and React DevTools do not work while running this application in form of a browser extension, a workaround I found is to run it as a React application and debug it at `http://localhost:5000/dev_bookmarks.html`.\r\nThis approach works but it's not possible to modify any data or bookmarks because it uses mocked data.\r\n\r\n## Technical details\r\n\r\n### Drang-and-drop library\r\n\r\nI started the project by using `react-dnd` library, which is the de-facto standard, but the application were unusable even with a few of bookmarks and folders for each column, so I tried `dnd-kit` and I felt like it is much faster and more customizable, of course it is not perfect yet.\r\n\r\n## Contribute\r\n\r\nFeel free to fill an issue to report bugs or give advices to improve the application. I hope you guys like this project and want to help me, I would love to receive pull requests and see this project grow.\r\n\r\n## Development\r\n\r\n### Working with the Chrome extension\r\n\r\nTo work with this project in form of Chrome extension you need to run the `dev-watch` script:\r\n\r\n```bash\r\n  npm run dev-script\r\n```\r\n\r\nthen import the unpacked Chrome extension as I've explained in the **How to install and use it** section. You can start editing the code and every time you save it will compile a new version then you have to reload the page to see the changes.\r\nThe app in development mode is much slower than the one in production mode.\r\n\r\n### Working with the React application\r\n\r\nThis is just a workaround to use the React and Redux DevTools, mostly to debug the drag-and-drop, so you can't execute operation on the bookmarks for real because the bookmarks you can see are statically loaded from `mock/nodes.json`.\r\n\r\nRun:\r\n\r\n```bash\r\n  npm run dev-script\r\n  npm run serve\r\n```\r\n\r\nand go to `http://localhost:5000/dev_bookmarks.html` to see the app.\r\n\r\n\r\n### Changelogs\r\n\r\nChangelog file available [here](https://github.com/a-chris/peffect-bookmarks-manager/blob/main/CHANGELOG.md)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fa-chris%2Fpeffect-bookmarks-manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fa-chris%2Fpeffect-bookmarks-manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fa-chris%2Fpeffect-bookmarks-manager/lists"}