Skip to main content

Long Echo in Practice: 5,874 Bookmarks in a Single File

I wrote about Long Echo and the Long Echo Toolkit earlier. Today I want to show what it actually looks like in practice.

View the live demo: 5,874 bookmarks in a single file

The Export

btk --db bookmarks.db export bookmarks.html \
    --format html-app \
    --query "(reachable != 0 OR reachable IS NULL)"

Result: 5,874 bookmarks in a single 4MB HTML file.

What You Get

Open it in any browser. No server. No internet. No dependencies. Just a file.

The html-app export includes:

  • Search: Full-text filtering across titles, URLs, descriptions, tags
  • Multiple views: Grid, list, table layouts
  • Tag sidebar: Navigate by hierarchical tags
  • Dark mode: Toggle with a button
  • Keyboard shortcuts: Navigate without a mouse
  • Sorting: By date, title, visits, stars
  • Filtering: By starred, archived, has-content

Everything is embedded: CSS, JavaScript, all 5,874 bookmark records as JSON. One file.

Why This Matters

This is graceful degradation made concrete:

LevelWhat WorksRequirements
1. BTK CLIFull features, auto-tagging, content cachingPython, btk installed
2. SQLiteDirect queries, scriptingsqlite3 binary
3. HTML AppVisual browsing, search, filteringAny browser
4. View sourceRaw JSON data, greppableText editor

The HTML app is level 3—it works even when BTK is gone, even when Python is gone. Someone in 2074 can double-click the file and browse my bookmarks.

The Data Inside

If you view source, you’ll find:

const BOOKMARKS = [
    {
        "id": 1,
        "url": "https://example.com/article",
        "title": "Interesting Article",
        "description": "Notes about the article...",
        "tags": ["programming", "python"],
        "stars": 1,
        "created_at": "2023-05-12T14:32:00Z",
        "visited_count": 42
    },
    // ... 5,873 more
];

Plain JSON. No encoding tricks. Grep it, parse it with jq, import it into another tool. The data survives the interface.

Try It

Install BTK:

pip install bookmark-tk

Export your bookmarks:

# From browser exports
btk import bookmarks.html --format html

# To self-contained app
btk export archive.html --format html-app

You now have a permanent, searchable copy of your bookmarks that will outlive every cloud service.


Your bookmarks are worth more than “hope Chrome sync doesn’t break.” Export them to something permanent.

Discussion