Built in 11 min

I Rebuilt Liner in 11 Minutes — Here's the Prompt

Liner charges $7/month for web highlighting and reading tools. We rebuilt the core in 11 minutes using PlugThis. Same highlights, fully local, full ownership.

By Udaya PrakashJune 8, 20269 min read

Liner — at a glance

Visit Liner

Webpage with multi-colored highlights and a floating highlight tools panel

The tool we rebuilt

Liner is in the same category as Glasp but with a slightly different positioning. Where Glasp emphasizes social discovery (follow other readers, see their highlights), Liner positions toward reading enhancement (better highlighting, better organization, AI-summarized reading lists). Liner has been around longer than Glasp and has a more polished UI with broader cross-platform support (mobile apps, PDF support, more integrations).

Pricing: $7/month for Pro, which removes most caps and adds AI features. Cheaper than Glasp's $8/month but with similar value. The core highlighting functionality is on the free tier — Pro adds organization, AI, and cross-platform sync.

The interesting question for the rebuild is the same as Glasp: most users want personal highlighting and search. The social and cross-platform layers add value for some users but aren't required for the core experience. The rebuild covers the core well at lower marginal cost (after the PlugThis subscription).

Worth flagging: Liner's PDF support is genuinely useful for research workflows. The rebuild doesn't include PDF highlighting out of the box — that's a separate extension (covered in the related rebuilds). If PDFs are your primary content, this rebuild only covers half your need.

What I built

A Chrome extension that lets you highlight text in three colors, persists highlights across page visits, organizes them by source, and provides a clean dashboard view with search and filtering. Plus a small floating "Highlight Tools" panel that appears on any text selection — color picker, add-note button, copy-as-quote button.

Liner rebuild — dashboard view of highlights organized by source with search and filters

It took 11 minutes — a few minutes longer than Glasp because the floating tools panel adds UI complexity beyond context menus. The dashboard view is more sophisticated too, with filter chips and source grouping.

Output: 5 files (manifest, content script, content CSS, popup HTML, popup JS), about 320 lines of code. No external dependencies.

The prompt I used

PlugThis prompt

A few notes:

The "Copy as quote" feature is small but high-leverage. People highlighting articles often want to paste the quote into Notion, Slack, or a tweet. Having the markdown attribution pre-formatted saves an annoying manual step.

The Notion API integration is optional but expected. Researchers and writers often want highlights to land in Notion automatically. Notion's API accepts the highlight as a database entry with structured fields (text, source, color, notes). Setup requires the user to provide an integration token in settings.

The full-page dashboard (instead of a small popup) matters for usability. Liner's dashboard is genuinely good — sortable, filterable, searchable. The rebuild matches it by opening the dashboard as a full tab rather than constraining it to popup space.

How it works

Same architecture as Glasp with three additions: floating tools panel, Notion integration, full-page dashboard.

Content script runs on every webpage. On selectionchange events, it:

  1. Checks if the selection has at least 5 characters
  2. Computes the selection's bounding rectangle
  3. Positions the floating tools panel above the selection
  4. Animates the panel into view via CSS transition

The panel contains: three color buttons (each a colored circle), a "Note" button, a "Copy as quote" button. Click handlers wrap the selection in colored spans, save to storage, or copy to clipboard.

When the panel disappears (selection cleared or panel clicked-outside), the animation reverses.

Storage schema is the same as Glasp with one addition:

{
  id: 'highlight-12345',
  url: 'https://example.com/article',
  pageTitle: 'How Chrome extensions work',
  text: 'The selected text here',
  color: 'yellow',
  note: '',
  createdAt: '2026-06-08T14:32:00Z',
  notionPageId: null  // populated if synced to Notion
}

Background worker handles two things:

  1. Routes context menu clicks (alternative to the floating panel for users who prefer right-click)
  2. Coordinates Notion API sync. When a highlight is saved, if the user has configured a Notion integration token, the background worker pushes the highlight as a new database entry. On success, it stores the returned notionPageId back to the local highlight record (so we can update if the user edits the note later).

The Notion API call from the background worker:

