Meet XSaved for iPhone

Folders in backups, and a bar that stays put

A release of things that should simply work: backups that bring your folders back, tags and notes that reach your account when the iPhone got there first, a Bookmarks / Authors / Notes bar that stays where you can see it, and a Notes preview that no longer sticks to the screen.

Backups now carry your folders

Exporting used to skip any bookmark whose only organisation was a folder, and restoring ignored folders altogether, so a backup came back with every tag and note and not one folder. Both halves are fixed. A restore recreates your folders, merging by id, by X folder id or by name so nothing is duplicated, and puts every bookmark back where it was. The import summary shows the folder count alongside tags and notes.

Your existing tags and notes reach your account

If the iPhone app imported your bookmarks before the extension ever signed in, the extension joined that library but never uploaded the tags, notes and folder assignments it already had; only new edits travelled. Signing in on a library another device created now queues everything you already organised, with the same rule as always: a newer edit on the server wins.

The view bar stays under the search box

The Bookmarks / Authors / Notes bar used to slip under the search header after switching views, and card badges could draw on top of it. It is now pinned exactly at the header's edge at any scroll depth, sits above everything in the grid, and switching a view starts you at the top, the way X's own tabs do.

A Notes preview that behaves

Hovering a note card shows one preview at a time, after a short pause rather than flashing as you sweep across, beside the card and never over it. It closes when you leave, scroll, click, press Escape or open the editor, so it can no longer get stuck on screen.

XSaved for Chrome is free, for everyone

Every feature that used to need a subscription is now included in the extension: export, tag and note editing, bulk actions, the Authors tab, sort and media filters, and AI topics. There is nothing to buy in the extension. XSaved Pro lives in the iPhone app.

Pricing

What this changes for you

Same extension, no gates. Existing subscribers keep Manage Billing to cancel or update a card.

Features behind a paywall

0

Pricing screens in the extension

0

Permissions requested

one fewer

The upgrade screens are gone

No plans, no checkout, no code box. If you subscribed in the past, Manage Billing is still in the profile menu so you can cancel or update your payment method.

Send feedback from the profile menu

A small dialog for bug reports and ideas, delivered straight to the team with your extension version attached, so you never have to describe which build you are on.

One permission fewer

XSaved no longer asks Chrome for the debugger permission. It was only ever used by an internal developer page, which no longer ships either.

Sync that keeps up on its own

Your notes, tags, and folder changes now reach the cloud within about a minute, whether or not the bookmarks grid is open. Delivering them used to depend on you sitting on the page; now it happens on its own, and an edit that cannot be delivered yet is kept instead of quietly disappearing.

Reliability

What changed under the hood

Same edits, same conflict rules. The difference is that they leave on their own, and none of them go missing.

Edits reach the cloud

~1 min

Retry pacing

1 to 15 min

Edits dropped silently

None

Your edits leave without you watching

A background pass now drains queued edits once a minute, with a final pass when you close the grid. Every edit also arms a durable wake-up the moment it is saved, so closing the tab straight after typing a note can no longer strand it.

Requests all have a hard timeout now, and an incoming refresh can no longer starve your outgoing edits: pushes always get their turn. On a brand new library, your folders, tags, and notes start uploading after a few passes even if the bookmark contents are still going up, instead of waiting behind them forever.

Nothing gets dropped on the floor

When the server asks for a slower pace during a big first sync, queued edits now wait and retry rather than being given up on. Repeated failures back off gradually, from one minute to five to fifteen, and snap back to fast retries the moment one succeeds.

If the holding area for pending edits fills up completely, the oldest are moved into a durable, counted store instead of vanishing with a console warning. Edits the server permanently rejects are kept with their reason, and one stuck folder change no longer holds up the rest of your folders.

Switching X accounts mid sync is safe

Changing profile while a background organization sync was running could let one account's sync steps run against the other account's data. The whole pass now aborts cleanly and starts again for the account you switched to.

File a batch of bookmarks in one move

