Local-first bookmark managerv2 · bookmarkly.notoo.app

A bookmark manager that keeps the page, not just the link

Save a link and it stays on your computer. The library, the reader, your notes and every highlight live in this browser’s own storage — no account, nothing uploaded. Sign in later if you want the same library on your phone.

No sign-up. Nothing to install. Works offline after the first load.

bookmarkly.notoo.app — 1,284 links · 148 MB · all of it on this machine
Everything saved
All bookmarks
1,284
Links
Save a link
Editorial
List
Index
Newest
Articles
Highlighted
Notes
#local-first
#css
1 filter · clear
Today7
2846 highlights
inkandrule.org
The archive you can hold: on keeping your own copies

Every service that promised to remember things for you has either shut down or started charging for the memory. The alternative is unglamorous and completely reliable: keep the copy yourself.

#local-first#archive6 HL
283Saved copy
typeandrule.dev
Optical sizing, finally explained without the maths

A variable font's opsz axis is not a size — it is a set of instructions about ink.

#typography
282
quietbench.net
IndexedDB is faster than you assume

Twelve thousand records, one index, and no network round trip anywhere.

#local-first3 HL
281
longform.press
The reading list nobody reads

On saving as a substitute for reading, and what to do about it.

#habits
280404
oldweb.example
Notes on a grid system for the screen

The page is gone, but the copy Bookmarkly kept still opens.

#css
279
pressroom.studio
Square corners are back and they never left

A short defence of the hard edge in interface design.

#design
1,284 links26 collections · 118 highlighted · 41 saved copies · 0 requests to a serverExport: 2d agoBack up now

Every screen below is the real interface, not an illustration.

01 · The library

Three ways to look at the same shelf

Every link is a numbered record with the colour of the site it came from. The newest one runs across two columns, the way a lead story does.

Switch with 14. Editorial gives every link a cover and an excerpt; List trades the covers for density; Index is one headline per line for when you already know what you are after.

Editorial
284
inkandrule.org2h

The archive you can hold

Every service that promised to remember things for you has shut down.

283

Optical sizing, explained

List
284
inkandrule.org

The archive you can hold

283
typeandrule.dev

Optical sizing, finally explained

282
quietbench.net

IndexedDB is faster than you assume

Index
The archive you can hold6 HL
Optical sizing, finally explained
IndexedDB is faster than you assume3 HL
The reading list nobody reads
Notes on a grid system
Square corners never left
On keeping your own copies
A grid for the screen
02 · The detail panel

Click a link and the third column opens

Dark in both themes, like the sidebar — two ink edges framing the paper in the middle. Everything about a link is editable in place: retitle it, write why you saved it, add tags, check whether the original is still there.

A note, not a rating

Why you saved it is the one piece of metadata no scraper can generate. It is searchable from ⌘K.

Check the link

One press tells you whether the page is still up, and files it under Broken links if it is not.

Tags across collections

A link lives in one collection but carries as many tags as you like; tags filter from the strip.

Where it sits

The footer prints the collection path and the record’s own size on disk.

Record 284×
i
The archive you can hold: on keeping your own copies
inkandrule.org·12 min
Read here
Note
Best short argument for local storage I have found. Quote the third paragraph in the launch post.
6 highlightsView
Link OK · checked 3d agoAgain
local-firstarchive+ Tag
Reading list / Local-first284 · 96 kb
03 · The reader

Read it here, mark it up, keep the copy

Press R and the stored copy opens at a 660px measure in Instrument Serif. The reader renders what was saved, not the live page — which is what makes the highlights durable.

Four tabs, one article

Reader, the archived page exactly as it was, an editor for fixing bad extraction, and your page note.

Highlights in three colours

Their own palette, deliberately not the interface accent — a highlight’s colour is a meaning, and it shouldn’t change with a theme.

ReaderArchive 412 KBEditNote Keep a copySaved 3d agoAa
inkandrule.org·12 min·saved 4 May
The archive you can hold: on keeping your own copies

By Marguerite Hale · Ink & Rule, May 2026

Every service that promised to remember things for you has either shut down or started charging for the memory. The alternative is unglamorous and completely reliable: keep the copy yourself.

A folder of files on a disk you own has outlasted three generations of bookmarking startups, and it will outlast the next three. The trade is that nobody else is holding a backup for you, which is a real cost and worth stating plainly rather than designing around.

What a copy actually costs

Text is small. A thousand saved articles, extracted and stored as readable prose, is a rounding error next to a single afternoon of video. The expensive part was never the words.

64%Highlightselect textCloseEsc
Highlights6

The alternative is unglamorous and completely reliable: keep the copy yourself.

Today, 09:14

The trade is that nobody else is holding a backup for you

Use this as the honest-cost line in the FAQ.
Today, 09:16

Text is small. The expensive part was never the words.

Today, 09:21
Copy all as Markdown
04 · The command bar

One bar for search and for commands

⌘K from anywhere, including while you are typing. It searches titles, notes, tags and highlights, and takes commands in the same field.

Because the whole library is already on the machine, there is no debounce and no loading state — results appear as fast as you can type, at ten thousand links as at ten.

0 msNetwork wait4Fields searched9Commands
/local-firstAll
The archive you can holdinkandrule.org
IndexedDB is faster than you assumequietbench.net
#local-first — 63 linkstag
+Save a linkN
Import bookmarks
Toggle light / darkT
↑↓ move↵ open⌥↵ originalEsc close
05 · Saving and importing

Paste a link. Or drop in everything you already have.

