Own what you read.

Highlight any page on the web, write down why it mattered, and find it again by searching the words you wrote. Everything lands in one SQLite file on your own machine, shared by Arc, Brave, Chrome and Edge.

Add extension

macOS · Chromium browser · Node 24+

freehold — your library

Freehold

412 highlights · 96 pages

Find a highlight, or something you wrote about one
HighlightsPages
All sites

the time everyone afterwards spends discovering it was made

The argument for writing the decision down, not for deciding faster.

architecture-notes.dev · 2 days ago

a green suite nobody has tried to break is a green suite nobody should trust

Counter to the 100% coverage argument. Use in the RFC.

testing-weekly.com · 5 days ago

private to that application, which is a feature right up until you install a second one

Exactly the problem this solves. Good framing to steal.

local-first.org · last week

0Runtime dependencies, and no server to talk to.
4Colours, each one nameable to mean whatever you need.
7Daily backups kept, each a single consistent file.
21.0 MBExport at 50,000 highlights, streamed at flat memory.

How it is built

Three decisions that everything else follows from

One file, outside the browser

Everything lands in a single SQLite database in your Application Support folder. Not browser storage, so every Chromium browser on the machine reads the same library, and clearing browsing data does not touch it.

Nothing is sent anywhere

There is no account, no server and no telemetry. The extension asks only for the permissions it needs and makes no network request of its own. The only outbound links are the bug and feature links you click yourself.

Open format, open licence

Apache-2.0, and the database is a plain SQLite file you can open with any client. Export writes JSON to your Downloads folder; import merges it back and never overwrites what is already there.

Search

Full text, over the quote and the reason you wrote

The index covers both the highlighted text and the note you wrote, ranked so the closest match comes first. The last word you type is treated as a prefix, so the list narrows while you are still typing. Filter it down by colour, by site, or by tag.

search your library
green suite
All coloursAll sitesNewest first

2 matches, best first.

a green suite nobody has tried to break is a green suite nobody should trust

testingrfc-q3

testing-weekly.com · 5 days ago

coverage counts lines, not the question you forgot to ask

testing

architecture-notes.dev · 3 weeks ago

Name your colours

Four colours you already click, given meaning

Call yellow “use in the Q3 RFC”, and the name shows on the toolbar as you pick, on the filters, and on every entry. Up to 40 characters each. Leave one alone and it keeps its default. This sits alongside tags, it does not replace them.

name your colours

What each colour means

Use in the Q3 RFC
Agree — use this
Doubt — check this
Look this up

Read later

A page you are not ready for yet, with the reason attached

Save a page without highlighting anything and write down why you want to come back. It gets a due date seven days out unless you pick another one, and the library will sort your pages by what is due next.

read later

Pages

sorted by due

An Unhurried Look at SQLite’s WAL

Need this before the storage review.

sqlite-notes.dev · due in 2 days

Text anchoring without a server

Compare with how we re-anchor after edits.

local-first.org · due in 7 days

The page you are on

A quick look without leaving the article

The popup lists what you marked on this page, tells you when a highlight no longer matches the page text, and exports just this page if that is all you want.

extension popup

Freehold

Library

3 highlights on this page.

Save this pageExport this page

the time everyone afterwards spends discovering it was made

a green suite nobody has tried to break is a green suite nobody should trust

Why not just

What the alternatives do better, and where they stop

Instead of bookmarks

Better at
Getting the whole page back later, in one click, with nothing to install.
Stops at
A bookmark saves the page, not the sentence, and never the reason. You reopen three thousand words to find one line.

Instead of a notes app

Better at
Writing at length, structure, linking. Freehold does not replace one and does not try to.
Stops at
A quote you paste in loses its place. Nothing takes you back to where it sat on the page, and copying is a step you have to remember.

Instead of a hosted highlighter

Better at
Reading on your phone, sharing with other people, and syncing between machines. Freehold does none of those.
Stops at
Your highlights live on someone else's server, behind an account, under their retention policy and their pricing.

Install

One click, then one command

Freehold is on the Chrome Web Store, so the extension itself is a click. Your library is not kept in the browser though, and the store cannot install the small local program that owns it — so there is a second step, and it is the one that makes the extension do anything.

  1. Add it to your browser

    One listing covers Arc, Brave, Chrome and Edge. Add it in each browser you read in — they all end up reading the same library, so nothing is duplicated by doing so.

  2. Register the host

    The installer copies the host into ~/Library/Application Support/Freehold, writes one small JSON manifest into each browser profile it finds, and touches nothing else. It takes no extension ids — they are built in. Restart the browser afterwards.

    ./scripts/dev-install.sh --production

That second step needs a checkout, and the repository is not public yet — so today the host is only installable if you already have the source. Without it the extension installs, opens, and answers native host unavailable on every action.

Questions

The things worth knowing before you install it

Can I sync between machines?

No. The database is local by design. Syncing would mean running a server, which is a different product with a different promise.

What happens if I remove the extension?

Nothing happens to your highlights. The database sits outside every browser profile, so removing the extension does not touch it — put the extension back and your library is still there.

Windows or Linux?

No. The installer and the host both write to ~/Library/Application Support, which is a macOS path, so Chrome on Windows will install the extension and then find no host to talk to. macOS is the only supported system today.

Firefox or Safari?

Not yet. Both need different packaging — Safari in particular has to be wrapped in an Xcode project and signed.

Where does my data actually live?

One SQLite file at ~/Library/Application Support/Freehold/freehold.db, with abackups folder beside it. Open it with any SQLite client. Point somewhere else by setting FREEHOLD_DB.

Can I get my notes back out?

Export writes JSON to your Downloads folder, streamed straight from the database so memory stays flat no matter how large the library is. Import merges a file back in and never overwrites: a highlight whose id is already there is skipped, and tags are added rather than replaced.

Tags or colours?

Both, and they are separate. Colours are the four you pick while highlighting, each renameable. Tags are free text, up to 24 on a highlight, and a tag nobody uses any more is cleaned up on its own. You can filter by either.

What licence is it?

Apache-2.0.

What if the page changes?

Usually nothing, because a highlight is anchored to the words around it. If the text is deleted or rewritten past recognition the highlight orphans: it stays in your library, stops painting on the page, and the popup tells you.

Does it change the pages I read?

Only where you highlighted. Each one wraps that text in a freehold-mark element that inherits the page’s own font and colour. Nothing else on the page is touched, and nothing is injected on pages you have never marked.

Start keeping the reason.

Add extension

macOS · Chromium browser · Node 24+

Freehold

A web highlighter that keeps your notes in one SQLite file on your own machine, shared across every Chromium browser you use.

Product

Get it

Newsreader and IBM Plex under the SIL Open Font License 1.1