const response = await fetch('https://api.notion.com/v1/pages', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${notionToken}`,
    'Notion-Version': '2022-06-28',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    parent: { database_id: notionDatabaseId },
    properties: {
      'Text': { title: [{ text: { content: highlight.text } }] },
      'Source': { url: highlight.url },
      'Color': { select: { name: highlight.color } },
      'Note': { rich_text: [{ text: { content: highlight.note } }] }
    }
  })
});

Popup page (full tab) is the dashboard. About 80 lines of vanilla JavaScript:

  • Loads all highlights from chrome.storage.local
  • Groups by source URL
  • Renders source cards with expandable highlights
  • Search input filters across all text fields
  • Filter chips for colors and date ranges
  • Sort dropdown for ordering
  • Export buttons (Markdown, JSON, Notion sync)

Vanilla JS keeps the dashboard fast even with thousands of highlights. No React, no virtual DOM, no bundling.

Cost breakdown

Cost comparison: Liner $7/month vs PlugThis with no API costs

Paid subscription

Liner Pro subscription

/mo

Free tier limits, mobile apps require Pro

Build with PlugThis

PlugThis Starter

/mo

API: $0/month for core; ~$1/month if Notion API sync used heavily

Storage-only; no AI API costs

The same cost dynamic as Glasp. PlugThis Starter at $29/month vs Liner Pro at $7/month. The headline is higher.

Where it tilts:

No usage caps. Liner's free tier caps highlights; Pro removes the cap. Rebuild has no cap because there's no central service.

Marginal cost is zero. If you're already on PlugThis Starter for another extension, adding this one is effectively free. Liner stays at $7/month indefinitely.

No vendor risk. Liner has been around long enough that vendor risk is low, but it's still a third-party service. The rebuild is pure local storage — works as long as Chrome exists.

Cross-platform tradeoff. Liner's mobile apps are useful if you read on phone. The rebuild is Chrome-only. If mobile reading is core to your workflow, Liner's value is real.

For users who specifically want the mobile experience, Liner is worth the subscription. For desktop-only readers who want personal highlighting with full ownership, the rebuild is the more durable choice.

Side-by-side feature comparison

Before

Liner Pro subscription

  • Highlights with multiple colors and notes
  • Persistent highlights across visits
  • Mobile apps (iOS/Android) with sync
  • PDF highlighting support
  • AI-summarized reading lists
  • $7/month, free tier with caps
  • Centralized service — usage tracked by Liner
After

PlugThis-built extension

  • Highlights with multiple colors and notes
  • Persistent highlights across visits
  • Chrome only (no mobile apps)
  • HTML pages only (PDFs need a separate extension)
  • AI summaries: add via prompt extension
  • $29 PlugThis, no per-highlight costs
  • Fully local — no service dependency or tracking

The PDF gap and the mobile gap are real. If those are your primary needs, stay with Liner.

Customization ideas

Customization settings showing color presets, keyboard shortcuts, and export integrations

Custom color palette. Add unlimited colors beyond the default three. Useful for color-coding by topic, reading status, or importance.

Keyboard shortcuts. Bind colors to keys (Y for yellow, G for green, P for pink). Press the key while text is selected to highlight. Faster than the floating panel for power users.

Auto-tagging. Use AI to suggest tags for each highlight based on content. Optional — adds ~$1/month in API costs at moderate use.

Reading goals. Set weekly highlight targets ("save 20 highlights from technical reading"). Track progress on the dashboard.

Anki integration. Auto-create Anki flashcards from highlighted definitions or key facts. Combine with the Auto-Flashcard Creator prompt for a complete spaced-repetition pipeline.

Reader mode pre-processing. Before applying highlights to a page, use readability detection to strip ads/sidebars. Highlights apply only to the actual article content, not chrome.

Multi-device sync. Use chrome.storage.sync instead of chrome.storage.local. Highlights sync across Chrome installs signed into the same account. Quota limit (~100KB) restricts this to recent highlights, but that's often enough.

Each is a small extension. The core architecture supports them.

Try it yourself

Drop the prompt into PlugThis, load into Chrome, optionally configure Notion API token in settings. About 12 minutes to a working highlighter with dashboard.

For the PDF gap — separately, the PDF Summarizer prompt handles PDF content. Two extensions cover the Liner feature set if you need PDF support.

The Liner rebuild is conceptually identical to the Glasp rebuild with a more polished UI and Notion integration. The same cost case applies: if you only need desktop highlighting, the rebuild gives you ownership for the same total cost or less. If you need PDF support or mobile apps, Liner's subscription value is real.

Compare side-by-side

PlugThis vs Liner — full breakdown

Liner alternative — build your own AI-powered web highlighter and search assistant with PlugThis. from $29/month, your own AI keys.

Read the full comparison →

Other rebuilds

Build your own

Paste the prompt above into PlugThis and ship your own version in minutes.

Open the builder