Read-only access

Every post you saved, in a library you can search.

Sift connects to your X account with read-only access, imports the posts you bookmarked, and files each one under a category with tags and a one-line summary. Search the whole library, export it as plain CSV, and read a digest of what you saved — with every item linking back to the original on x.com.

We ask for bookmark.read and three other read scopes. There is no write scope in the request, so nothing here can post, follow, like or message on your behalf. The free plan imports your 100 most recent bookmarks, and Settings deletes everything we hold in one click.

explain analyze
Postgres Weekly Notes
View on x.com ↗

Before you add an index, run EXPLAIN (ANALYZE, BUFFERS). Half the time the plan is fine and the buffer numbers are telling you the working set no longer fits in cache — an index will not fix that.

AIgenerated by us, not part of the post
Engineering#postgres#performance#query-plans

Read the buffer counts in EXPLAIN ANALYZE before reaching for another index.

Evals Daily
View on x.com ↗

Most of the work in an eval suite is deciding what correct means. Writing the grader is the hard part; running it against a thousand samples is the easy part everyone talks about.

AIgenerated by us, not part of the post
AI/ML#evals#llm#rubrics

Argues the grading rubric, not the harness, is the real cost of an eval suite.

Type & Grid
View on x.com ↗

Dense product UI, in four rules: one type scale, one line-height per role, never more than two weights on a screen, and tabular numerals anywhere a number can change.

AIgenerated by us, not part of the post
Design#typography#design-systems

A four-rule checklist for setting type in information-dense interfaces.

Showing 3 of 428 · one paid check a day · this month $1.05 of X API spend

Illustration of the library view. The posts are written sample content, not quotes from real accounts.

What is verifiable today

No testimonials or customer logos here — the product is new and we have nothing honest to quote. These five are properties of the code and of X's published policy instead.

  • Read-only scopes

    tweet.read, users.read, bookmark.read, offline.access. No write scope exists to misuse.

  • Deleted there, gone here

    A nightly job removes anything X reports as deleted, within 24 hours.

  • Plain CSV, yours

    A file you own, not a lock-in. Capped at 500 posts a day, which is X's limit.

  • $0.005 per post read

    X's published rate. We show you what your own account costs to run.

  • Self-hosted

    App, Postgres and the scheduler are three containers on one box.

How it works

Four steps, and one of them costs money

The whole product is a loop: connect once, import once, then one cheap check a day forever.

  1. 1

    Connect X

    Sign in with X and approve read-only access — no password ever reaches us, and the request contains no scope that could post, follow or message. Revoking it from Settings also deletes every bookmark, category and token we hold.

  2. 2

    Import

    We read your saved posts newest-first, up to your plan's cap: the 100 most recent on Free, 500 on Pro with another 250 filled in each week. Reading a post from X costs $0.005, which is exactly why the caps exist and why they are on this page.

  3. 3

    Sort

    Each bookmark gets one of 12 fixed categories, a few free-form tags and a one-line summary. All of it is rendered in a separate labelled row, because a generated label sitting inside the post text would be an alteration of the post.

  4. 4

    Digest

    Once a day on Pro, once a week on Free, you get an email grouped by category with a link to every original post. Saved nothing since the last one? No email.

Features

Six things, each doing one job properly

No chat window, no feed, no reader designed to keep you here. Bookmarks in, sorted, out again whenever you want them.

  • Search that reaches the text

    Full-text search across the body of every saved post, narrowed by category or tag. Filters live in the URL, so any view you build is a link you can keep.

  • Categories, tags, summaries

    Claude Haiku files each bookmark into one of 12 fixed categories and adds tags plus a one-line summary. Measured at $0.18 per 1,000 bookmarks — around 3% of what the reads that produced them cost.

  • A digest you would actually open

    One email grouping what you saved, by category, with a canonical x.com link on every item. Daily on Pro, weekly on Free, and never sent empty.

  • CSV export, not a lock-in

    Download a plain CSV — categories and tags included — for a spreadsheet, Notion, Obsidian or Readwise. 500 posts per day, which is X's redistribution limit rather than a plan gate.

  • Deletion sync, nightly

    A nightly job asks X which of your stored posts are gone and clears them within 24 hours. A marker stays where the post was, so a bookmark you remember never silently vanishes.

  • Cost you can audit

    Every read is metered per post at X's $0.005 rate and attributed to your account. A typical month measures $1.05, a dormant one $0.07 — no bundle, no mystery.

The digest

Saving it is not the same as reading it

A bookmark you never open again is a delete with extra steps. So the digest is the part of the product that does the work: one email grouping what you saved by category, with a canonical link to every original post — daily on Pro, weekly on Free, and nothing at all on a day you saved nothing.

