Articles

Using Obsidian as a personal link archive

Tim Kleyersburg

Tim Kleyersburg · · 5 minutes to read

I save too many links.

Some are docs. Some are blog posts. Some are GitHub issues I will definitely read later, which is a sentence everyone believes about themselves for about five seconds.

Saving links is not the hard problem anymore. I can bookmark something in the browser, save a post on X, clip an article, send myself a message or throw a URL into any number of read-it-later apps.

The hard part is finding the thing again when I need it.

For me, Obsidian is a good place for this because a lot of my notes already live there. Not as a perfect “second brain”, whatever that is supposed to mean this week. More as a folder full of Markdown files that I can search, link and edit without asking a service for permission.

That is enough.

#The note, not the bookmark

I do not want a second bookmark manager. I already have those.

I want saved links to become notes with enough context that future-me understands why the link was saved. That is a much smaller problem.

A good saved link note should answer a few questions: What is the URL? Where did I find it? When did I save it? Why did I think this was useful? Did I already use it somewhere?

The last one matters more than I expected. A link archive without usage context quickly turns into a pile. A pile is technically searchable, but so is my Downloads folder. That does not make it a system.

The note format should be plain enough that I can still edit it by hand:

---
url: https://example.com/article-about-search
source: manual
saved_at: 2026-06-02
status: inbox
topics:
  - search
  - notes
---

# Article about search

Saved because I wanted to think about how personal search should work inside my notes.

## Notes

- Good distinction between collecting information and being able to use it later.

## Used in

-

I like frontmatter for metadata because it keeps the rest of the note readable. The body can stay messy. That is where actual thinking happens.

One small detail I would keep: the fetched title and my own note title are not the same thing. The page title is metadata. My title can be the reason I care. That tiny distinction makes search nicer later, especially when five saved pages all call themselves “Documentation”.

#Where the links come from

My inputs would be boring on purpose: X bookmarks, browser web clips, links copied from WhatsApp and links I paste manually into an inbox file.

I would not try to automate every source on day one. The first version can be one Markdown file:

# Link Inbox

- https://example.com/article-about-search
- https://docs.example.com/some-feature
- https://github.com/example/project/issues/123

Then a small script turns those raw links into individual notes.

X bookmarks are useful in the moment and a bit awkward later. I would keep the imported note honest: original URL, saved date, source, maybe the post text, then an empty “why I saved it” section. The system can bring the bookmark into Obsidian, but it cannot always know why I cared.

For articles, docs and blog posts I want a Markdown snapshot if the page is likely to disappear or change. I have written about setting up Firecrawl before, and a scraper can be useful for creating clean Markdown snapshots. But for this system I would not make Firecrawl the main character.

The useful part is the habit: every useful link ends up in the same place, with enough context to become findable later.

A clipped page could look like this:

---
url: https://docs.example.com/search
source: web-clipper
saved_at: 2026-06-02
status: inbox
topics:
  - search
---

# Search docs

Saved because I wanted to compare how different tools explain typo tolerance.

---

## Clipped content

Markdown snapshot goes here.

That is enough structure for a script, but still readable as a normal note.

#WhatsApp links are signals

This connects nicely with a WhatsApp-to-Obsidian sync.

Chats contain a lot of junk, but links are often real signals. Someone sends a restaurant, a product, a recipe, a doc, a video, a post. If those links stay in WhatsApp, they are basically gone unless I remember the exact chat.

I would extract links from selected chats and write them into the same link inbox:

---
url: https://example.com/place
source: whatsapp
source_chat: family
saved_at: 2026-06-02
status: inbox
topics: []
---

# Link from WhatsApp

Context:

> Shared while planning dinner for next week.

Again: selected chats only. No full transcript. No group import unless I explicitly allow it.

The nice part is that the downstream system does not care where the link came from. X bookmark, web clip, WhatsApp, manual paste. It becomes one note shape.

#Review, then file

The loop can be simple:

  1. Collect raw links into an inbox.
  2. Create or update one note per URL.
  3. Try to detect title and source.
  4. Add a small personal context field.
  5. Leave the note in status: inbox.
  6. Review the inbox once in a while.

The review is the part I would not automate away completely.

It is tempting to let an LLM tag everything, summarize everything and move everything into perfect topic folders. I have built enough of these systems to know where that goes: the structure looks impressive and I still do not use it.

For me, the useful middle ground is lighter. Let a script create the note. Let a local model suggest topics, detect the content type, extract a short title or find near-duplicates. Then let me accept or ignore those suggestions.

That turns the model into an assistant for filing, not the owner of the archive.

Cloud models can still be useful. I just want that to be a conscious choice, not the default path every time text appears on disk.

#Folder layout and duplicates

I would start with a boring folder layout:

Resources/
  Links/
    Inbox/
    Read/
    Used/

Statuses can live in frontmatter:

status: inbox

Files can move later if I care enough. Usually I do not. Search matters more than folder purity.

One URL should map to one note. If the same link appears again from another source, I would append a small source entry instead of creating a duplicate:

## Seen in

- 2026-06-02: X bookmark
- 2026-06-05: WhatsApp, family chat

That tiny bit of history is useful. If a link keeps appearing in different places, it is probably worth actually reading.

#Conclusion

Using Obsidian as a link archive is not a new idea. That is fine. Most useful personal systems are boring ideas executed consistently.

The part I care about is not “building a second brain”. It is reducing the number of places where useful links go to die.

X bookmarks, web clips, WhatsApp links and manual saves all become the same kind of note. Each note keeps the URL, source, date and the small human reason why I saved it.

A saved link without context is a receipt from a thought I no longer remember having.

More articles