Spek
For publishers

One button.
A quieter read.

Let readers carry an article into Spek without an account, an upload, or a server-side integration.

Your pageMarked article text
Private handoffCompressed URL fragment
SpekDecoded in the browser
Three small steps

Tell the button what belongs to the article.

  1. 01

    Mark the content

    Give the article and its heading an ID—or use selectors already present in your page.

  2. 02

    Add the button

    Point data-spek-content and data-spek-title at those selectors.

  3. 03

    Load the helper

    Include Spek’s small browser script once. It handles extraction, compression, and the redirect.

Copy and adapt

The complete integration

<h1 id="article-title">Article title</h1>

<article id="article-body">
  Your article content…
</article>

<button
  type="button"
  data-read-in-spek
  data-spek-content="#article-body"
  data-spek-title="#article-title"
>
  Read in Spek
</button>

<script
  src="https://your-spek.example/read-in-spek.js"
  data-spek-url="https://your-spek.example/read"
  defer
></script>

The Spek address is filled in automatically on this page.

Browser only

The article never becomes an upload.

  • Selection-awareIf a reader selects a passage first, only that selection is opened.
  • Private transferThe text is gzip-compressed into a URL fragment, which is not included in the request to Spek.
  • Clean arrivalSpek removes the fragment immediately, then prepares the article through its local reading pipeline.
  • Bounded safelyImports are capped at 64 KiB encoded and 250,000 decoded characters. Longer work can be opened as a file.

Give every article a quieter door.

Open Spek