Releases: hoarder-app/hoarder
0.15.0
Welcome to the 0.15.0
release of Hoarder! It's been a while since the previous release, but this release is packed with a lot of new quality of life improvements and features. This releases wouldn't have been possible without the tons of contributions from @kamtschatka, @mdsaban & @AhmadMuj. I also want to welcome our first time contributors @kou029w & @devome. If you're interested in helping us develop hoarder, you can join our #development channel on hoarder's discord.
New Features
- Bulk actions are now a thing thanks to a contribution from @mdsaban. You can now bulk favourite, archive or delete bookmarks. In the next release, you'll be able to bulk add/remove bookmarks from lists.
- Full page archival is now here (powered by monolith). This will download everything that's in the page so that you can have an offline copy of that page even if that page disappears from the internet afterwards. The archives are typically quite large, so this feature is disabled by default. If you're a true hoarder, you can enable it with
CRAWLER_FULL_PAGE_ARCHIVE=true
. - When you hoard a URL that points to a pdf or an image, Hoarder will now treat them as pdfs/images instead of links while keeping a reference to their original source. This will also allow automatic tagging to work correctly on those links. (thanks @kamtschatka!)
- You can now import your chrome bookmarks (or any Netscape compatible bookmark file) by exporting them from chrome, then drag and drop the exported file to hoarder. All links in the export will be imported. (thanks @kamtschatka!)
- For those hoarding code snippets, @kamtschatka added syntax highlighting to code blocks and a way to quickly copy the block.
- Hoarder is now available on arch linux's user repo (AUR) and is maintained by @devome. A new wiki page with installation instructions is now available.
UX Improvements
- @mdsaban revamped how both the user and admin settings pages look like.
- In the list layout, the editor will expand as you type longer notes thanks to @AhmadMuj.
- You can now paste images directly in the editor card and they'll get automatically uploaded thanks to @AhmadMuj.
Fixes
- The layout selector is now more clearly shown above the bookmark grid thanks to @mdsaban.
- Tags that were added manually were not correctly propagating to the search index. This is now fixed by @kamtschatka. You might want to trigger a reindex from the admin page if you've attached some manual tags.
- @kamtschatka fixed a long standing bug that prevented firefox users from using the browser extension without a valid HTTPS certificate.
- The editor card previously allowed you to save empty notes, this has now been fixed by @mdsaban.
- Increased list name max size to 40 chars up from 20.
- We previously had an upper limit on note sizes that we removed a while ago. However, we forgot to remove it when editing a note. @AhmadMuj fixed that.
- The CLI was previously printing invalid JSONs. Now there's a proper JSON mode thanks to @kamtschatka.
- For CJK environments, there's now a sans-serif fallback font thanks to @kou029w.
- Automatically inferred tags could have contained an extra space in the beginning of the tag, @kamtschatka fixed that.
Screenshots
Bulk Editing in Action
Screen_Recording_2024-06-26_at_10.46.49_AM.mp4
Revamped Admin Page
Revamped Settings Page
Full Page Archives
![Screenshot 2024-07-06 at 11 47 31 AM](https://private-user-images.githubusercontent.com/2418637/346268448-ba0c05d8-5194-4e2a-8c7e-bf02669252f1.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE5NDk1NDIsIm5iZiI6MTcyMTk0OTI0MiwicGF0aCI6Ii8yNDE4NjM3LzM0NjI2ODQ0OC1iYTBjMDVkOC01MTk0LTRlMmEtOGM3ZS1iZjAyNjY5MjUyZjEucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcyNSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MjVUMjMxNDAyWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YTk5ZjgyMDFlOWMwYmMwYzc4MmExOGUzMWExOGQwNDFiNWQzODdlYWVlMTBkNzRiNWUwYjkxZWRjZGU2NjQ3ZiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.BchEtU1-QuYNNF6Hl1O1iGUlRU2qSRXYtOqnX_VlPqs)
PDF/Image URL recognition
Screen.Recording.2024-07-06.at.11.50.14.AM.mov
Upgrading
To upgrade:
- If you're using HOARDER_VERSION=release, run
docker compose pull && docker compose up -d
. - If you're pinning it to a specific version, upgrade the version and then run
docker compose pull && docker compose up -d
.
All Commits
- fix(web): Add sans-serif fallback for Inter font in CJK environments (#272) by @kou029w in #72f03b2
- fix: Renaming full page archive asset file doesn't work inside docker. Fixes #273 by @MohamedBassem in #5e9b04a
- feat: Add bulk edit option for bookmarks. Fixes #84 (#259) by @mdsaban in #d193d9b
- fix: fixed an issue that would half the textarea in grid layout after submitting a bookmark (#269) by @kamtschatka in #bf92fa3
- refactor: fixed typos in BookmarkTypes (#268) by @kamtschatka in #4e70fe3
- refactor: drag and drop improvements (#264) by @kamtschatka in #9cd6170
- fix: Increase list name size to max 40 chars up from 20. Fixes #254 by @MohamedBassem in #9883c6b
- fix: Fix duplicate bookmarks in links with assets by @MohamedBassem in #3d495cd
- refactor: added the bookmark type to the database (#256) by @kamtschatka in #e648646
- refactor: remove redundant code from crawler worker and refactor handling of asset types (#253) by @kamtschatka in #ccbff18
- ui: refactor admin settings page (#249) by @mdsaban in #e107f8b
- ui: Changes for user settings page (#251) by @mdsaban in #a637130
- feature: Automatically transfer image urls into bookmared assets. Fixes #246 by @MohamedBassem in #1071095
- ui(web): move layout selector to main screen (#252) by @mdsaban in #8f0e9b1
- refactor: extract assets into their own database table. #215 (#220) by @kamtschatka in #9ce6958
- fix(landing): image width on landing page (#250) by @mdsaban in #0f54a18
- feature: add support for PDF links. Fixes #28 (#216) by @kamtschatka in #be1b7f7
- fix(web): Fix save action on empty card. Fixes #225 (#243) by @mdsaban in #ccfff6b
- ui: Improve landing page for homepage (#238) by @mdsaban in #16f21bf
- feature(web): Enhance the bookmark textarea in the list layout (#247) by @AhmadMuj in #ac05ecf
- readme: broken readme links (#233) by @mdsaban in #348bd80
- fix: Remove the bookmark update text limit (#244) by @AhmadMuj in #671fc32
- fix(web): text paste bug introduced with image paste (#232) by @mdsaban in #23faf46
- docs: add Arch Linux installation docs (#223) by @devome in #dc19313
- feature(web): support pasting image in the Editor Card (#228) by @AhmadMuj in #6823caf
- release(cli): Bump CLI version to 0.13.5 by @MohamedBassem in #219329b
- release(cli): Bump CLI version to 0.13.4 by @MohamedBassem in #5f263a3
- fix(cli): Bookmark list output is not a valid JSON. Fixes #150 (#181) by @kamtschatka in #cde9726
- refactor: Extract the bookmark polling logic into a separate shared component by @MohamedBassem in #6928800
- fix: Trigger search re-index on bookmark tag manual updates. Fixes #208 (#210) by @kamtschatka in #546139e
- feature(web): Add syntax highlighting to code blocks and a quick copy button. Fixes #195 (#197) by @kamtschatka in #be1bb38
- fix(cli): Fix CLI version in help message. Fixes #139 by @MohamedBassem in #f7a7753
- feature(extension): Add a context menu to open your hoarder saves. Fixes #188 (#206) by @kamtschatka in #2d0af0b
- fix(web): Changed the toast to contain a more detailed error message in case the bookmark is already part of the list. Fixes #179 (#213) by @kamtschatka in #049e79d
- fix(workers): AI infered tags can contain " " at the beginning. Fixes #184 (#194) by @kamtschatka in #be8b91f
- fix(crawler): Only update the database if full page archival is enabled by @MohamedBassem in #9d89f98
- docs: Document the new CRAWLER_FULL_PAGE_ARCHIVE flag by @MohamedBassem in #9198c1b
- feature: Full page archival with monolith. Fixes #132 by @MohamedBassem in #dedc5fb
- feature: Allow import Netscape HTML format (#163) by @kamtschatka in #033e8a2
- build: Let the upload-artificat action do the compression by @MohamedBassem in #bb431be
- release(extension): Bump extension version to 1.2.1 by @MohamedBassem in #8688dd4
- build: Add a workflow to build the extension by @MohamedBassem in #c9b1307
- fix(extension): Drop the https restriction in firefox. Fixes #23 by @kamtschatka in #875cc35
- fix(cli): Switched to cursorV2 to make use of the fix for #140 and prevent infinite loops (#176) by @kamtschatka in #6dc67cf
0.14.0
Welcome to the 0.14.0
release of Hoarder! I want to welcome our two new contributors @kamtschatka who added a bunch of quality of life improvements and @lilacpixel who fixed a bunch of cosmetic issues in Hoarder! I also want to thank @Collectathon who published Hoarder's template on unraid which was a very popular request from unraid users!
Note: You probably want to read the Upgrading section for that release. No breaking changes, but some recommendations are mentioned.
Announcements
- Hoarder is now available on the unraid store thanks to @Collectathon! The docs now include an unraid installation section here.
- The iOS app has finally been accepted in the app store (link). Thanks a lot to all the beta testers during that time! You can still continue using TestPilot if you want the latest versions fasters, but you can also now switch to the prod version if you want stability.
New Features
- Link deduping is here. When adding a link that you've hoarded before, it won't be re-added and instead you'll be prompted to go to your original link. When adding it from the browser extension, the existing bookmark's tags and lists will be shown allowing you to alter them if needed.
- Note: Unless you're on the latest mobile version, a deduped link will be silently ignored (without any visual indications). Upgrade to the latest version to get a message telling you that it already exists.
- To quickly merge tags, @kamtschatka added support for dragging and dropping tags on each others to merge them together! To aid with the merging, you can now sort the tags in the "All tags" page by name instead of count.
- You can now batch add multiple links to the bookmark editor card (one per line) and hoarder will import them in one go.
- Hoarder can now take full page screenshots (instead of only the top of the page) thanks to @kamtschatka. This is disabled by default as it consumes a lot of space, but can be enabled by setting
CRAWLER_FULL_PAGE_SCREENSHOT=true
. - In the list management dialog, you can now quickly archive a bookmark after adding it to lists. This is useful to those who follow
Inbox Zero
for their homepage. - Hoarder is now using openai's new model
gpt-4o
by default for image tagging. It's faster and 50% cheaper!
Fixes
- Local tagging with Ollama is now more robust thanks to @kamtschatka refactoring the prompt a bit so that model doesn't lose context on what the instructions actually are.
- Bookmarks that were created in the same second (usually as part of a mass import) were sometimes skipped between pages. This is now fixed.
- A lot of cosmetic touches by @lilacpixel:
- Clicking on images in the bookmark list now opens the bookmark preview popup.
- Clicking on an image in the preview popup will open it in full quality in a new browser tab.
- Long titles used to overflow in modals and in the bookmark grid. This is also fixed by @lilacpixel.
- The bookmark preview popup's input fields now have full width to better show the available tags.
- The tags in the tags editor are now sorted lexicographically.
Screenshots
Link Deduping
![Screenshot 2024-05-24 at 12 40 28 AM](https://private-user-images.githubusercontent.com/2418637/333370862-da0c6fa8-de12-4b0c-9ca2-9a6493aa1ddf.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE5NDk1NDIsIm5iZiI6MTcyMTk0OTI0MiwicGF0aCI6Ii8yNDE4NjM3LzMzMzM3MDg2Mi1kYTBjNmZhOC1kZTEyLTRiMGMtOWNhMi05YTY0OTNhYTFkZGYucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcyNSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MjVUMjMxNDAyWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MzkwZDM1MmZkN2Q5MWIzNTE4YmMyYzg5ZWQwYWE5MzgyMjYzNWRlYmQxYjc5ZWQ4ZjgyZjI2NzdiNmMzMDUwMyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.nSHryv1btQDTOSeoKfFu8SXwTmx4WMJmdBcCM7zF74w)
New Archive Button in "Manage Lists" Dialog
![Screenshot 2024-05-24 at 12 41 05 AM](https://private-user-images.githubusercontent.com/2418637/333370946-c728a618-5686-4540-8e55-9d284fc2eebe.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE5NDk1NDIsIm5iZiI6MTcyMTk0OTI0MiwicGF0aCI6Ii8yNDE4NjM3LzMzMzM3MDk0Ni1jNzI4YTYxOC01Njg2LTQ1NDAtOGU1NS05ZDI4NGZjMmVlYmUucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcyNSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MjVUMjMxNDAyWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NzNiZWVmNTRhZjI1YWYwMTNjM2RlNTBiNzQxNGE2YmZmZTk5ZWQyNmQ5NDZlYTQ4MmU0NmU1M2QwNDBkNTkyMSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.t2J9iaxX0_dccxy5DSLjyx8XVYgaYw7RbizImg0_eKE)
Multi-URL import
![Screenshot 2024-05-24 at 12 41 41 AM](https://private-user-images.githubusercontent.com/2418637/333371014-092bb332-aadf-4e9d-b534-869706ca8513.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE5NDk1NDIsIm5iZiI6MTcyMTk0OTI0MiwicGF0aCI6Ii8yNDE4NjM3LzMzMzM3MTAxNC0wOTJiYjMzMi1hYWRmLTRlOWQtYjUzNC04Njk3MDZjYTg1MTMucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcyNSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MjVUMjMxNDAyWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZGRlOTJmODRlMzgzNzQwMDZkNDgxYmJjZjdlYzZkMDYwYmM0MzhlZDkwOWEyYzQ4MzQxYWFhYzc4ODI3Y2VkNyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.uXuaH7ykT97OpxSil0wB3tmBc2J-DO8QtbEprZzawPQ)
Drag and Drop tag merging
Untitled.mov
Upgrading
- The repo got moved to its own organization, and the docker images unfortunately didn't get moved. which means you might want to update the docker images to the new urls. I'll keep updating the old images for the foreseeable future though. In your docker-compose file, change:
ghcr.io/mohamedbassem/hoarder-web
toghcr.io/hoarder-app/hoarder-web
ghcr.io/mohamedbassem/hoarder-workers
toghcr.io/hoarder-app/hoarder-workers
- To improve chrome's stability for large pages, add
--disable-dev-shm-usage
to the existing list of arguments of the chrome container.
To upgrade:
- If you're using HOARDER_VERSION=release, run
docker compose pull && docker compose up -d
. - If you're pinning it to a specific version, upgrade the version and then run
docker compose pull && docker compose up -d
.
All Commits
- build: Attempt to fix docker permission error - @MohamedBassem in eac54e6
- docker: Update docker images to point to the new repo URLs - @MohamedBassem in 6839289
- docs: Change references from the old repo URL to the new one - @MohamedBassem in 1506ff0
- fix(web): Stop pre-loading all the bookmark lists in the bookmark grid - @MohamedBassem in 8274d07
- feature(web): Add an archive button to list management dialog - @MohamedBassem in f99f4c0
- fix(web): Sort the tags in the TagsEditor of the preview dialog. Fixes #171 - @MohamedBassem in bfcf0a4
- fix: Fix missing bookmarks during pagination if they got created in the same second. Fixes #140 - @MohamedBassem in e8b4775
- feature(web): Allow adding multiple URLs at once #158 (#167) - @kamtschatka in d1ad84b
- ui(web): Set tag input field in preview modal to 100% width to fix overflow issues on select dropdown (#165) - @lilacpixel in cb62db7
- feature(inference): Improve ollama tagging (#162) - @kamtschatka in fdc27d3
- docs: Add documentation for installing hoarder on unraid. Fixes #81 - @MohamedBassem in eb218ce
- fix: Add the missing bookmark URL index migration - @MohamedBassem in c9dc23f
- fix(web): Simplify the logic for tag drag and dropping - @MohamedBassem in e5fd9ee
- feature(web): Improve merging of tags by simple drag and drop #144 (#154) - @kamtschatka in 1fee129
- build: An empty commit to fix vercel's build - @MohamedBassem in 6eea671
- feature(inference): Upgrade the default vision model to the new gpt-4o-2024-05-13 which is faster and 2x cheaper - @MohamedBassem in 168aed0
- feature(web): Clicking an image in the preview modal will open it in a new tab (#159) - @lilacpixel in c0aa6d5
- ui(web): Fixed overflow issues for very long titles (#152) - @lilacpixel in 747efa5
- feature(crawler): Allow connecting to browser's websocket address and launching the browser on demand. This enables support for browserless - @MohamedBassem in 39025a8
- feature(worker): Allow configuring redis with a password - @MohamedBassem in f64a5f3
- fix(crawler): Add --disable-dev-shm-usage to chrome container - @MohamedBassem in 9b5ef3a
- feature(mobile): Show server address in the settings - @MohamedBassem in 8521580
- ui(mobile): Add horizontal margins to the bookmark cards - @MohamedBassem in e6c9ef4
- tests: Add tests for bookmark deduplication - @MohamedBassem in ecfcba5
- feature: Take full page screenshots #143 (#148) - @kamtschatka in d33be14
- feature: Clicking preview for image assets brings up the details modal (#147) - @lilacpixel in cbc8dde
- Development Instructions are incomplete/not working (fixes #145) (#146) - @kamtschatka in 1e317d9
- landing: Add google and ios badges to the landing page - @MohamedBassem in edf5fdb
- readme: Add the iOS app store link to the readme and docs - @MohamedBassem in 7f3e482
- feature: Dedup links on creation. Fixes #49 - @MohamedBassem in 32b5a02
- build: Add iOS and android builds to github actions - @MohamedBassem in 02ef4bf
- fix(cli): Remove limit from array length when listing bookmarks. Fixes #135 - @MohamedBassem in 2ed134e
- build: Add a workflow to auto publish the CLI to npm - @MohamedBassem in 79777bd
- fix(cli): Allow bookmark listing to fetch all pages instead of only the first one. Fixes #135 - @MohamedBassem in 27f45d5
- fix: Allow zod to coerce the crawler timeout from strings. Fixes #134 - @MohamedBassem in 81e49fa
0.13.1
0.13.0
Welcome to the 0.13.0
release of Hoarder! This release is packed with a lot of new features to better organize your bookmarks. This includes: Nested lists, tag merging, a new suggested cleanups page, and more! Crawler also now takes screenshots and downloads the banner images locally. The CLI is now more powerful giving you ability to do mass modifications (e.g. archiving/adding to lists) until the mutli-select feature is developed.
Note: You probably want to read the
Upgrading
section for that release. No breaking changes, but some nice recommendations are mentioned.
Announcements
- The android app has been finally released on the play store (link)! Thanks a lot to all the beta testers during that time! Go check it out (and maybe give it a review while you're there 😉). The iOS app is still stuck in apple's review queue unfortunately, so you still need to use the beta version for now.
- The new chrome/firefox extensions allow you to quickly add tags and lists to your newly saved bookmarks!
New Features
- Nested lists are here! When you're creating a new list, you can choose a parent for that list and it'll be nested under it. The
All lists
page has been revamped to support showing the list tree. - Merging tags is now a thing.
- A new
Cleanups
page that will suggest to you ways to cleanup your collection. As a start, it now detects potentially duplicate tags and suggests merging them. Currently, the algorithm is very simple and will detect duplicates if they have different cases (e.g.Chess
andchess
), and also tags that differ by at most one character (e.g.web-devopment
andWeb development
). The inference job now is also fixed to avoid creating those duplicates in the first place.- In the future, tag duplication detection will be able to suggest merging semantically equivalent tags.
- The crawler now by default downloads the banner images. This is to protect against bookmarked links going away, but also to get around rate limits when you have multiple bookmarks from the same website (e.g. github). This will result into a larger storage space utilization. If you don't care about that, you can disable by setting
CRAWLER_DOWNLOAD_BANNER_IMAGE=false
. - The crawler also will now take screenshots of the website it crawls and allows you to see them in the preview page. The screenshots will also be used as a fallback banner for links that don't have an image. Again, this will use some extra storage, so if you don't want screenshots, you can disable them with
CRAWLER_STORE_SCREENSHOT=false
. - You can now edit lists to change its name or update its parent.
- You can now see (and manage) all the bookmarks a list is in from the new
Manage Bookmarks
drop down option. - You can now delete tags from the
All tags
page. TheAll tags
page will also show you the "unused" tags and gives you a quick way to mass delete them. - The CLI got a lot of new commands. You can now update bookmarks from the CLI (e.g. to archive or favourite them), and you can add or remove bookmarks from lists. You can have a look on the updates docs page here. Also, you can now get the CLI directly from NPM using
npm install -g @hoarderapp/cli
. The CLI is very useful for now to do mass actions on your bookmark while we develop the multi-select feature #84.
Fixes
- When you preview a bookmark (using the maximize button), the address bar of the browser will now show a unique link for that bookmark.
- The crawler now can correctly find the images in amazon links.
- The search indexing worker was in some rare cases incorrectly reporting success while it actually failed. This is now fixed.
Screenshots
The new Cleanups page
![Screenshot 2024-04-26 at 2 19 02 PM](https://private-user-images.githubusercontent.com/2418637/326063378-289efd35-34e2-4d2a-860e-b91774ae46be.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE5NDk1NDMsIm5iZiI6MTcyMTk0OTI0MywicGF0aCI6Ii8yNDE4NjM3LzMyNjA2MzM3OC0yODllZmQzNS0zNGUyLTRkMmEtODYwZS1iOTE3NzRhZTQ2YmUucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcyNSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MjVUMjMxNDAzWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YjYxN2E1YTg0MGM1MTA1MjI5MjQ5YjU3YWZlNTM5MTMwODJlNmEwOGRjNTUzNmFiMzQ4Y2NiZTgzZGMzM2JlMSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.VB_8E0teYIsDbKdo1ru2UyeOWSQB0uuNwPjh0s_m-sA)
![Screenshot 2024-04-26 at 2 17 28 PM](https://private-user-images.githubusercontent.com/2418637/326063367-12d035e8-a4ee-4551-849c-26b5705c151a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE5NDk1NDMsIm5iZiI6MTcyMTk0OTI0MywicGF0aCI6Ii8yNDE4NjM3LzMyNjA2MzM2Ny0xMmQwMzVlOC1hNGVlLTQ1NTEtODQ5Yy0yNmI1NzA1YzE1MWEucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcyNSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MjVUMjMxNDAzWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MDBmZGUzMzM2NjRmMmE1NTkwYTU5NDdkYjBiNTllZDY5NDI0MGRhMDMwMzU0ZGRhZWRmODUyMDYyZWI2ZDg3YyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.ywd5obYNKV47loBSrpl2Hwbk9P3Bgaij9Rfd9ZizotE)
Viewing and mass deleting unused tags
![Screenshot 2024-04-26 at 2 18 21 PM](https://private-user-images.githubusercontent.com/2418637/326063374-08cb6b13-0b42-41af-9739-7571f38cfa67.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE5NDk1NDMsIm5iZiI6MTcyMTk0OTI0MywicGF0aCI6Ii8yNDE4NjM3LzMyNjA2MzM3NC0wOGNiNmIxMy0wYjQyLTQxYWYtOTczOS03NTcxZjM4Y2ZhNjcucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcyNSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MjVUMjMxNDAzWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YmY3YTc4MzBmYTNlOWE4ZGRiZGI3YWU4ZWRkNDY1ZGJjYTJjMmQ3NDExMWM2Mjc0YWYzZjMzYzMyNWRiMTJiMCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.NU4CTmigqngI1X3m2nTui9-i3QeGKG6QuOwrjtXrBi8)
Nested lists
![Screenshot 2024-04-26 at 6 41 00 PM](https://private-user-images.githubusercontent.com/2418637/326064456-d7bd9897-f1da-4343-87e8-d54c1a17fa41.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE5NDk1NDMsIm5iZiI6MTcyMTk0OTI0MywicGF0aCI6Ii8yNDE4NjM3LzMyNjA2NDQ1Ni1kN2JkOTg5Ny1mMWRhLTQzNDMtODdlOC1kNTRjMWExN2ZhNDEucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcyNSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MjVUMjMxNDAzWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZDBhNjg0NDcyMGM2Y2RhODg0M2M3M2FiY2NiNjM0Y2UxZTI1NGNkZmZhNTUxZTI1MTUxYWE0NDE4ZTJlNGFkMyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.0vvZlkxufVQ7tIQ6SBKCsrFgbeViQZw2Ry5tRo3Ukso)
![Screenshot 2024-04-26 at 5 44 11 PM](https://private-user-images.githubusercontent.com/2418637/326063380-06e642e2-3a4f-4917-87bd-00bdfb4273e0.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE5NDk1NDMsIm5iZiI6MTcyMTk0OTI0MywicGF0aCI6Ii8yNDE4NjM3LzMyNjA2MzM4MC0wNmU2NDJlMi0zYTRmLTQ5MTctODdiZC0wMGJkZmI0MjczZTAucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcyNSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MjVUMjMxNDAzWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MWI3YTgyZGIyOGIyZjVkODkzYmRmMjQ1ZmRiZmM0ZGJhMzk0OTg3ZmU2MmY3YjMxYzliMjkzODMwMWRkNTRkOSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.6vss3E_uMTi9xNaV4YISe2agL3stq7dGnRZnFad-ikE)
The new extension capabilities
Quick tag deletion
![Screenshot 2024-04-26 at 6 40 31 PM](https://private-user-images.githubusercontent.com/2418637/326064608-b59fd2ce-5d62-4db8-900d-0d29e24df3df.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE5NDk1NDMsIm5iZiI6MTcyMTk0OTI0MywicGF0aCI6Ii8yNDE4NjM3LzMyNjA2NDYwOC1iNTlmZDJjZS01ZDYyLTRkYjgtOTAwZC0wZDI5ZTI0ZGYzZGYucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcyNSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MjVUMjMxNDAzWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NzViNzJjYTQ5NDg3Y2U4MGVkOTYyOWJjNGFhNTFhMzYwYzM2YTg4MDQwYjQ5ODVlMzFiZmU5NzMxMWNkYmMzYSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.f9d7jEKYOSNMl-MXFAuSYP3zBqhU04gUdUZTRuv0pDg)
Viewing the screenshots
![Screenshot 2024-04-26 at 7 18 11 PM](https://private-user-images.githubusercontent.com/2418637/326073572-4a8b2ec6-22c3-4518-8624-16278331c648.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE5NDk1NDMsIm5iZiI6MTcyMTk0OTI0MywicGF0aCI6Ii8yNDE4NjM3LzMyNjA3MzU3Mi00YThiMmVjNi0yMmMzLTQ1MTgtODYyNC0xNjI3ODMzMWM2NDgucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcyNSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MjVUMjMxNDAzWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MmRmNmEwZWY3ZWFjYzVkOTQ4ZWM3MzMwOWNjZjllNDhkYWE3OTlhZmFjYWUyZWI2YjE1ODBmODBkNDUzODI1ZSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.J-HWgru25jPzbTC-kbCHmm0bnEn5GPIBz4b8vDGT19w)
Upgrading
- If you're using HOARDER_VERSION=release, run docker compose pull && docker compose up -d.
- If you're pinning it to a specific version, upgrade the version and then run docker compose pull && docker compose up -d.
After Ugprading:
- Now that we're taking screenshots for pages, you'll want to tell chrome to hide scrollbars by adding
--hide-scrollbars
to thecommand
section under the chrome container. Check the update docker compose (here) for reference on how to do it. - Apparently, meillisearch collects analytics by default unless you opt out. Add
MEILI_NO_ANALYTICS=true
in the environment section of the meillisearch container if you don't want that. Check the update docker compose (here) for reference on how to do it. Thanks for the report and fix @vivekmiyani! - The release introduced the ability to download banner images and take screenshots from webpages. Those will be applied only on newly crawled pages. if you want to do the same for your old bookmarks, you can re-crawl all the links from the admin panel by pressing on the
Recrawl All Links (Without Inference)
. Make sure you click the(Without inference)
button otherwise you'll be re-running automatic tagging which can be expensive.
All commits
- docker: Attempt to improve build times by changing cache backend by @MohamedBassem in #5d805e2
- fix(inference): Attempt to reuse existing identical tags by @MohamedBassem in #b4c7de2
- feature: Allow users to delete all unused tags in one go by @MohamedBassem in #7d163f2
- fix: Fix error when merging empty tags by @MohamedBassem in #0b02f94
- fix: Change tag listing API to return unused tags by @MohamedBassem in #5aabbec
- fix: Re-index affected bookmarks when one of their tags gets updated by @MohamedBassem in #4efcac7
- feature(crawler): Allow increasing crawler concurrency and configure storing images and screenshots by @MohamedBassem in #a91aff2
- feature: A new cleanups page to suggest ways to tidy up your bookmarks by @MohamedBassem in #9dace18
- feature(web): Add ability to rename, merge and fast delete tags. Fixes #105 (#125) by @MohamedBassem in #d07f2c9
- docs: Update docs to include the links to the android app by @MohamedBassem in #da6df7c
- fix(web): Fix hydration error in the bookmark preview page by @MohamedBassem in #92cff68
- ui(web): Show bookmark URL when maximizing a bookmark by @MohamedBassem in #ec15d20
- docs: Update the CLI docs to reference the published NPM package by @MohamedBassem in #4804f98
- style(cli): Change all help messages to lowercase by @MohamedBassem in #ac2f78f
- build(cli): Prepare for publishing CLI to npm by @MohamedBassem in #3352a3e
- feature(cli): Add ability to manipulate lists, tags and update bookmarks by @MohamedBassem in #af0cf9c
- fix(crawler): Better extraction for amazon images by @MohamedBassem in #5dac180
- fix(docs): Update the social image from the generic docusaurus image by @MohamedBassem in #ab92969
- feature(web): Change the AddList modal to allow adding and removing bookmarks from lists by @MohamedBassem in #88b92d8
- fix(workers): Increase robustness of search worker and add extra logging. Fixes #118 by @MohamedBassem in #c1baada
- fix(workers): Set a modern user agent and update the default viewport size by @MohamedBassem in #cca81ca
- release(extension): Release version 1.2.0 by @MohamedBassem in #3d1eeef
- feature(extension): Allow adding tags and lists to newly hoarded bookmarks by @MohamedBassem in #77b1aba
- fix(web): Fix missing link card image in list view by @MohamedBassem in #0e26095
- ui(extension): Use shadcn and better dark mode support by @MohamedBassem in #7ddcb5f
- fix(mobile): Add a bigger button to collable the nested list by @MohamedBassem in #5f599f2
- fix: Update docker-compose.yml (#119) by @Rosin1 in #cbdaf56
- docker: Disable meilisearch analytics (#117) by @vivekmiyani in #9b9cdcf
- fix: Ensure that downloaded asset images are from the allowed content types by @MohamedBassem in #12c682b
- fix: Use next/image for serving bookmark images by @MohamedBassem in #e12fe02
- feature: Allow recrawling bookmarks without running inference jobs by @MohamedBassem in #4c589d4
- feature: Download images and screenshots by @MohamedBassem in #4402e6f
- mobile: Bump mobile version to 1.5 by @MohamedBassem in #b4a13ce
- fix(mobile): Fix the color of the collapsible triangle...
0.12.2
Another small hotfix for the 0.12.0 release.
Fixes:
- Preferred layout was getting lost when the browser is closed and reopened. This is fixed in this release.
Commits:
- fix: Fix user local settings cookie to have max age as by default it's a session cookie. Fix #104 by @MohamedBassem in bb44ebc
0.12.1
This is a small hotfix for the 0.12.0 release.
- fix: Fix slice call in the content truncation logic which was resulting in excessive usage of context tokens. Fixes #94 by @MohamedBassem in #4629dac
The bug fixed in this release resulted into mistakingly truncating the first 1500 words in large contents during tag inference (instead of taking only the first 1500 words). This had two side effects for bookmarks with a lot of content (> 1500 words):
- Due to the truncation of the first 1500 words, you might have got some sub optimal tags for content with >1500 words.
- For bookmarks with huge content size, you might have got inference failures due to hitting the context limits of the models you're using. And for the ones that were under the context size, they might have taken longer and used more credits than intended.
If this is a problem for you, you can trigger a re-index for the affected bookmarks.
0.12.0
Welcome to the 0.12.0
release of hoarder! This release is special because we have our first full feature contribution by @AhmadMuj. Welcome to the contributors list @AhmadMuj! If you're interested in helping us develop hoarder, you can join the new #development
channel on hoarder's discord.
New Features
- Raspberry Pi support is now here!
- You can now upload pdfs and get them indexed and automatically tagged thanks to @AhmadMuj!
- You can now change the layout of the bookmark list. We're starting with three layouts:
Masonry
which was the layout used before that release.Grid
where every card has a fixed height resulting in a strict grid.List
which shows all bookmarks under each other in a list (screenshot attached later in the release notes).
- Previously, you were only allowed to upload items from the homepage. Now you can upload directly in a list, tag or even the favourited/archived list.
- Previously, the admin panel only allowed you to recrawl all bookmarks. @AhmadMuj added support for only crawling the failed ones (and showed some stats about them there as well).
- The default OpenAI image model got upgraded to the new
gpt-4-turbo
which should be more robust and accurate while costing the same. - You can now add titles to bookmarks (and edit existing ones). Uploaded assets (images and pdfs) now automatically get their filename as a title. A new bookmark action bar got added to the bookmark preview page.
Changes in Behavior
- Previously, archived items were hidden from almost everywhere except the archived list which made it not very different from just deleting the item. Starting from this release,
archived
items are only hidden from the homepage but will continue appearing in lists, search, etc. This is more aligned with other bookmark managers (e.g. pocket). With this change, you can now usearchiving
to achieveInbox Zero
on your homepage by archiving the items that no longer require your attention or articles that you've already read.
Fixes
- Crawling robustness:
- Default crawling timeout increased from
30s
to60s
and default navigation timeout increase from10s
to30s
. Both can now be controlled with the env variablesCRAWLER_JOB_TIMEOUT_SEC
andCRAWLER_NAVIGATE_TIMEOUT_SEC
respectively. You might want to increase them further if you're running hoarder on a low-perf machine or have a slow internet connection. - Crawling jobs are now retried 5 times before giving up on them.
- Crawler error messages are now more descriptive to help debug issues.
- Default crawling timeout increased from
- You no longer need to refresh the
All tags
page when tags are changed. - When a user is deleted, their on disk assets were not correctly deleted. This is now fixed.
- Fixed error when adding notes with a colon in the first word.
Screenshots of the new features
The new action bar in the preview page along with the new support for editing titles.
![Screenshot 2024-04-15 at 8 19 31 PM](https://private-user-images.githubusercontent.com/2418637/322602074-d34b8bbf-b15f-4644-a1ca-7b63aa356baa.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE5NDk1NDMsIm5iZiI6MTcyMTk0OTI0MywicGF0aCI6Ii8yNDE4NjM3LzMyMjYwMjA3NC1kMzRiOGJiZi1iMTVmLTQ2NDQtYTFjYS03YjYzYWEzNTZiYWEucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcyNSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MjVUMjMxNDAzWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NzM4OTc2ZWNmOTE3ZmE4NzBjNTM5ZWRhOTJjYzU4ZGI3NDdiMGIwYTczMTIzYzJhYTBiZGUwYzVhZWE4YjMwZSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.9a3VezNE99BxRskzwtNIeNtOvOJJRf7kOrRSSwOMllE)
The new List
view and its toggles.
![Screenshot 2024-04-15 at 8 18 54 PM](https://private-user-images.githubusercontent.com/2418637/322602079-f1e6548b-2db0-4387-be2e-69585960938b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE5NDk1NDMsIm5iZiI6MTcyMTk0OTI0MywicGF0aCI6Ii8yNDE4NjM3LzMyMjYwMjA3OS1mMWU2NTQ4Yi0yZGIwLTQzODctYmUyZS02OTU4NTk2MDkzOGIucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcyNSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MjVUMjMxNDAzWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZDEyMzM1YTUzNjczNGU1ZGMwZjAyMmUzYTlmZGI5Njk4NmJjMTRlZmQxNzIwY2Q3MzIwOGRkMWQwODIyYWFmOCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.Lmqo81ATOZhOMBjbsg_-OvjUJH3_z1LurDlIgMAL2CU)
![Screenshot 2024-04-15 at 8 19 06 PM](https://private-user-images.githubusercontent.com/2418637/322602077-b5a6d17f-590e-41fb-8544-8b9decebad3c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE5NDk1NDMsIm5iZiI6MTcyMTk0OTI0MywicGF0aCI6Ii8yNDE4NjM3LzMyMjYwMjA3Ny1iNWE2ZDE3Zi01OTBlLTQxZmItODU0NC04YjlkZWNlYmFkM2MucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcyNSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MjVUMjMxNDAzWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YzcxNjhlNmEwNTg1Njg3ZTQ2NTRjOWU5YjAyZjNkMDU3ODFjMmViZGFhMDdkMjczYWFjOGI5OWMxOTNmY2JjYSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.CKufYxCzKL70YeJ2HYH_ONSmlAqhY5Cv0Gz_qxGF0B8)
PDF support
![Screenshot 2024-04-15 at 8 33 36 PM](https://private-user-images.githubusercontent.com/2418637/322605395-a7839791-8fa8-4e7b-8322-98daa0464a36.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE5NDk1NDMsIm5iZiI6MTcyMTk0OTI0MywicGF0aCI6Ii8yNDE4NjM3LzMyMjYwNTM5NS1hNzgzOTc5MS04ZmE4LTRlN2ItODMyMi05OGRhYTA0NjRhMzYucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcyNSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MjVUMjMxNDAzWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MWQ3ZDkwYjAwNGIwYjhjYzQ2YzBkM2IxYzUyYzNjZjc1NmQ4MjI1YjE4NjFhM2ZmMDU2NGYzZGU5ZWY3MWUyMyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.HI89-jwev1vXF32oWQzg0Q4v5lrbWZWbz7YLcqciPKA)
Upgrade
- If you're using
HOARDER_VERSION=release
, rundocker compose pull && docker compose up -d
. - If you're pinning it to a specific version, upgrade the version and then run
docker compose pull && docker compose up -d
.
All Commits
- feature: Add title to bookmarks and allow editing them. Fixes #27 by @MohamedBassem in 81e0b28
- fix(web): Fix some JS console errors in the preview page by @MohamedBassem in 5c9acb1
- feature(web): Allow changing the bookmark grid layout (#98) by @MohamedBassem in 4f17ea6
- fix: Differentiate between pending in db and in redis in admin job stats by @MohamedBassem in cf0df0e
- feature: Recrawl failed links from admin UI (#95) by @AhmadMuj in 95cf8f4
- fix: Increase default navigation timeout to 30s, make it configurable and add retries to crawling jobs by @MohamedBassem in 238c296
- feature: Add PDF support (#88) by @AhmadMuj in #be622e5
- feature(inference): Upgrade the default vision model to the new gpt-4-turbo by @MohamedBassem in 2806701
- fix(crawler): Skip validating URLs in metascrapper as it was already being validated. Fixes #22 by @MohamedBassem in a9242a5
- fix: Delete the API key on logout from phone or extension by @MohamedBassem in f696d33
- fix(web): Fix the toggle theme button allowing clicks from anywhere in the dropdown item by @MohamedBassem in 5ab6c33
- fix: Fix type in the useAddBookmarkToList hook by @MohamedBassem in cae543c
- feature(web): Allow uploading directly into lists/tags. Fixes #69 by @MohamedBassem in fe13408
- refactor(web): Move the tooltip provider to the root of the app by @MohamedBassem in 994691b
- feature: Extract hook logic into separate package and add a new action bar in bookmark preview by @MohamedBassem in 79d61be
- fix(workers): Increase default timeout to 60s, make it configurable and improve logging by @MohamedBassem in 4491831
- fix(docker): Remove BUILDPLATFORM from Dockerfile by @MohamedBassem in e0bb1fc
- fix: Refresh the all tags page automatically when a tag is modified by @MohamedBassem in 044659f
- ui(web): Add a tooltip explaining what archived means by @MohamedBassem in 4cf9908
- fix: Only consider text as URL in editor card if it has an http protocol. Fixes #86 by @MohamedBassem in bc6ee2e
- feature: Change archived meaning to only mean removed from homepage by @MohamedBassem in a81c394
- fix: Delete user's assets when the user is deleted by @MohamedBassem in 91b088d
- build: Increment android app versionCode by @MohamedBassem in 8af95fe
0.11.1
0.11.0
Welcome to the v0.11.0 release of Hoarder. This packs a bunch of new stuff and fixes.
New Features
- There's now a CLI tool to enable mass manipulations for your bookmarks. You can use it, for example, to mass import bookmarks from your previous tool. Check its docs here, and you can check the initial version of importing bookmarks docs here.
- You can now attach notes to your bookmarks.
- You can now delete tags in the tag view page.
- The
All Tags
page now differentiates between manually attached tags and AI attached tags. - You can specify the language of the auto generated tags with
INFERENCE_LANG=<lang>
env variable. It currently defaults toenglish
. Thanks @COOHU-Kr for the suggestion! - The web UI now allows uploading multiple images at the same time.
Webp
support also got added. - Clicking
⌘ + E
or (ctrl + E
) will now focus on the new bookmark editor. Thanks @chanunnaki for the idea! - Current server version is now shown in the admin panel. It'll also check github API to know if there are new version. You can disable the new version check with
DISABLE_NEW_RELEASE_CHECK=true
. - In case you missed it, the android app is almost there (under google's mercy). If you can't wait, you can download the APK from this issue
Fixes
- Search results are now sorted by relevance.
- In some rare instances, the crawler was getting stuck parsing some pages preventing any other links from getting crawled. There's now a 30s timeout to solve this problem.
- Fix the
sharp is missing
error in theweb
container logs. - When logging out, people were getting redirected to
localhost:3000
by mistake. AddNEXTAUTH_URL=<server_url>
to your env file to fix that. The installation docs has been updated.
Upgrade
- [Optional but hightly recommended] The initial docker compose was using an old chrome version (
v100
). Bump the chrome container version tov123
by changing the chrome container image:- from:
gcr.io/zenika-hub/alpine-chrome:100
- to:
gcr.io/zenika-hub/alpine-chrome:123
- from:
- If you're using
HOARDER_VERSION=release
, rundocker compose pull && docker compose up -d
. - If you're pinning it to a specific version, upgrade the version and then run
docker compose pull && docker compose up -d
.
Some screenshots from the release
The new All Tags
page
![Screenshot 2024-04-02 at 5 20 16 PM](https://private-user-images.githubusercontent.com/2418637/318873038-b99850e0-25e6-4b99-aaf6-f9ae0977731f.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE5NDk1NDMsIm5iZiI6MTcyMTk0OTI0MywicGF0aCI6Ii8yNDE4NjM3LzMxODg3MzAzOC1iOTk4NTBlMC0yNWU2LTRiOTktYWFmNi1mOWFlMDk3NzczMWYucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcyNSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MjVUMjMxNDAzWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NjA4YzI1NWQxY2M3MDc5NTRiYWIxM2U0ODBjOGI0OTRjOTFhYWUzNzAzMjgxNjU5Mzg2NjUxYWEyMWU3MjU5YiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.EvJ4BZXXsptZ5d3XRL2bwUQr90HktqnotgqZSDsQzfk)
Attaching notes to bookmarks
![Screenshot 2024-04-02 at 5 20 49 PM](https://private-user-images.githubusercontent.com/2418637/318873049-f6ac2a64-2c16-45d4-9987-8e536c35e438.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE5NDk1NDMsIm5iZiI6MTcyMTk0OTI0MywicGF0aCI6Ii8yNDE4NjM3LzMxODg3MzA0OS1mNmFjMmE2NC0yYzE2LTQ1ZDQtOTk4Ny04ZTUzNmMzNWU0MzgucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcyNSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MjVUMjMxNDAzWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9OTNjODQ5OGYyZDRiYThiYTQ4ZGI0YTI3MTg4MGU0NTJmMDhhMmI5NGUyMGNkNGFjN2Q2ZGMxOTVmYjYzMTJlYyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.hBY3ox9frqosgBCRckKPrYZUfCvfo_sZV3c42LjRF-w)
Server version in admin panel
![Screenshot 2024-04-02 at 5 20 28 PM](https://private-user-images.githubusercontent.com/2418637/318873045-7605f9c2-3196-4d52-a081-9ef72a541b0d.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE5NDk1NDMsIm5iZiI6MTcyMTk0OTI0MywicGF0aCI6Ii8yNDE4NjM3LzMxODg3MzA0NS03NjA1ZjljMi0zMTk2LTRkNTItYTA4MS05ZWY3MmE1NDFiMGQucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcyNSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MjVUMjMxNDAzWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MDkxN2EyMzczYjUzMDA4ZTRiYzRkNGRiNGU4NmViYTNkYjkxN2IzODI5OGVmMzdhYzVkYmQ4ZjUzZDU1YjMwYSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.R2UYFaLI2juRATDef5OKDySE9RrddHJo_ARS2UfOlWg)
The new CLI
![Screenshot 2024-04-02 at 5 24 25 PM](https://private-user-images.githubusercontent.com/2418637/318873053-0106253f-276d-47d4-8b5c-58061fd56d16.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE5NDk1NDMsIm5iZiI6MTcyMTk0OTI0MywicGF0aCI6Ii8yNDE4NjM3LzMxODg3MzA1My0wMTA2MjUzZi0yNzZkLTQ3ZDQtOGI1Yy01ODA2MWZkNTZkMTYucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcyNSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MjVUMjMxNDAzWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ODY0MmNkNWYyOGUyYTUxZDM5ZDgzYWMzZWQxMzIyODA3NzY4ZmE1NTE5YTQzN2Y5MDIwMDBkMzA2NjNlYjk1OCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.DtrqMERmVntunsruyVV1VJNHK8TSIKO4nhtesfIUDrY)
0.10.1
Mostly a lot of minor fixes:
- Fix: Attempt to increase the reliability of the ollama inference by working around some of the errors in the ollama package.
- Fix: There was a limit of 2k chars on notes. This is no longer there.
- Fix: When a bookmark is deleted in the search page, it wasn't getting removed from the grid. This is now fixed.
- feature: In the editor card, you can now save the bookmark by pressing
Ctrl + Enter
as well as theCmd + Enter
. This should be more intuitive to windows users. - feature: You can now upload webp images.
- feature: Maximum asset size was 4MB. Now it's configurable with the
MAX_ASSET_SIZE_MB
env variable. This variable still defaults to 4MB. - ui: Red destructive color looks slightly better now in dark mode.