The one-line intro is generated, which costs $0.032 per user per month. The grouping, the links and the attribution are not generated at all — they are the same rules the library follows.

Sift · your daily digest

to you · 07:00 in your timezone · 4 saved yesterday

Engineering

2
  • @pg_notes_demo

    EXPLAIN (ANALYZE, BUFFERS) before you add an index

    x.com ↗
  • @queue_theory_demo

    Backpressure is a product decision, not a config flag

    x.com ↗

AI/ML

1
  • @evals_daily_demo

    Writing the grader is the hard part of an eval

    x.com ↗

Design

1
  • @type_and_grid_demo

    Four rules for type in dense product UI

    x.com ↗

Every item links to the original post. Nothing saved yesterday means no email at all.

Labelling

Our words are never dressed up as theirs

X's display rules permit formatting changes to a post and nothing else. So every category, tag and summary we generate is quarantined: a separate row outside the post container, in a hue used nowhere else in the product, under a literal AI badge, and announced separately to screen readers so the two are never read as one paragraph.

It would be easier to drop a category chip into the post body. That would also be an alteration of someone else's post, so we made the separation a visible design feature instead of a buried policy note.

Post content — X's, verbatim

Evals Daily
View on x.com ↗

Most of the work in an eval suite is deciding what correct means. Writing the grader is the hard part; running it is the part everyone talks about.

Ours — separate row, own hue, labelled

AIgenerated by us, not part of the post
AI/ML#evals#rubrics

Argues the grading rubric, not the harness, is the real cost of an eval suite.

Cost

The price is a consequence of the engineering

X bills per post returned, so how you ask decides what it costs. Asking for one post to find out whether anything is new costs $0.005; the naive version — re-fetching 100 posts every day — costs $15 a month to learn nothing.

That one decision is why a dormant account measures $0.07 a month and a typical one $1.05, and why the free plan can import your newest 100 bookmarks for about $0.55 instead of an unbounded bill. It is also why the caps are stated on this page: they are the reason the numbers hold.

What X actually charges us

  • One post read

    X's published pay-per-use rate

    $0.005
  • Free import, 100 bookmarks

    one-time, per signup

    ~$0.55
  • Dormant account

    per month, one check a day

    $0.070
  • Typical account

    per month, 120 new bookmarks

    $1.050
  • Heavy account

    per month, 1,069 new bookmarks

    $6.725
  • Re-fetching 100 posts daily

    the naive version, learning nothing

    $15.00

Measured against the sync engine that ships, not modelled. At $6/month a heavy account is roughly break-even — which is what the fair-use threshold of 1,000 new bookmarks a month is for.

Pricing

Two plans, and the reason behind every number.

Every bookmark we read is billed to us by X at $0.005 a post. So the caps below are not upsell theatre — they are the numbers our own code enforces, and they are the reason this can be priced at $6 instead of guessed at.

Annual works out to two months free.

Free

Enough of your library to find out whether having it sorted changes anything. No card.

$0/ month

No card, no expiry, no drip of reminder emails.

Connect X — free

Read-only access. Delete everything we hold from Settings, in one click.

Initial import
100 newest bookmarksThe most recent ones, and that is where it stops.
Backfill
Not includedOlder bookmarks stay on X, untouched.
Digest email
Once a weekNothing new saved? No email.
New-bookmark check
Every 7 daysOne $0.005 request, not a re-scan of your library.
Library ceiling
2,000 bookmarks storedCounting the import, the backfill and everything you save later.
Fair use
200 new saves a monthA soft line. Cross it and we talk, we do not cut you off.
CSV export
Not includedYour bookmarks stay searchable in the app.

What Free costs us. Your 100 bookmarks are $0.50 of post reads plus the author lookups behind them — about $0.55, paid by us, once. That is the whole reason the number is 100.

Recommended

Pro

For a library you actually rely on — your whole archive, filled in week by week, and a digest every morning.

$6/ month

Billed monthly — $72 over a year.

Start free, upgrade later

Checkout is not switched on for this deployment yet, so Pro cannot be bought here today. The free plan works in full.

Initial import
500 newest bookmarksImported the moment you connect.
Backfill
+250 older every weekKeeps reaching back until it has 20,000 of your archive.
Digest email
Every dayNothing new saved? No email.
New-bookmark check
DailyOne $0.005 request, not a re-scan of your library.
Library ceiling
25,000 bookmarks storedCounting the import, the backfill and everything you save later.
Fair use
1,000 new saves a monthA soft line. Cross it and we talk, we do not cut you off.
CSV export
500 posts a dayX's policy cap on how much post content we may hand one person daily.