Select mode learned to file. Pick any number of bookmarks, drop them all into a folder, and take them back out the same way. The Edit dialog was rebuilt at the same time, so editing one bookmark is now one screen per thing instead of three stacked in a scroll.

Add to Folder, and take them back out

Select mode has Add to Folder next to Copy Links and Delete. Choose a folder, or type a name and create it on the spot, and every selected bookmark lands in it. Your selection survives the action, so filing the same batch into a second folder does not mean picking it again.

Remove from Folder is the mirror image: pick the folder and the selected bookmarks leave it. The bookmarks themselves stay saved, only the folder link is dropped, so there is no confirmation step in the way. Long operations on a big batch can be stopped part way instead of running to the end.

An Edit dialog that fits on one screen

Opening Edit now shows what the bookmark already has: its folders, its tags, its note, each on its own row with the current values underneath. Clicking a row opens an editor for that one thing.

Folders come with a real picker you can search, tick as many as you want, and create a new folder in without leaving the dialog. Tags are browsable as chips of the tags you already use, so you do not have to remember how you spelled one. Save only lights up once something actually changed, and the button beside it reads Close until you edit something, then Discard.

Passkeys you can see and manage

Passkeys stopped being a thing that happened to you once. Settings now lists every passkey that can sign you into your account, lets you add one per device, and lets you remove any you no longer trust.

See what can actually sign you in

Profile then Passkeys lists each one: what kind it is, when you added it, when it was last used, and whether it lives in a password manager or is stranded on a single device.

If your password manager still offers an XSaved passkey that is not on this list, it no longer belongs to any account and can never sign you in. The list now says so, which until now was something only the database could tell you.

One per device, and remove the rest

Passkeys do not reliably travel between Apple, Google, and Microsoft, so the one on your iPhone may simply not exist on a Windows laptop. Add another passkey is now permanent in Settings rather than vanishing the moment you had one, and it says out loud why you would want one per device.

Each passkey has a Remove action behind an explicit confirmation, and XSaved checks it is really you before anything is revoked. If it cannot, because you are on a device where that passkey does not exist, it tells you exactly that instead of failing quietly. Every screen that can remove one also reminds you that signing in with your email always works.

Add one after signing in with email

An account created with an emailed code starts with no passkey at all. The profile menu on x.com now offers Add a passkey right under Synced to your XSaved account, XSaved offers one the moment you finish signing in with email, and Settings then Profile has a Passkey section of its own. Take it or leave it: whichever you pick, the offer stops interrupting you and waits in the menu.

Setup failures speak up now too. If the passkey window is closed or setup cannot finish, you get a message saying so instead of a button that springs back. If the new passkey ends up saved only in this browser rather than a synced password manager, XSaved tells you that as well.

Continue with email

Creating an XSaved account, or getting back into the one you have, now takes an email address and a six digit code. No password, no passkey required, and no way to end up with a second account by accident.

The whole flow

Three steps, one account

The same button reaches the same account whether you are new or coming back. A passkey is something you can add afterwards, not a thing you need first.

1you@example.com -> we email you a code

26 digit code -> signed in

3existing account? -> signs you into it, never a duplicate

The same door, in or back

Every signed out surface now leads with Continue with email: the popup, the grid sidebar, the profile menu, both settings panels, the local only banner, and the topics dialog. An address that already belongs to an XSaved account signs you into that account rather than starting a second one, and each of those surfaces now says so in the same words, so nobody has to guess which button is theirs.

Passkey sign in is still there as a quiet Have a passkey? Sign in below, and you can add one at any time for one tap access.

When something goes wrong, it says so

Sign in failures on the bookmarks page used to be swallowed completely: the button simply sprang back with no explanation. Now the sidebar, profile menu, settings panels, and sign up banner all tell you what happened.

A passkey your password manager still offers, but that belongs to an account that no longer exists, is the confusing one. Picking it used to fail with a vague error or nothing at all. Now every surface explains what happened and offers Continue with email right inside the message, so you can get back in and add a fresh passkey.

