Cloudmark is a free, open source bookmark & content management project written in TypeScript and released under AGPL-3.0. It has 74 GitHub stars, 9 forks and 0 open issues, and was last pushed 1 months ago. On this registry it ranks #13 of 14 tracked projects in Bookmark & Content Management, with 5 head-to-head comparisons available.

What is Cloudmark?

What it is

Cloudmark is a universal bookmark management tool built for the cloud, written in TypeScript and released under the AGPL-3.0 license. It runs on the Cloudflare ecosystem, pairing a Cloudflare Worker for application logic with Cloudflare D1 as relational storage at the edge. A bookmarklet and a Manifest V3 Chrome extension act as the capture surfaces, while a web interface at cloudmark.site serves as the place to browse, filter, and edit saved pages. The project stores bookmarks under a user-chosen collection identifier called a mark.

The concrete problem it solves is bookmark capture without accounts. Most bookmark services require registration, an email address, and a login before anything can be saved, which adds friction to the act of keeping a link. Cloudmark removes that step: a collection is identified by its mark, and writes are authorized by a separate write token rather than by an identity. The bookmarklet embeds the mark and the write token, so a single click saves the current page. Anyone who knows the mark can read the collection, and anyone holding the write token can modify it, which makes the sharing model explicit rather than implicit.

Key capabilities

  • Saving pages through a bookmarklet that carries the collection mark and write token as query parameters.
  • A Manifest V3 Chrome extension that saves the active tab into an existing or new category and adds page and link actions to the browser context menu.
  • Category management with custom categories for organizing saved links.
  • Keyboard-first navigation: / for search, j and k to move, n, e, and d for create, edit, and delete, and ? for help.
  • A high-density compact list view with instant filter and sort.
  • Custom icons per bookmark using emoji, letter marks, or uploaded SVG, ICO, and PNG files.
  • Optional detailed descriptions or notes attached to individual bookmarks.
  • Interface localization in English and Chinese.
  • Write tokens hashed with SHA-256 in D1, with rate limits and field length limits guarding against abuse.

Who uses it and how

  • People who want to save links from the browser address bar without creating an account and install the bookmarklet on a bookmarks bar.
  • Chrome users who install the extension from the GitHub Releases cloudmark-chrome.zip and load it unpacked through chrome://extensions with Developer mode enabled.
  • Users reading a collection on a second device by opening https://cloudmark.site/your-mark, then copying the write token across when write access is needed.
  • Self-hosters deploying their own Worker from the repository through the Cloudflare one-click deploy button or from a local machine.
  • Developers working locally with pnpm dev against Miniflare and applying migrations with pnpm db:migrate:local.

Getting started

The hosted option is available at cloudmark.site, where a mark and write token can be generated and the bookmarklet dragged to the bookmarks bar. Self-hosting uses pnpm install with Node.js 20+, pnpm exec wrangler d1 create cloudmark to provision D1, pnpm db:migrate:remote to apply migrations, and the Deploy to Cloudflare button or pnpm preview for a local Cloudflare preview.

When to use it — and when not to

Cloudmark suits anyone who wants bookmark saving decoupled from account creation

project readme (upstream, from github) — read inline

Cloudmark

AGPL LICENSE Try It Online Deploy to Cloudflare

中文文档

Introduction

Cloudmark is a universal cloud bookmark management tool that allows you to easily save and access your bookmarks from anywhere. No login or registration required — create a collection ID (mark) plus a secret write token, install the bookmarklet, and start saving pages.

Try it online: https://cloudmark.site/

Key Features

  • 🔑 No Registration: Access your collection with a unique mark; writes require a write token
  • 🔖 One-Click Save: Bookmarklet embeds mark + write token
  • 🧩 Chrome Extension: Save the active tab with an existing or new category
  • 🏷️ Category Management: Custom categories for organization
  • ⌨️ Keyboard-first: / search, j/k navigate, n/e/d CRUD, ? help
  • 📋 High density: Compact list with instant filter / sort
  • 🎨 Custom icons: Emoji, letter marks, or upload SVG/ICO/PNG
  • 🌐 Cross-Device Access: Read anywhere; copy the write token to another device to write
  • 📝 Detailed Descriptions: Optional notes per bookmark
  • 🌍 Multi-Language Support: English and Chinese
  • 🗄️ Cloudflare D1: Relational storage on the edge

Security Model

Capability Requirement
View collection Know the mark (URL)
Add / edit / delete Valid write token for that mark
Bookmarklet save mark + token query params
  • Write tokens are hashed (SHA-256) in D1; plaintext is only stored in the browser (localStorage) and in the bookmarklet.
  • Rate limits and field length limits protect against abuse.

Quick Start

  1. Visit https://cloudmark.site/doc
  2. Generate a mark and write token (or customize the mark)
  3. Drag the bookmarklet to your browser bookmarks bar
  4. Click the bookmarklet while browsing to save pages
  5. Open https://cloudmark.site/your-mark to manage bookmarks

Chrome Extension

The Manifest V3 extension saves the active tab with an existing or new category and adds page/link actions to Chrome's context menu.

Install from GitHub Releases

  1. Download cloudmark-chrome.zip.
  2. Unzip it to a permanent directory.
  3. Open chrome://extensions and enable Developer mode.
  4. Click Load unpacked and select the unzipped directory.
  5. Configure the collection mark, write token, and Cloudmark server in the popup.

Chrome does not support one-click installation of store-external extensions for regular users. Keep the unzipped directory after loading the extension. New versions are published on the GitHub Releases page.

For local development, build and load dist-extension/ instead:

pnpm install
pnpm build:extension

See extension/README.md for permissions and development details.

Local Development

Prerequisites

  • Node.js 20+ and pnpm
  • Cloudflare account (for preview and deployment)

Install Dependencies

pnpm install

D1 setup

  1. Create a D1 database:
pnpm exec wrangler d1 create cloudmark
  1. Put the returned database_id into wrangler.jsoncd1_databases[0].database_id.

  2. Apply migrations:

# local (Miniflare)
pnpm db:migrate:local

# production
pnpm db:migrate:remote

Development Mode

pnpm dev

Visit http://localhost:3000.

Local Preview with Cloudflare

pnpm db:migrate:local
pnpm preview

Build and Deploy

One-click deploy (creates a Cloudflare Worker from this repo):

Deploy to Cloudflare

Or from your machine:

pnpm db:migrate:remote
pnpm run deploy

After the first deploy, set d1_databases[0].database_id in wrangler.jsonc (or via the dashboard) and run migrations.

Cloudflare Configuration

D1 Database

"d1_databases": [
  {
    "binding": "DB",
    "database_name": "cloudmark",
    "database_id": "your-d1-database-id",
    "migrations_dir": "migrations"
  }
]

Environment Variables

  • BASE_URL — public site URL in Worker vars (optional; client uses current origin)

Technology Stack

License

This project is open-sourced under the AGPL-3.0 license.

Contributing

Issues and Pull Requests are welcome!

  1. Fork the project
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Contact

If you have any questions, please contact us through GitHub Issues.

Frequently asked questions

Is Cloudmark free to use?

Cloudmark is open source under the AGPL-3.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does Cloudmark do?

Organize and access your bookmarks seamlessly in the cloud

What is Cloudmark written in?

Cloudmark is primarily written in TypeScript. Its source is publicly available at https://github.com/wesleyel/cloudmark, and it has 74 GitHub stars.