What Pro costs us. A typical Pro library measures about $1.05 a month in X reads; the heaviest we have measured is $6.73 — more than Pro brings in at either price. That is what the fair-use line is for, and why it is written down here instead of enforced quietly.

The cap, explained

Why the free plan stops at 100 bookmarks.

X charges per post returned, not per request. Reading 100 of your bookmarks therefore costs us $0.50 in post reads, plus a lookup for each author we have not seen before — about $0.55 in total, before you have paid anything.

At 100 that is a cost we can absorb for everyone who wants to try this. Uncapped, one signup with a 5,000-bookmark history costs us around $26 on the spot. A free tier like that does not survive a good launch day, and the usual way out — quietly throttling people later — is worse than saying the number now.

Pro solves the same problem differently: instead of one enormous import, it takes your newest 500 immediately and reaches back 250 more each week. You watch the archive fill in, and the cost is spread across the subscription that pays for it rather than landing before it.

One-time cost of reading a library

BookmarksCosts us
100Free plan stops here~$0.55
500Pro starts here~$2.75
1,000~$5.30
5,000~$26

At X's published rate of $0.005 per post read, plus author lookups at twice that. Author cost falls as the shared cache fills, which is why these are approximate.

Export is 500 posts a day

That ceiling is X's, not ours: their developer policy limits how much post content any app may hand to one person per day. Run it on consecutive days and you can take everything out.

Read-only, on both plans

We ask X for permission to read your posts, your profile and your bookmarks — and nothing that can post, follow, message or unfollow. Paying changes the caps, never the permissions.

Prices in US dollars

$6 a month or $60 a year, excluding any tax that applies where you are. No setup fee, no per-seat pricing, no usage surcharge.

Questions

The things worth asking first.

Permissions, cost, X's rules and getting your data back out — answered properly, because these are the questions that decide whether connecting an account is a good idea.

Getting started

What connecting actually does, and what it cannot do.

Do you need my X password?

No, and we could not accept it if you offered. Connecting runs X's own authorization flow — OAuth 2.0 with PKCE — so you approve the request on x.com and X hands us a token afterwards. Your password never reaches this app.

The token is limited to four read scopes and nothing else: tweet.read, users.read, bookmark.read, offline.access. It is encrypted before it is stored, and deleting your account revokes it at X rather than merely forgetting it here.

Can you post, follow or send messages as me?

No. We never request a write scope, so the token we hold is physically incapable of posting, replying, liking, following, unfollowing or messaging — there is nothing to misuse and nothing for us to promise not to do. It can read your posts, your public profile and your bookmarks. That is the whole surface.

Does it work if I have 10,000 bookmarks?

Yes, progressively. Pro imports your newest 500 the moment you connect, then reaches back another 250 every week — so a 10,000-bookmark archive fills in over about 38 weeks, with a progress bar in the app the whole time. Backfill keeps reaching back until it has 20,000 of your history.

It is deliberate rather than a limitation we are embarrassed about: importing everything on day one would cost us tens of dollars before your first payment, which is exactly the shape of business that has to raise prices later. New bookmarks you save from now on arrive the next day regardless — backfill only affects how fast the old ones appear.

What happens to a bookmark once you have it?

It is stored with its author, its canonical x.com link and the date you saved it, then a model gives it one of 12 fixed categories, a few tags and a one-line summary. Those three things are ours, not X's, so they are shown in their own labelled row and never folded into the post text. After that it is searchable, filterable by category and tag, and it appears in your next digest.

What it costs

Where the money goes, and why the free plan has a ceiling.

Why is the free import capped at 100 bookmarks?

Because reading bookmarks is metered. X bills us $0.005 per post returned, so your 100 bookmarks are $0.50 of post reads plus a lookup for every author we have not seen before — roughly $0.55 per free signup, paid by us, before you have paid anything.

100 is a number we can afford for everyone who wants to try this. Uncapped, a single signup with a 5,000-bookmark history costs about $26 on the spot, and a free tier shaped like that fails on its best day. We would rather publish the limit than discover it in public.

What does Pro cost?

$6 a month, or $60 paid once a year, which works out to two months free. It buys the newest 500 bookmarks up front, another 250 of your archive every week, a daily digest instead of a weekly one, and CSV export.

Will I ever be charged for API usage on top?

No. The price is flat, and what we spend at X is our problem to manage, not a line item we pass to you. The fair-use threshold is how we bound it: 1,000 newly saved bookmarks a month on Pro, 200 on Free. Crossing it starts a conversation about what you are doing — not a surcharge and not a silent slowdown.