A copied URL in your clipboard opens the add dialog by itself. An export file from any browser or service becomes collections and tags, parsed in this tab.

Save a linkNothing is stored until you press Save.×
URL
https://inkandrule.org/archive-you-can-hold
The archive you can holdinkandrule.org · preview read, nothing stored
Collection
Reading list / Local-first
Tags
local-first ×archive ×Add a tag…
Note
Why are you saving this? — optional, ⌘↵ to save without a note
CancelSave link
Import bookmarksEverything is read in this browser — the file is never uploaded.×
Drop bookmarks.html hereor a Bookmarkly .json backupChoose a file
Imported 1,284 bookmarks
Folders became 26 collections
41 skipped — already in the library

Reads the standard bookmark HTML that Chrome, Safari, Firefox, Edge, Raindrop and Pocket all export.

Done
06 · How local-first works here

No server holds your library unless you ask one to

Everything lives in this origin’s IndexedDB, in a database called bookmarkly. Bookmarks, collections, tags, notes, highlights and saved copies are all rows on your own disk. Close the tab, go offline, stay offline — the library is still there.

The flip side: browser storage is yours to lose. Bookmarkly asks the browser to make storage persistent, shows what is taking the space, and tells you how long it has been since your last export.

The other answer to that is sync, and it is opt-in: sign in with Google, switch it on in Settings, and a second copy is kept in your Notoo account so another device picks the library up. Nothing is uploaded before that — and archived page copies never are.

Settings · Storage
148MB of 2.4 GB the browser will allow
Saved copiesArticle textCover imagesRecords and highlights
Storage is persistentExport backup
The one exception, stated plainly

With sync off, one route talks to the network: /api/preview

When you paste a URL, that URL is fetched server-side to read its title and preview image, because your browser is not allowed to fetch other people’s pages directly.

It stores nothing. The URL transits the route and is discarded. It is still a compromise against “nothing leaves your machine”, so it sits behind a labelled setting you can switch off — and it disappears entirely once the browser extension lands.

Fetch previews for pasted linksSettings · Privacy
Keep a readable copy of saved pages
Check links for 404s in the background
Sync this library to my account
Analyticsnone — no setting needed
07 · Keyboard shortcuts

Hands stay on the keys

Every screen is reachable without the mouse. ? brings up this list from anywhere in the app — it is the same dialog, not a marketing copy of one.

Selection works the way your file manager does: shift-click a range, ⌘-click to add, Delete to bin, drag onto a collection to file.

Keyboard shortcuts×
General
NAdd a link
/Search
?This list
,Settings
BToggle the sidebar
TToggle light / dark
EscClose, or clear the search
Views
1Grid
2Masonry
3List
4Headlines
Bookmarks
ClickOpen details
Double-clickOpen the original
⌘ + clickAdd to selection
⌘ + ASelect everything shown
DeleteMove the selection to trash
DragDrop onto a collection to file it
RRead here
Anywhere
PasteA copied link opens the add dialog
DropA link dragged onto the window is saved
Selecting several cards puts a bulk bar across the bottom: move, tag, favourite or bin the whole selection at once.
08 · Against the alternative
 
Bookmarkly
A cloud bookmark service
Where your library lives
IndexedDB, on this machine
Someone else's database
Account required
None — sign in only to sync
Email, password, verification
Works with no network
Fully, including search
A spinner
Reading copy of the page
Kept locally, survives a 404
Usually a paid tier
If it shuts down
Your library is already local
A migration deadline
Sync between machines
Optional, off by default
Automatic, required
Price
Free
$3–5 a month

Sync is the honest trade. Bookmarkly runs without it, and without an account — turning it on is a choice you make once, in Settings.

09 · Pricing

Free. No account needed.

There is no subscription because there is nothing to bill for: the library lives in your browser, the app works signed out, and syncing it to a Notoo account is optional and free too.

Get started freeGitHub

Opens the app. Your first link is saved before you would have finished signing up.

10 · Questions

Where exactly is my data?

In an IndexedDB database called bookmarkly, in this browser, on this machine. The sidebar shows how much space it takes and what is using it.

What if I clear my browser data?

It is gone. That is the real cost of local-only. Export a backup regularly — the sidebar tells you how long it has been since the last one.

Can I use it on my phone and laptop?

Two ways. Signed out they are two separate libraries, and an exported backup moves one to the other. Or sign in with Google and turn on sync in Settings → Sync, and both devices keep the same library — it is off until you ask for it.

Can I share a collection with someone?

Yes — pick a collection, choose Publish / share, and it gets a private link with 27 random characters in it. Anyone you send that link to can read the collection; nobody else can find it, because the public listing shows only a title and a count and search engines are told to stay away. Take it down, or swap the link for a new one, whenever you like.

Is anything sent anywhere?

One thing, and only if you leave it on: a pasted URL is fetched server-side to read its preview tags, and stored nowhere. Turn it off in Settings → Privacy. Sync and publishing add two more, and both are off until you switch them on.

Is there an extension?

Not yet. When it lands it reads preview tags off the live page, which removes the one server call entirely.

How many links can it hold?

As many as your browser will give storage for. Search stays instant at library sizes in the tens of thousands, because it never leaves the machine.

Can I get my links out again?

Standard bookmark HTML that any browser will read, or a JSON backup that restores everything including notes and highlights.

Why does the sidebar stay dark?

Because a masthead is black on every page of a newspaper. The library flips with the theme; the two ink edges that frame it do not.

Save the first link. Nothing to sign up for.

Paste a URL, press Save, and the record is on your disk. Import the rest whenever you feel like it.