A quiet word when your library is local only

Signed out, the bookmarks grid shows a small banner: your bookmarks live only in this browser, and a free account syncs notes, tags, and folders everywhere. Dismiss it once and it stays gone.

Folders everywhere, and a real export

Export got rebuilt around folders: a clean page with your folder index on top, a grid of every bookmark below, and each folder opening as its own page. Creating a folder now uses a proper dialog — and lands on x.com itself when your account supports it.

An export you can actually read

The HTML export is a self-contained page: folder index on top, all your bookmarks in a grid underneath, and a click on any folder routes to that folder's own grid. Media, tags, notes, and engagement come along, with a light/dark toggle in the corner. The JSON export mirrors the same structure — bookmarks grouped by folder, plus an unsorted bucket.

This also fixes exports that came out empty: the old export still read the retired Topics system instead of your folders.

Folders that behave like folders

Creating a folder — from the FAB popup's new "+" button, the sidebar, or the folder manager — opens a proper dialog instead of the browser's prompt. If your X account has bookmark folders, the folder is created on x.com and mirrored locally, so it exists everywhere.

Folder contents also sync more reliably: a failed fetch no longer freezes a folder as "up to date" with missing bookmarks, very large folders save what each pass retrieves instead of nothing, and opening the folders popup refreshes contents automatically.

Your face in the corner

The profile button now shows your X avatar and handle the moment the grid opens — read straight from the page, no sign-in and no loading flash. The dropdown says plainly whether you're local-only or synced to your XSaved account.

X moved bookmarks. XSaved followed.

X retired x.com/i/bookmarks and put your saves inside a new History page at x.com/i/history, with Bookmarks and Likes as tabs under it. XSaved now attaches to the new page: the show/hide toggle sits next to the History title, exactly where it always was relative to the page name.

Route map

Where your bookmarks live now

Old links still resolve — X forwards them — and XSaved recognizes both shapes.

1/i/bookmarks → /i/history

2/i/bookmarks/<id> → /i/history/bookmarks/<id>

3/i/history/likes → not your bookmarks — XSaved stays out

What actually broke

XSaved decided whether to show itself by looking for /i/bookmarks in the address bar. The day X renamed the route, that check quietly became false everywhere — no error, no warning, just a bookmarks page with no toggle on it, and no way into the grid, folders, or search.

The fix goes deeper than swapping one string. XSaved now keeps a single description of what the bookmarks page is, and every part of the extension asks that one place instead of pattern-matching the URL on its own. The next time X reshuffles its routes, there is exactly one line to change.

What you'll see

Open x.com/i/history and the toggle is next to the History title, with your saved count beside it. Open a single X folder and it's there too. Switch to the Likes tab and it steps aside — Likes isn't your bookmark library, so XSaved leaves that page alone.

Anything still pointing at the old address — a pinned tab, a bookmark of your bookmarks, a link from an older version of XSaved — keeps working.

A real folder manager

The folders dialog stopped being a list you could only look at. Create, rename, and delete folders right where you see them, with bookmark counts that update the moment something moves.

Manage folders where you use them

Every folder action now lives in the same dialog you already use to filter the grid. Create a folder, rename one, delete one you're done with — without leaving the view, and without the folder filter or its live counts going away while you work.

Counts used to lag behind reality: add a bookmark to a folder and the badge kept the old number until something else forced a refresh. Sidebars, folder popups, and the dialog now all update immediately, and a count that drifted at some point in the past gets repaired from what's actually on your device.

Deleting a folder in one tab no longer confuses another

If you had X open in two tabs, deleting a folder in one could leave the other showing a stale list — sometimes hiding folders that still existed. Open dialogs now rebuild from the authoritative post-delete state, including the case where you remove your last X folder but still have folders you made in XSaved.

New mark

The extension icon — in the toolbar, on the extensions page, and in the Web Store — is the new XSaved mark, with a thicker, bolder stroke that survives being shrunk to 16 pixels. Exported HTML files carry the same logo.