Why is the daily digest a paid feature?

Because checking for new bookmarks costs money every time. We ask X for your single most recent bookmark and compare it to what we already have — one post read, $0.005. Pro does that daily; Free does it every 7 days, which is what keeps a quiet free account down to a couple of cents a month. The digest cadence follows the check, because emailing you daily about a library we only look at weekly would be theatre.

Your data and X's rules

What is stored, who else touches it, and what X's policy requires of us.

What happens when I delete a post on X?

It goes from here within 24 hours. Every night we ask X's batch compliance endpoint which of the posts we store have been deleted, withheld or suspended, and act on the answer before the next digest goes out — so a deleted post cannot turn up in your inbox afterwards.

What you see is a tombstone rather than a hole: the row stays in your library marked as no longer available on X, with the content removed. Silently dropping a bookmark you remember saving is worse than telling you it is gone. This is X's requirement for anyone storing post content offline, and it is also the behaviour we would want.

Who else sees my bookmarks?

Two services, both named because you are entitled to know. Anthropic receives batches of post text to produce the categories, tags and summaries — without your handle, your email or your user id attached, because classification does not need to know whose library it is. Our email relay receives the rendered digest, which is what sending it to you requires.

That is the entire list. Your bookmarks are not sold, not used to train anything of ours, not enriched with third-party data and not shown to other users. The privacy policy spells out both processors and what each one receives.

Is the AI summary part of the post?

No, and we work to make that obvious. X's display rules forbid altering post content, and a generated label sitting inside a post body reads as exactly that. So categories, tags and summaries always render in their own row, in their own colour, with their own label — in the app and in the email. Even the CSV export prefixes those columns with ai_. The post text itself is never edited, trimmed or rewritten.

Do you store where a post was posted from?

No. X's policy forbids storing or aggregating location data separately from the post it belongs to, so we do not extract it at all — there are no geo columns in the database to fill in. There is no map view, no "bookmarks near you", and no plan for either.

What happens if I delete my account?

One button in Settings: we revoke our access token at X, then purge your bookmark list, the categories, tags and summaries generated for you, your sync state, your digest history and your stored tokens. No support ticket, no cooling-off period, no "deactivated" state that quietly keeps everything.

Two things survive, and we would rather say so than claim a clean sweep. Post text itself sits in a store shared by everyone who bookmarked the same post, so deleting your account removes the link between you and those posts rather than other people's copies. And the log of what we spent at X stays as a financial record, with your user id stripped out of it. The privacy policy sets out both.

Exporting

You can take everything with you. The ceiling on how fast is X's.

Can I export everything?

Yes — 500 posts per day, on Pro. That number is X's, not ours: their developer policy permits handing up to 500 post objects to each person who uses a service per day, by non-automated means. So export is a button you press, the count is enforced on our server, and a large library comes out over consecutive days — 2,000 bookmarks in 4 days, for instance.

The file is CSV, one row per bookmark: post id, canonical link, author handle, when it was posted, when you saved it, the post text, and the category, tags and summary in their own ai_ columns. Posts we have tombstoned are left out, because content deleted on X may not be redistributed.

Can you sync automatically to Notion, Obsidian or Readwise?

Not today. Pushing post content into a third-party service on a schedule is precisely what X's redistribution rules restrict; the exception they spell out is a download the person asks for. So we do the download well and leave the last step to you — the CSV imports directly into Notion or a spreadsheet, and our free in-browser converter turns it into Markdown for a notes app. If that changes, it will be because we asked X and got a written answer, not because we decided the rule probably did not apply.

Billing

Plans, switching between them, and what a card is needed for.

Monthly or annual — what is the difference?

Price only. Monthly is $6, which is $72 across a year. Annual is $60 billed once — $12 less, or two months free, depending on which way you like to read it. The caps, the digest and the export allowance are identical.

Do I need a card to try it?

No. The free plan needs your X connection and nothing else — no card, no expiry date, no countdown. It imports your newest 100 bookmarks, sorts them and sends a weekly digest for as long as you want it.

What happens if I move back to the free plan?

You keep the library you already have. Moving to Free reapplies the free caps — a weekly digest instead of a daily one, a check for new bookmarks every 7 days, no CSV export and no further backfill — but nothing already imported is deleted for changing plan. The only things that remove a bookmark are deleting your account, or the post disappearing from X. Self-serve checkout is not switched on for this deployment yet, so there is no subscription to change here today.

Still deciding

The two documents that answer the rest are the privacy policy — what is stored, for how long, and which processors see post text — and the terms, which set out the caps above as commitments rather than marketing.