···1122
33-# woomarks
44-woomarks is an app that let's you save links in your browser storage, no account needed.
33+# woomarks (AT Protocol Edition)
44+woomarks is an app that lets you save bookmarks to your AT Protocol Personal Data Server (PDS).
5566
7788-It's only frontend code, no database, backend server needed.
88+This version stores bookmarks directly on the AT Protocol network using a custom lexicon, making your bookmarks portable across the decentralized web.
99101011111212-It also can import/export to csv files or local storage.
1313-1414-1515-## Demos
1616-#### [Creator's personal boomarks page](https://roberto.fyi/bookmarks/).
1717-- Saving is closed to the public.
1818-- Saved links are visible to the public, as they are loaded from a csv file in the server.
1919-2020-#### [woomarks public app](https://woomarks.com).
2121-- Saving is open to the public.
2222-- The saved links are private and saved in the browser local storage of the users.
2323-2412## Features
2525-- Add/Delete links
2626-- Search
2727-- Tags
2828-- Bookmarklet (useful for a 2-click-save)
2929-- Data reads from:
3030- - csv file in server (these links are public)
3131- - local storage in browser (these links are visible just for the user)
3232-- Local storage saving.
3333-- Import to local storage from csv file
3434-- Export to csv from local storage.
3535-- Export to csv from csv file (useful when links are "deleted" using the app and just hidden using a local storage blacklist).
3636-- Export to csv from both places.
3737-- No external libraries.
3838-- Vanilla css code.
3939-- Vanilla js code.
1313+- Add/Delete bookmarks stored on AT Protocol
1414+- Search and filter by tags
1515+- Decentralized storage on your Personal Data Server
1616+- Bookmarklet support for easy saving
1717+- Responsive design with dynamic colors and fonts
1818+- No backend server needed - connects directly to AT Protocol
1919+- Open lexicon format for interoperability
40204141-## Install
2121+## Prerequisites
2222+- An AT Protocol account (e.g., Bluesky account)
2323+- A Personal Data Server (PDS) that supports custom lexicons
42244343-#### BASIC INSTALL (3min)
4444- - Copy the contents of this repository to an online directory. That's all. You can start saving links.
2525+## AT Protocol Integration
2626+This app uses the standard `community.lexicon.bookmarks.bookmark` lexicon from [lexicon.community](https://github.com/lexicon-community/lexicon) to store bookmark records on your PDS. Each bookmark contains:
2727+- URI (required) - The bookmarked URL
2828+- Title (optional) - The title of the bookmarked page
2929+- Tags (optional array) - Organizational tags
3030+- Creation timestamp
45314646-#### SHOWCASE YOUR LINKS
4747-- If you want to showcase your saved links, update the **mybookmarks.csv** file
3232+Using the community standard lexicon means your bookmarks are:
3333+- Interoperable with other AT Protocol bookmark apps
3434+- Portable across different implementations
3535+- Following established community standards
3636+- Owned and controlled by you on your PDS
48374949-#### IMPORT FROM POCKET
5050-- Go to this Pocket page to export your links. https://getpocket.com/export.php?
3838+## Installation
51395252-**Option 1** (If you want your links public)
5353-- Replace the mybookmarks.csv witha the content of your Pocket csv file.
4040+1. **Deploy the App**
4141+ - Copy the contents of this repository to a web server
4242+ - Or use a static hosting service like GitHub Pages, Netlify, or Vercel
54435555-**Option 2** (If you want your links saved on your browser's local storage)
5656-- Add > Bulk Transfer > Paste the contents.
4444+2. **Login with AT Protocol**
4545+ - Open the app in your browser
4646+ - Enter your AT Protocol handle (e.g., `username.bsky.social`)
4747+ - Enter your app password (generate one in your AT Protocol client)
4848+ - Click Login
57495858-#### CREATE BOOKMARKLET
5959-To be able to easily save bookmarks with the form prefilled, create a bookmarklet:
6060-- In your browser, create a new bookmark with "add woomark" () as Name
6161-- Paste the next code as URL.
6262-```
5050+3. **Start Bookmarking**
5151+ - Use the Add button to save new bookmarks
5252+ - Tag and organize your bookmarks
5353+ - Search and filter your collection
5454+5555+## Bookmarklet Setup
5656+Create a bookmarklet for easy saving:
5757+- Create a new bookmark in your browser
5858+- Set the name to "Save to woomarks"
5959+- Use this as the URL:
6060+```javascript
6361javascript:(function(){
6462const url = encodeURIComponent(window.location.href);
6563const title = encodeURIComponent(document.title);
6666-window.open(`https://YOURDOMAINGOESHERE.com/?title=${title}&url=${url}`, '_blank');
6464+window.open(`https://YOURDOMAINHERE.com/?title=${title}&url=${url}`, '_blank');
6765})();
6866```
69677070-#### HIDE SAVE BUTTON
7171- - If you are using this for your personal use (you don't want anyone else saving on your page), you can uncomment this line in **script.js** file
7272- and add the code you want here AND as a variable in your browser's local storage.
7373-7474-`
7575- // const appcode = "notsosecretcode";
7676- `
7777-7878- 
7979-80688169## Design
8270 This design is inspired by Pocket's UI, which was very good for showing a list of articles to read later. Native bookmarking feels more utilitarian, suited for recurrent links, woomarks is more suited for read later links.
83718472## Philosophy
8585-I had all my bookmarks in Pocket and it's shutting down. Same thing happened to del.icio.us. So I decided to keep the web cool and decentralized and make this little thing. The code is open and you can use it on your own website forever.
7373+I had all my bookmarks in Pocket and it's shutting down. Same thing happened to del.icio.us. So I decided to keep the web cool and decentralized by building on AT Protocol. Now your bookmarks live on a decentralized network that you control, not in some company's database that might disappear.
86748775## License
8876Do whatever you want with this, personal or commercial. No warranties are given.
···11-title,url,time_added,tags,status
22-"My other project is publishing classic books. | BookWormHole", https://bookwormhole.co,1750558616,books,unread
33-In your website you can make public bookmarks | Like this demo, https://roberto.fyi/bookmarks,1750688281,woomarks,unread
44-"If you have a website, you can install woomarks there. | Github project",https://github.com,1750707578,woomarks,unread
55-Transfer your Pocket links | Bulk Transfer,/transfer_page.html,1750685963,woomarks,unread
66-"Install the bookmarklet so saving takes you 2 clicks. | Bookmarklet",/faq.html#faq_bookmarklet,1750685963,woomarks,unread
77-"woomarks let you save links. | No account needed. | Click the “Add” button." ,/,1750859818,woomarks,unread11+# This file is no longer used in the AT Protocol edition
22+# Bookmarks are now stored on your Personal Data Server
33+# Please use the main app to log in with your AT Protocol credentials
···33 <head>
44 <meta charset="UTF-8" />
55 <meta name="viewport" content="width=device-width, initial-scale=1.0">
66- <title>transfer page | woomarks</title>
77- <link
88- href="https://fonts.googleapis.com/css2?family=Doto&family=Alfa+Slab+One&family=Bebas+Neue&family=Bree+Serif&family=Caveat&family=Courier+Prime&family=Dosis&family=EB+Garamond&family=Permanent+Marker&family=Sedan+SC&family=Ultra&display=swap"
99- rel="stylesheet"
1010- />
1111- <link rel="shortcut icon" href="./favicon.ico" type="image/x-icon" />
1212- <link rel="stylesheet" href="style.css" />
66+ <title>woomarks - AT Protocol Edition</title>
77+ <script>
88+ // Redirect to main page since we no longer use CSV import/export
99+ window.location.href = '/index.html';
1010+ </script>
1311 </head>
1414-1512 <body>
1616- <div class="topbar">
1717- <div style="flex-grow: 1">
1818- <b><a id="headerTitle" href="/index.html">woomarks</a></b>
1919- </div>
2020- </div>
2121-2222- <div class="page">
2323- <h1>Transfer Page</h1>
2424- <textarea placeholder="Paste CSV contents" id="importArea"></textarea>
2525-2626- <div style="display: flex; justify-content: flex-end; gap: 30px;">
2727- <button class="param-btn" id="exportBtn" class="export-link" data-umami-event="Export">
2828- Export my links as csv
2929- </button>
3030-3131- <button class="param-btn dark" id="importSaveBtn" data-umami-event="Import">
3232- Import my links
3333- </button>
3434- </div>
3535-3636-3737- <br/><br/><br/><br/><br/><br/>
3838-3939- <h3>How to import your bookmarks from Pocket</h3>
4040- <p>Download from their page <a href="https://getpocket.com/export">https://getpocket.com/export</a></p>
4141- <p>Open the file and paste its contents in the textarea. It won't upload the content, it will put it in the local storage of your browser</p>
4242-4343- <h3>How to import your bookmarks from other places</h3>
4444- <p>Make a csv file with this formatting and paste its contents in the textarea. You can copy paste this sample to test it.</p>
4545-<pre><code>title,url,time_added,tags,status
4646-A Parliament of Owls and a Murder of Crows: How Groups of Birds Got Their N,https://www.themarginalian.org/2024/01/04/brian-wildsmith-birds-company-terms/,1706544592,,unread
4747-100 Best Books of the 21st Century - The New York Times,https://www.nytimes.com/interactive/2024/books/best-books-21st-century.html,1732713693,test,unreadSeven Goldfish,https://7goldfish.com/articles/2024_Hugo_Nominees.php,1750558532,books,unread
4848-Some Title,https://example.com,1720984873,tag1,unread
4949-"Title, with comma",https://example.com,1720984000,"tag1,tag2",read
5050-</code></pre>
5151- </div>
5252- </body>
5353- <script src="./script.js"></script>
5454-1313+ <p>Redirecting to main woomarks app...</p>
1414+ <p>This AT Protocol edition no longer supports CSV import/export.</p>
1515+ <p>If not redirected automatically, <a href="/index.html">click here</a>.</p>
1616+ </body>
5517</html>