Your folders, notes and tags, on every device

Organize a bookmark on your iPhone and it shows up in Chrome — and the other way round. This release is mostly the unglamorous half of that promise: what happens when you're offline, when two devices edit the same bookmark, and when a change fails halfway.

Changes arrive without a reload

Folders created, renamed, reordered, or deleted somewhere else now refresh the open grid, sidebar, folder popup, and folder dialog in place. Notes and tags written on your phone appear as soon as you open the XSaved grid or come back to the bookmarks tab.

Behind that is one lightweight refresh rather than a stampede: rapid focus changes, navigation, and toggling the grid all collapse into a single check.

Edits that survive bad conditions

An offline rename or delete used to reappear for a moment after reconnecting. Retained changes are now sent to your account before the folder list is pulled back down, so what you did last is what you see.

When two devices touch the same bookmark at nearly the same time, notes, tags, and folder assignments each keep the newest value on their own — an older edit finishing late can't overwrite a newer one, and clearing a field is treated as a real change rather than an absence of one.

Deletes that stay deleted

Deleting a folder now removes its bookmark assignments everywhere, and that removal survives restarts and reconnects. A folder deleted on one device can no longer come back from an older device's copy, and a folder you deliberately kept can no longer be erased by an old import replaying itself.

Passkey sign-in, and sync you opt into

XSaved works entirely on your device. If you want your folders, notes, and tags on more than one device, you can now turn on sync deliberately — and sign in with Face ID, Touch ID, or your device authenticator instead of a password.

Accounts

An account only if you ask for one

First-run setup finishes as soon as your local library is ready. Nothing pushes you toward a login.

Sign-in

Passkey

Passwords

0

Cloud sync

Opt-in

Local first, and it stays that way

Setup used to end at a login banner. Now it ends when your bookmarks are imported and searchable, and the bookmarks view has no banner at all. Cloud sync starts from one quiet action in the extension popup: Turn on Sync.

Signing in is an explicit choice between using an existing XSaved account and creating a new one. A failed sign-in never silently creates an account.

One account, one library per X account

Each X account you connect keeps its own library — bookmarks, mirrored folders, notes, and tags live inside the one you selected, so the same post ID in two X accounts can't collide. Switching X accounts no longer signs you out of XSaved; it just switches which library is active.

You can delete your XSaved cloud account from inside the product after a recent passkey check. Synced data and local billing records go together; a subscription billed through Stripe still has to be cancelled with the billing provider.

If you lose the device with the passkey

A verified recovery email can issue a one-use link that reconnects your existing account instead of creating a duplicate. Recovery stays off until the sending address is configured and reviewed, and the link is never stored in readable form.

Folders are the one way to organize

XSaved had two organization systems: Topics, produced by on-device AI classification, and Folders, mirrored from X. Two systems meant two mental models, two sync paths, and a Pro gate on the half most people wanted. Topics are retired. Folders are free for everyone.

Migration

Your topics became folders, automatically

Nothing was deleted. Old topic data stays on your device as read-only history, exportable from Settings → Data.

1Topic "Design" → Folder "Design"

2Topic "Design › Type" → Folder "Design / Type"

3Topic imported from an X folder → merged back into that folder

Free, and no X Premium required

Create, rename, delete, and assign folders without X Premium — and without an X session at all for folders you create inside XSaved. The sidebar's New Topic action is now New Folder, and the Edit dialog on any card edits folders instead of topics.

Renaming or deleting a folder that came from X now reaches X immediately, with no first-use learning step. Folders you create in XSaved sync to your account when you're signed in.

Folders stop reshuffling themselves

The folders list, the management dialog, and the picker in the save dialog each used to sort folders their own way — by X's recency order in one place, alphabetically in another. Renaming a folder on X, or just adding a bookmark to it, could silently reorder everything.

A folder's position is now set once, the first time it's imported, and never moves on its own again.

Edits that don't clobber each other

Opening the edit dialog loads the bookmark's latest saved tags and notes rather than the copy the grid happened to be showing, and saving preserves anything it didn't explicitly change. A save from the grid can no longer overwrite a newer edit made from the on-X toast or another device.

Sync you can watch, and restart

A full sync used to take the page hostage behind a modal. Now it runs with a live count in the header while you keep working — and when a library really has drifted, there's one button that rebuilds it from scratch.

Sync

Nothing blocks, nothing is silently dropped

A failed sync is queued on-device and retried — after the failure, on the regular cycle, at browser startup, and right after you sign in.

Blocking modals

0

Background cycle

30 min

Retries

Auto

Reset & Re-sync

A new action in the popup wipes your bookmarks in the XSaved cloud and on this device, then rebuilds everything from X in one pass — the clean fix for a library that's missing details or out of date. Your bookmarks on X are never touched, and it confirms before it starts.

It also shows its work: each step is logged and the live processed count ticks up while it rebuilds, so you can tell the difference between slow and stuck.

The full sync stopped interrupting you

The Full Sync in Progress dialog is gone. In its place, a small live count sits next to the sync indicator in the header, and the grid stays usable — search, filter, and organize while thousands of bookmarks stream in.

A cleaner popup

The extension popup was redesigned around the count that matters, with X-blue accents on a dark surface and a shorter list of actions. Same features, less noise.

Bookmarks that read like they do on X

A saved post should look like the post you saved. Mentions, hashtags and links are blue and clickable, authors have names again, and long posts keep their paragraphs.

Text rendering

What used to get lost

Applies to newly synced bookmarks — re-sync to backfill the ones you already have.

1@handle #hashtag $cashtag → blue, opens on X

2a link written mid-sentence → kept, shown as its domain

3glaze.app (no https://) → detected and linkified

4Node.js, e.g., shadcn/ui → left alone, not a link

Links stopped disappearing

A link written inside a sentence used to vanish from the saved text entirely, and a link at the end of a post — the most common place for one — was dropped too. Both are kept now, shown as their friendly domain in X-blue. Links that exist only to power a preview card are still hidden from the text, because the card already shows them.

Bare domains typed without a protocol are linkified the way X does it, with careful matching so code, abbreviations, and version numbers stay plain text.

Names, and paragraphs

Bookmarks show the poster's real display name next to the handle instead of repeating the handle twice. The name and the styled-link data were being captured all along and then silently dropped before storage — they persist now.

Multi-paragraph posts used to collapse into one wall of text. Blank lines are preserved, so a long post reads the same in XSaved as it does on X.

Saves from your phone, and richer cards

Bookmarks you saved on your phone, or on any other device, now reliably reach your library here. And a quoted post finally looks like a quoted post — with its article and link previews intact.

Cross-device saves stop going missing

Bookmarks made outside this browser could be skipped entirely by the quick sync. They now come through the delta sync, and a periodic reconcile pass heals gaps left by an earlier interrupted run.

An interrupted sync is also no longer recorded as a completed one — which is what let a partial import look finished and stay that way.

Quoted posts and articles render properly

A quoted post now carries its own media, link card, and X article preview into the grid, instead of collapsing to bare text. Native X articles get their real card treatment, both as the main post and inside a quote.

Existing bookmarks pick this up without a re-sync, including quoted posts that have no photo of their own — a case that used to bail out early and show nothing.

More about each bookmark

Engagement signals and content metadata from X are captured at save time, and rows saved before that arrived are repaired in place rather than left half-populated.

File a bookmark as you save it

The save toast that appears when you bookmark a post on X became the fastest place to organize: pick several folders at once, uncheck one you didn't mean, and see the result in the grid immediately.

A multi-folder picker in the toast

One bookmark can belong to several folders, so the picker lets you choose several — and unchecking is a first-class action rather than something you fix later in a dialog. The toast stays alive as long as you're using it and gets out of the way when you're done.

The grid keeps up

Saving from X used to leave the XSaved grid showing yesterday's library until something forced a refresh. A save is now visible immediately, with the rest of the post's details filled in behind it as they arrive, and every write broadcasts to open views so the grid refreshes itself.

Actions you take in X's own interface — filing a bookmark into an X folder, removing it — are mirrored into XSaved as they happen, rather than waiting for the next full sync.

Author memos

You can now attach private metadata to any X author — a description of who they are, notes, and links to their content outside of X. Access it from the profile page, tweet cards, or the Authors tab.

X profile page showing Saved and Memo stats alongside Following and Followers
Author memo panel with description and a saved link entry

A private space per author

Every author now has an optional memo — a private space where you can write a description of who they are, save links to their blog posts, YouTube videos, or any external content, and add timestamped notes. All stored locally, never shared.

The memo panel opens from three places: click any avatar on a tweet card in the grid, click an avatar in the Authors tab, or use the new Memo stat on any X profile page. A small blue dot appears on avatars that already have saved metadata.

Native profile integration

Two new stats appear alongside Following and Followers on every X profile page. Saved shows how many bookmarks you have from that author and links to a filtered view. Memo opens the author panel directly. Both are styled to be indistinguishable from Twitter's native stats.

The Memo indicator shows a blue dot when you have saved content for that author, so you can see at a glance which profiles you have annotated.

Search rebuilt from the ground up

The entire search pipeline has been rewritten. A four-pass matching system, relevance scoring, and index-first scanning make finding bookmarks faster and more forgiving than ever.

Search Engine

Multi-pass matching

Four matching passes and BM25 scoring surface the right bookmark on the first try.

Speed

20x

Passes

4

Scoring

BM25

Smarter matching

Search now runs four passes per token: inverted index lookup, exact substring, word-boundary prefix, and fuzzy matching. That means typing realti finds realtime, and a small typo no longer returns zero results.

All query words must be present for a result to match. Wrap phrases in quotes for exact matches like "machine learning". The result is a search that behaves the way you expect it to.

Relevance scoring

Results are now ranked using a BM25-inspired formula that weighs exact phrase matches, token proximity, field importance, and recency. Author matches rank higher than body text, and recent bookmarks get a slight boost.

Notes are now indexed and searchable. If you wrote a note on a bookmark three months ago, search will find it just as quickly as the tweet text itself.

Search follows you across tabs

Search now works natively on the Authors and Notes tabs, not just the main bookmarks view. Filter pills and search text persist across tab switches so you never lose context.

Tab-aware queries

On the Authors tab, search filters by handle and display name. On the Notes tab, it filters by note content with inline highlighting. The clear button restores the full grid for whichever tab you are on.

Prefix modes like @ and # are automatically suppressed on tabs where they do not apply, so the interface stays clean and predictable.

Save dialog and FAB polish

The save dialog now defaults to the correct tab for your subscription tier, and the tab indicator positions itself properly regardless of which tab loads first.

The floating action bar and grid selector fade in and out with smooth transitions when switching between tabs, instead of appearing and disappearing abruptly.

A unified design language

Every surface in XSaved now shares the same glassmorphism system that adapts to your X theme. Light, dark, and dim modes all feel cohesive. Plus a new XSaved Pro badge and inline X Premium checkmarks.

Design System

Theme-adaptive glass

One blur and transparency system across every dialog, panel, and dropdown.

1FAB panel -> theme-adaptive glassmorphism

2Search dropdown -> theme-adaptive glassmorphism

3Save dialog -> theme-adaptive glassmorphism

4Pro badge -> inline verified style

Theme-adaptive glassmorphism

The FAB, searchbar, and search dropdown previously used a fixed dark style regardless of your X theme. They now inherit the same glassmorphism CSS variables as every other component, so switching between light, dark, and dim feels seamless.

Tab bar styling, dropdown focus states, and filter pill borders were all tightened to match the unified system.

Pro identity

Active subscribers now see a green XSaved Pro badge in the profile dropdown and settings panel. X Premium verification is shown as a compact blue checkmark inline with your display name, replacing the old separate badge row.

Both indicators update in real time based on your subscription status.

Drag and drop your topics into order

Topics can now be reordered and nested with drag and drop. Drop on the edges to reorder, drop in the center to nest a topic inside another.

Spatial reordering

Each topic card in the management dialog now has a grip handle. Drag a card to the top or bottom edge of another card to reorder it in the list. Drop it in the center zone to nest it as a child topic.

Nesting is restricted to root-level targets to keep the hierarchy manageable, and the dragged card dims while a visual indicator shows exactly where it will land.

Design polish

All modal dialogs now share a consistent 12px border-radius and use theme-aware shadow tokens instead of hardcoded values. Input fields across enrichment dialogs gained a subtle blue focus ring.

Backdrop overlays were softened from 80% to 60% opacity for a lighter feel when multiple dialogs are stacked.

Bulk actions and folder management

A new Select tab in the floating action bar enables bulk operations across your bookmarks. Folders and topics also get dedicated management dialogs with live sync.

Bulk Actions

Select, act, done

Multi-select bookmarks and apply bulk operations without leaving your view.

Actions

5

Dialogs

2

Sync

30 min

FAB select tab

The floating action bar now has a fifth tab dedicated to selection. Select all visible bookmarks, move them to a topic, copy their links, or delete them in bulk. The selection count updates in real time.

Toggling the bookmarks view automatically redirects to the FAB Select tab when selection mode is active, so the relevant actions are always one tap away.

Management dialogs

Folders and topics each have a dedicated management dialog with a two-column grid layout. Folders sync with X in the background every 30 minutes, and topics support inline renaming, nested editing, and merge operations.

Clicking a tab title in the FAB opens its management dialog directly, and notes in the FAB link back to their parent bookmark for quick navigation.

One settings screen to rule them all

Profile, subscription, display, and data settings are now in a single tabbed dialog. Stripe checkout and beta key redemption happen inline without leaving the page.

Unified settings

A new two-panel settings dialog replaces the scattered settings locations. The sidebar shows Profile, Subscription, Display, and Data tabs with icons, and switching between them never changes the dialog size.

Display settings let you choose your grid layout and default sort order, with changes applied immediately. The Data tab handles exports and backup restoration in one place.

Subscription management

The Subscription tab shows your current plan status with colored badges, upgrade pricing with monthly and yearly options, and beta key redemption. X Premium users see their 50% discount automatically.

Subscribe and Manage Billing buttons connect directly to Stripe, and subscription data refreshes automatically when you return from the checkout flow.

The floating action bar gets a brain

The floating action bar now opens into a full popup panel with Topics, Tags, and Notes tabs. Morphing animations make the transition feel native to the interface.

FAB Panel

Three tabs, one button

Quick access to your topics, tags, and notes without leaving the current view.

1FAB pressed -> morph to panel

2Tab: Topics 12 collections

3Tab: Tags 34 labels

4Tab: Notes 7 annotations

Popup panel

Pressing a FAB button opens a panel with switchable Topics, Tags, and Notes tabs rendered in a two-column grid. The panel morphs into place with a height animation and directional title crossfade using the Web Animations API.

Each tab gives you a quick overview of your organization without navigating away from your bookmarks. Long text is contained with overflow protection so the grid stays clean.

Profile dropdown and enrichment

A new profile dropdown accessible from the sidebar shows your account details with a close animation on dismiss. The enrichment dialog adopted a more native look with transparent inputs and a lighter backdrop overlay.

Multiple enrichment dialogs can no longer stack on top of each other, and the native X bookmark toast is preserved so folder links remain accessible after bookmark actions.

XSaved Pro arrives

The subscription system is live. OAuth authentication, Stripe-powered billing, and beta key support lay the foundation for premium features in XSaved.

XSaved Pro

Premium unlocked

Sign in with your X account and unlock the full XSaved experience.

Auth

OAuth

Payments

Stripe

Beta keys

Active

Subscription infrastructure

Sign in with your X account through OAuth, manage your subscription through Stripe, or redeem a beta key. The entire flow runs through a serverless backend on Cloudflare Workers.

Subscription status is cached locally so the extension loads quickly, with background refreshes keeping the status current.

Settings redesign

The settings modal was redesigned as a full-screen overlay with a layout that matches the standalone settings page. The popup account section is now clickable and opens settings directly.

A contextual tooltip on the subscription status badge shows plan details on hover so you can check your status at a glance.

Select multiple bookmarks at once

Click to select multiple bookmarks in the grid and apply actions to all of them. Grid layout preferences now persist reliably across sessions.

Multi-selection

Bookmarks in the grid can now be individually selected with a click. Selection styles make it clear which items are active, and the extension popup gained grid mode controls so you can switch layouts without opening settings.

This is the foundation for bulk operations that arrived in later versions like move-to-topic, copy links, and batch delete.

Grid preferences that stick

A race condition was causing the grid layout to default to masonry on every page load, ignoring your saved preference. Layout choice is now initialized synchronously from local storage so it loads correctly on the first render.

Grid preference changes made from the popup sync immediately to the content script via messaging.

Import your X folders as topics

X folders can now be imported directly as XSaved topics. Re-import to catch new additions, link multiple folders to one topic, and let background sync keep everything current.

Folder-to-topic import

Hover over any folder in the sidebar to reveal an import button. Choose to create a new topic or merge into an existing one. Re-importing a folder adds only the new bookmarks without duplicating what you already have.

Topics created from folders show a folder icon on hover so you can tell at a glance which ones are linked to an X folder source.

Multi-folder sync

A single topic can now pull from multiple X folders, giving you a many-to-many relationship between folders and topics. The import system migrated from a single source field to an array, with backwards-compatible handling for existing topics.

New bookmarks from linked folders are automatically detected during background sync checks, so your topics stay current without manual re-imports.

A smarter save dialog

The save dialog now auto-saves when you switch tabs, suggests your most-used tags, and responds to keyboard shortcuts. It also knows when to get out of the way.

Save Dialog

Keyboard-first workflow

Switch tabs, pick tags, and save without touching the mouse.

1Cmd+1 -> Tags tab (auto-saved previous)

2Cmd+2 -> Notes tab

3Cmd+3 -> Reminders tab

4Top 5 most-used tags shown first

Quick-save workflow

Switching tabs in the save dialog now auto-saves whatever you entered on the previous tab, with a green tick animation confirming the save. Your five most-used tags appear as quick-select options at the top, filtered to exclude tags already applied.

Keyboard shortcuts Cmd+1, Cmd+2, and Cmd+3 switch between tabs instantly, and focus moves to the right input field automatically.

Intelligent fadeout

The dialog fades out after 3.5 seconds if you move your mouse away, but hovering pauses the timer and any click inside disables auto-fade entirely. This means the dialog stays open when you are actively using it and disappears when you are not.

The save button auto-closes the dialog after 800ms so you get confirmation without it lingering.

Quoted tweet media and faster sync

Quoted tweets now render their embedded images, videos, and GIFs with fullscreen lightbox support. A follow-up performance pass cut sync time in half for large collections.

Quoted tweet media

Bookmarks that quote another tweet now display the quoted tweet's media inline, just like X does. Images, videos, and GIFs are all supported with the same lightbox viewer used for direct media.

Backward compatibility is handled automatically, so media from previously saved bookmarks appears without needing to re-sync.

Sync performance

API fetch delays were cut from 1000ms to 500ms with tighter jitter ranges, and initialization delays were reduced across the board. The result is roughly 50% faster sync times for full collection refreshes.

First-time setup is 2.2 seconds faster, and bulk operations like delete and create run 33% quicker. Batch sizes remain at the 100-item API cap.