Privacy policy
Last updated: 30 October 2026 · Effective: 30 October 2026
Who we are
LinkMartin is a bookmark manager consisting of a browser extension and an optional web service. It is operated by Nextmeta Group LLC, 254 West Street Road, Unit A, Warminster, PA 18974, United States ("LinkMartin", "we", "us"). For data protection law, Nextmeta Group LLC is the data controller for the data described here.
Questions or requests about this policy: support@linkmartin.com.
In short
- LinkMartin is local-first. If you never sign in, your bookmarks, the page text LinkMartin captures, and your screenshots stay in your browser's local storage. We never receive them.
- Signing in turns on sync. From that moment your bookmark records — including the URLs you save and the page text snippet — are stored on our servers so they reach your other devices.
- You can create an account and sign in with an email and password, or with your Google account instead. With Google, we receive only your name, email address, profile picture, and Google account ID — never your Google password, contacts, or any other Google data. See section 2.1.
- AI features stay off until you create an account. Creating an account switches them on for that account, and you can turn them off at any time in settings. With AI on, the page title, URL, and up to 2,000 characters of page text are sent through our server to our AI provider — to write tags and a description, and to compute the similarity vector behind "Related bookmarks". With AI off, no page content is sent to any AI provider and no vector is computed. See section 2.2.
- With an account you can connect an AI assistant — Claude, ChatGPT, or Codex — to your library. The assistant then searches your bookmarks and, on Pro, saves new ones when you ask it to; what it reads becomes part of your conversation with it and is handled by Anthropic or OpenAI under their own policies. Nothing is shared until you connect. See section 2.11.
- Site icons are loaded from Google's public favicon service, which means Google sees the domains of the pages LinkMartin shows you. This happens even without an account. See section 2.5.
- We collect first-party usage statistics — which features are used, never what you save — and keep them in our own database. The extension and the web app contain no third-party analytics or advertising SDKs and no trackers. See section 2.9.
- Marketing emails are opt-in: you get them only if you tick the box at sign-up (or on the welcome screen after signing up with Google), every one carries an unsubscribe link, and unsubscribing is recorded on our side too. Service emails — verification, password, your credits — go to everyone with an account. See section 2.8.
- We show no ads, and we never sell or rent your data.
- You can export everything to a
.zipfile, delete anything at any time, and delete your account yourself. See section 6.
This website
The rest of this policy is about the LinkMartin extension and web service. This section is the exception: it covers what happens when you simply visit linkmartin.com.
We count visits using Vercel Web Analytics. It is cookieless — no cookie is set, and no profile is built. We see aggregate page views, and the script is served from our own domain rather than a third party's. Visiting this website involves no account, no extension, and no bookmark data.
The website itself keeps one thing in your browser, and only once you choose a language — in the language switcher, or in the bar that offers your browser's language: that choice, in your browser's local storage, so the next visit opens the site in it. It never leaves your browser, and clearing the site's data removes it.
1. What LinkMartin keeps on your device
The extension stores the following in your browser's own storage (IndexedDB and extension storage). None of it is transmitted anywhere unless a case in section 2 applies.
Bookmark records
- the page URL and its domain;
- the page title;
- tags, a description, your own rich-text notes, and a category;
- a favicon URL;
- a text snippet of the page — up to 2,000 characters taken from the page's visible text at the moment you save it;
- a screenshot of the visible area of the tab, downscaled to a thumbnail (about 360×180 points) and re-encoded as a JPEG;
- created / updated / deleted timestamps;
- how many times you opened the bookmark from LinkMartin and when you last did.
Settings and state
- your category list, theme, layout, whether AI is on, the language AI should write descriptions in, your custom AI instructions (Pro), and whether the "from your bookmarks" block on Google results is enabled;
- if you use your own AI key (Pro): the key and the provider's address, kept in the extension's local storage only — they are sent from your browser straight to the provider you chose and never reach our servers;
- if you signed in: your session token and a sync watermark (the timestamp of your last successful sync);
- before you create an account: a small local log of feature-usage events (see section 2.9) — at most 5,000 events or 90 days, whichever comes first. It stays on your device; if you later sign up it is sent to us with the rest of your usage statistics, otherwise it is simply overwritten.
Search queries. What you type into the extension's search box or into Google's search box (see section 2.5) is matched against your locally stored bookmarks inside the extension. It is processed in memory, is not written to disk by us, and is never sent to our servers.
Imported browser bookmarks. If you grant the optional bookmarks permission and run an
import, LinkMartin reads your Chrome bookmarks and turns them into LinkMartin records. They then behave
like any other record, including sync.
2. When data leaves your device
2.1 Sync — only after you create an account and sign in
Sync is off until you create an account and sign in. There is no anonymous or silent upload.
To sign in you give us your email address and a password, and optionally a name — or you sign in with Google instead (below). We store your email, whether it is verified, your name, a cryptographic hash of your password if you set one (never the password itself), and the date we sent you the welcome message. Each session record also stores your IP address and browser user-agent string, which is how we and you can tell sessions apart and how we detect abuse.
Sign in with Google. When you choose "Continue with Google" on linkmartin.com or in the extension,
you sign in on Google's own page; we never see your Google password. We ask Google only for the basic
profile scopes (openid, email, profile). We then store your
Google account ID, and the name, email address, email-verified status, and profile picture address
that Google shares, plus the sign-in tokens Google issues for that sign-in. We use them only to sign you in
and keep your account linked; we do not use them to read anything else in your Google account.
If you sign in with Google using the email address of an existing LinkMartin account, the two are linked into one account. If that existing account's email address had never been verified, any password set on it is removed and its pending verification and reset links stop working, because Google has just confirmed that the address is yours; you can set a new password at any time with "Forgot password". You can remove LinkMartin's access at any time in your Google Account under Security → Third-party apps & services; your LinkMartin account and bookmarks stay, and you can keep signing in with a password if you have set one.
Once signed in, every bookmark record you create or change is uploaded to our servers and stored against your account: URL, domain, title, tags, description, your rich-text notes, category, favicon URL, the 2,000-character page text snippet, the screenshot (see 2.4), open count, last-opened time, timestamps, and a marker of where the bookmark came from (saved by hand or imported); bookmarks you ask an AI assistant to save carry the tag "Assistant" (section 2.11). Deletions are synced as tombstones — a deleted record keeps its row with a deletion timestamp until it is purged, so that the deletion reaches your other devices. Your category list syncs the same way.
Settings that sync with your account: sort order and layout, theme, whether AI is on, the language AI should write in, your custom AI instructions (Pro), and — if you use your own AI key — only the provider name and the model name, never the key or its address.
The web app uses only essential session cookies to keep you signed in (signing in to the extension with Google also signs you in to the web app in that browser), plus your browser's local storage for display preferences and the usage-event buffer described in section 2.9.
We do this to provide the sync feature you asked for; nothing about your bookmarks is used for any other purpose.
2.2 AI tags and descriptions — on for accounts, off without one
AI features are off until you have an account: without one, the extension never sends page content to any AI provider. When you create an account, we switch AI on for that account, and every device you sign in to picks the setting up. You can turn it off at any time — in the extension's settings or in the web app under Account — and the change syncs to your other devices. Accounts created before September 2026 were not changed: if you never touched the switch, it stays off.
With AI on, saving a page sends the page title, its URL, up to 2,000 characters of its text, your chosen description language, your category list and — on Pro — your custom AI instructions to our server, which forwards them to our AI provider and returns suggested tags, a description, and a category. We do not store the request; we store only the result, as part of the bookmark record. To apply your plan we also keep how many AI credits you spent in each 30-day period counted from the day you registered, any credit grants you redeemed with a promotion code (amount, remaining balance, expiry, the code's identifier), and per-month token counts per AI model that we use to track our own costs.
Our AI provider for this feature is OpenAI. Under its API terms, OpenAI does not use data submitted through the API to train its models. We do not use your data to train models either. AI is optional: if it fails or you skip it, your bookmark is still saved.
Your own AI key (Pro). If you bring your own key, enrichment calls go from your browser straight to the provider you configured — OpenAI, Anthropic, or any OpenAI-compatible endpoint — under that provider's terms. Our server is not involved in those calls and does not count them against your credits. The key itself never reaches us (section 1).
2.3 Similarity vectors ("Related bookmarks")
The "Related bookmarks" list is powered by a numeric vector computed from each bookmark's text. When AI features are on and you are signed in, each time a record's text changes we send its title, domain, category, tags, description, and page text snippet to OpenAI's embedding model and store the resulting vector next to the record on our servers. The vector is a set of numbers; it is used only to find your own similar bookmarks.
With AI features off, or without an account, no page content is sent to any AI provider and no vector is computed. Your device tells our server whether AI is on with every sync, and the server skips the embedding step when it is off.
2.4 Screenshots
With sync on, thumbnails are uploaded from your browser straight to our object storage (Cloudflare R2) using a short-lived upload link issued by our server. The image bytes do not pass through our application server.
Screenshots are private. Nobody can open one by its address: the only way to view a screenshot is through our server, while signed in to the account that owns the bookmark, and the link our server issues expires after one hour. Deleting a bookmark removes its screenshot in our clean-up job.
2.5 Favicons are fetched from Google
To show a site icon next to a bookmark, the extension loads it from Google's public favicon service
(https://www.google.com/s2/favicons?domain=…). This means Google receives the domain names
of the pages LinkMartin shows you — and this happens even if you never sign in, because your browser
makes the request directly. It does not include the full URL, the page content, or any account identifier
of ours. Google's handling of that request is governed by Google's own privacy policy.
The same applies to the optional block LinkMartin injects into Google search results: the block is built inside your browser from your local bookmarks — your search query never reaches us — but the icons in it are loaded from Google.
2.6 Payments
If you buy a subscription, the payment is taken by Stripe on Stripe's own pages. We never see or store your card details. We store your Stripe customer and subscription identifiers, the plan, its status, the current period dates, and a history of plan changes, so we know whether to lift your AI limit.
2.7 Server and hosting logs
Our servers run on Vercel with a Neon Postgres database. As with any web service, our providers process technical request logs — IP address, user-agent, timestamp, requested path — for operation, security, and abuse prevention. We do not use these logs to profile you and do not combine them with your bookmark data.
2.8 Emails we send, and marketing consent
We send email through Loops. There are two kinds. Service emails go to everyone with an account and cannot be switched off: email verification (required to sign in with a password; you can ask for a new link at most once every five minutes — accounts created with Google are already verified by Google and skip this step), password reset and password-changed notices, notice of an email address change, account-deletion confirmation, the welcome message after you verify your address or first sign in with Google, and short notices about your AI credits — starter credits about to expire, credits used up, credits renewed. The credit notices go to everyone; if you have opted in to marketing they may come with tips, otherwise they carry only the facts about your account.
Marketing emails — tips on features you have not tried and news about plans — go only to people who ticked the marketing box: at sign-up with an email and password, or on the one-time welcome screen shown after your first sign-in with Google. The box is unticked by default, and leaving it unticked never changes a choice you made earlier.
Withdrawing consent. Every marketing email has an unsubscribe link. Using it stops marketing emails at once, and Loops notifies our server, so the withdrawal is recorded on our side as well; as a backstop, we also compare our records with Loops every night. You can also withdraw by writing to support@linkmartin.com. We keep the date you consented, where you agreed (at sign-up or on the welcome screen), the wording you agreed to, and the date you withdrew, so that we can show both if asked. If you later re-subscribe through Loops' own preferences page, we treat that as new consent given at that moment. Withdrawing consent never affects service emails.
To make this work we keep a contact record for you at Loops: your email address, name, whether you are subscribed to marketing, when and to which wording you consented, and a handful of account attributes used to choose the right email — your plan (free or Pro), remaining AI credits and the date they renew, whether you have tried AI enrichment, custom AI instructions, or your own AI key, and how many categories you have. If your email address changes, the contact record moves to the new address. No bookmark content is ever sent to Loops.
2.9 Usage statistics (first-party analytics)
To understand which features are used and where people get stuck, LinkMartin records feature-usage events — for example "bookmark saved", "import completed", "search performed", "AI enrichment used", "category created", "export performed", "extension installed". Each event carries only its name, the time it happened, whether it came from the extension or the web app, and a fixed set of non-identifying attributes such as a source (web / extension / import) or a count.
What is never in these events, by design: URLs, page titles, page text, tag names, category names, descriptions, notes, search queries, or anything you typed. The server accepts only a fixed list of event names and attributes and discards everything else.
Events are stored in our own database, linked to your account, and deleted 365 days after we receive them, or immediately when your account is purged. Events recorded on your device before you signed up are marked as such when they arrive. Nothing is sent to any third-party analytics service, and we set no tracking cookies. We use these statistics to improve the product and, if you have opted in to marketing emails, to pick which tips to send you (section 2.8).
2.10 The support form
If you write to us through the form on linkmartin.com/support or in the extension, your name, email, and message are filed as a ticket in Linear, our issue tracker, and you receive a confirmation email through Loops. The form is rate-limited by IP address; the counter is kept for a few minutes and is not stored.
2.11 Using your library in an AI assistant
With a LinkMartin account you can connect your library to an AI assistant — Claude (including Claude Code), Anthropic's assistant, or ChatGPT or Codex, OpenAI's — so that the assistant can work with your bookmarks during a conversation. Nothing is shared with an assistant until you connect it, and you can disconnect at any time.
Connecting. You add LinkMartin in the assistant's settings, sign in to your LinkMartin account, and approve a consent screen that names the assistant and lists what it may do: read your bookmarks and categories, save new bookmarks, and stay connected after your browser session ends. The assistant then receives a token that lets it act on your library within those limits. It never receives your LinkMartin password, and the connection is separate from your sign-ins to the extension and the web app.
What the assistant can do. When you ask it to, the assistant can search your bookmarks, open one, list your categories, and, on Pro, save new pages to your library, up to 50 at a time. It cannot edit or delete a bookmark. A search matches your words against bookmark titles, descriptions, tags, categories, and web addresses — never against page text or screenshots — and returns at most 50 bookmarks at a time.
What reaches Anthropic or OpenAI. When the assistant searches or opens your bookmarks, our server returns, for each bookmark: its title, web address, description, tags, category, LinkMartin's internal identifier for it, and the dates it was saved and last changed. A search result also carries a short excerpt, up to 280 characters, taken from those same fields. When the assistant lists your categories, it receives their names and how many bookmarks each holds. Nothing else about your bookmarks is returned: not the page text snippet, the screenshot, the site icon, or how often and when you opened a bookmark. From that point the returned data is part of your conversation with the assistant, and the company behind it handles it under its own privacy policy — Anthropic's for Claude, OpenAI's for ChatGPT and Codex — not this one. Neither is acting as our service provider here: you choose to send this data to your own assistant account. We never send your bookmarks to an assistant on our own initiative, and the connector cannot see your conversations, the assistant's memory, or files you have shared with it — only the specific request the assistant makes to it. What the assistant puts into that request is its own choice: ChatGPT, for example, says it may draw on your chats and memories when it uses a connected app.
The text of a search. The words the assistant searches for are used only to run that search and are not stored: we do not write them to our database or our logs, we do not count them in usage statistics (section 2.9), and we do not pass them to the AI provider we use for our own features (section 2.2) or to any other.
What comes back. On Pro, when you ask the assistant to save a page, it sends us the page's web address and, if it chooses, a title, a short description, tags, and one of your existing categories; it cannot create a category. We do not fetch the page: we store exactly what the assistant sent, as an ordinary bookmark tagged "Assistant", and it syncs to your devices like any other. LinkMartin's AI enrichment (section 2.2) does not run on it automatically. If you later open it from LinkMartin in the extension, the extension takes a screenshot of the page, as it does for any bookmark that has none yet.
What we store about the connection. Which permissions you approved and when, and the access and refresh tokens the assistant uses, kept only as one-way hashes so they cannot be read back. An access token is valid for 15 minutes; a refresh token, which the assistant uses to get new access tokens, for 30 days. Searching and reading need no plan. Saving needs Pro: we check your plan each time the assistant asks to save and refuse the save on the free plan, so saving stops if your Pro plan ends and works again, without reconnecting, if you subscribe again.
Disconnecting. Remove LinkMartin in the assistant's settings to end its access. If the assistant notifies our server of the removal, we delete its tokens and your consent record at once and keep only a record that the connection existed, when you approved it, and when and why it ended. If it does not, the tokens can no longer be used once they expire — within 15 minutes for the access token and 30 days for the refresh token — and these expired records stay, as hashes, until you delete your account. Changing or resetting your LinkMartin password also disconnects every assistant. Signing out of LinkMartin does not disconnect an assistant, and disconnecting one does not sign you out of LinkMartin. Deleting your LinkMartin account stops every assistant's access immediately, and all connection records — tokens, consent, and the record of the connection — are erased with the rest of your account data after the 30-day grace period (section 6).
3. What we do not do
- We do not show ads and we do not sell, rent, or trade your data.
- We do not use third-party analytics, tracking, or attribution SDKs. The extension and the web app contain no such code; the only usage statistics are our own, described in section 2.9, and they never contain what you save.
- We do not read your browsing history. LinkMartin only records the pages you explicitly save. Chrome
lists the
tabspermission as "read your browsing history"; what it actually grants here is the title and address of the tab you are saving (section 11). - We do not capture page text or screenshots in the background. Both happen only when you invoke a save.
- We do not transfer your data for advertising, credit scoring, or lending decisions.
4. Purposes and legal bases
Where the GDPR applies, we rely on:
| What | Why | Legal basis |
|---|---|---|
| Bookmark records, categories, screenshots | to provide the sync you enabled | performance of a contract |
| Email, password hash or Google sign-in link, session (incl. IP, user-agent) | to run your account and keep it secure | performance of a contract; legitimate interests (security) |
| Page title/URL/text sent to the AI provider | to produce the tags, description, and related-bookmark suggestions for your account | performance of a contract (a feature of the account, which you can switch off) |
| AI credit usage, credit grants, token counts | to apply your plan's limits and track our costs | performance of a contract; legitimate interests |
| Stripe identifiers and subscription state | to bill you and apply your plan | performance of a contract; legal obligation (accounting) |
| Feature-usage events (section 2.9) | to understand how the product is used and improve it | legitimate interests |
| Marketing email preferences and the emails themselves | to send you tips and news you asked for | consent, withdrawable at any time |
| Connection to an AI assistant — approved permissions, token hashes (section 2.11) | to let the assistant you connected search your library and save to it | performance of a contract (a feature you choose to connect) |
| Support requests (section 2.10) | to answer you | legitimate interests; performance of a contract where you have an account |
| Technical logs | to keep the service available and prevent abuse | legitimate interests |
5. Service providers
We share data only with the providers needed to run LinkMartin, and — only if you choose them — with Google for signing in, and with Anthropic or OpenAI when you connect Claude, ChatGPT, or Codex:
| Provider | What it processes | Where |
|---|---|---|
| Vercel | hosting, request logs, cookieless visit counting on linkmartin.com | US/EU |
| Neon | Postgres database — account data, synced bookmarks, usage statistics | US |
| Cloudflare R2 | screenshot files (private; readable only by their owner through short-lived signed links) | global |
| OpenAI | title, URL, page text snippet, category list, custom instructions, tags, description — for writing descriptions and tags, and for similarity vectors | US |
| Stripe | your email address, payment and subscription data, promotion codes (payment details are held by Stripe) | US/EU |
| Loops | email delivery and marketing preferences — email, name, subscription status, consent and withdrawal dates, the account attributes listed in section 2.8 | US |
| Linear | support requests — the name, email, and message you send through the support form | US |
| Google (favicon service) | the domain of pages shown in the extension | global |
| Google (Sign in with Google) | optional sign-in and sign-up — only if you choose it: Google learns that you signed in to LinkMartin, and shares with us your name, email address, email-verified status, profile picture address, and Google account ID | global |
| Anthropic (Claude) | only if you connect Claude — your own assistant, not our service provider (section 2.11): the titles, web addresses, descriptions, tags, categories, identifiers, and saved/changed dates of the bookmarks Claude retrieves at your request, and the names and bookmark counts of your categories; the web addresses, titles, descriptions, tags, and category of pages you ask Claude to save | US |
| OpenAI (ChatGPT, Codex) | only if you connect ChatGPT or Codex — your own assistant, not our service provider (section 2.11): the same as for Claude — the bookmarks and categories ChatGPT or Codex retrieves at your request, and the pages you ask it to save | US |
Each acts under its own terms and, where required, a data processing agreement. The assistants are the exception: when you connect Claude, ChatGPT, or Codex you send this data to your own account there, and Anthropic or OpenAI handles it under its own privacy policy — Anthropic's, OpenAI's.
6. Retention and deletion
- On your device: data stays until you delete a bookmark, clear the extension's storage, or uninstall the extension. Uninstalling removes the local database.
- On our servers: a deleted bookmark keeps a tombstone row so the deletion can propagate to your devices; our clean-up jobs then purge the row, its similarity vector, and its screenshot file. Feature-usage events are deleted 365 days after we receive them.
- Your account: you can delete it yourself in the web app, under Account → Delete account. The account closes immediately — you are signed out on all devices and any paid subscription is cancelled right away — and we email you a confirmation with the erasure date. All server-side data (bookmarks, screenshots, categories, settings, usage events, the link to your Google account if you used Google sign-in, and every record of a connection to an AI assistant — tokens, consent, and the record of the connection) is permanently erased after a 30-day grace period; during those 30 days you can ask us to restore the account at support@linkmartin.com, after which the deletion is irreversible. If you prefer, write to the same address and we will do it for you. Records we must keep for accounting (payment records) are retained for the statutory period.
- What outlives the erasure: to stop a deleted address from being immediately re-registered, we keep the email address itself on a block list until you ask us to lift it. And our administrative audit log — a record of account actions taken by our staff, such as a suspension or an email change — keeps the email addresses involved, so that we can account for those actions later.
- Export: the extension can export all bookmarks and screenshots to a
.zipfile at any time, so you are never locked in.
7. Your rights
Depending on where you live, you may have the right to access, correct, delete, port, or restrict processing of your data, to object to processing based on legitimate interests, and to withdraw consent. If you are in the EEA or the UK you may also lodge a complaint with your supervisory authority. If you are a California resident, note that we do not sell or share personal information as those terms are defined by the CCPA/CPRA.
Write to support@linkmartin.com and we will respond within 30 days. Most of your data is also directly under your control: export or delete it from within the extension, and delete your account from the web app (section 6). You can withdraw your consent to marketing emails at any time (section 2.8); nothing else about the service changes when you do.
8. Security
Traffic between the extension, the web app, and our servers uses HTTPS. Passwords are stored only as hashes. Google sign-in uses Google's own page and a one-time code that only the extension that started the sign-in can redeem. Sessions use bearer tokens with expiry. Screenshots live in private storage and are uploaded and read only through short-lived signed links issued to their owner. Database and object storage credentials are held server-side only, and access to production data is restricted to the operator. An account that we believe is being abused can be suspended; a suspended account cannot sign in or sync. No system is perfectly secure; if you believe you have found a vulnerability, write to support@linkmartin.com.
9. Children
LinkMartin is not directed at children and is not intended for anyone under 16. We do not knowingly collect data from children.
10. International transfers
Nextmeta Group LLC is based in the United States, and our providers listed in section 5 operate in the United States and the European Union. If you use LinkMartin from the EEA, the UK, or Switzerland, your data is transferred to the United States. Those transfers rely on the EU–US Data Privacy Framework or the European Commission's standard contractual clauses, as provided in each provider's terms.
11. Browser permissions and why LinkMartin needs them
| Permission | Why |
|---|---|
storage | keep your bookmarks and settings in the browser |
activeTab, tabs | read the URL and title of the tab you are saving, and of tabs you highlight for a batch save — Chrome shows this as "read your browsing history"; no history is read |
scripting | run a one-off script in the page you are saving to read its visible text |
sidePanel | show LinkMartin's interface in the browser side panel |
alarms | run background sync on a schedule |
bookmarks (optional, asked for only on demand) | import your existing browser bookmarks |
identity | only used when you click "Continue with Google" in the extension: it opens a sign-in window on linkmartin.com, where you choose your Google account, and returns a one-time code that the extension exchanges for your LinkMartin session. In Chrome it is optional and requested only when you first click the button; in Firefox it is part of the extension's standard permissions and shows no prompt |
| host access (all sites) | capture the page you save — any page, which is why the browser words it as access to all websites; LinkMartin reads a page only when you save it — and reach the sync server |
| content script on Google search pages | build the "from your bookmarks" block from your local data; can be switched off in settings |
LinkMartin executes no remote code: it ships all of its own logic and only calls the APIs described above.
12. Changes to this policy
If we change how we handle your data we will update this page and its "last updated" date, and — for changes that materially affect you — notify you in the extension or by email before they take effect.
13. Contact
Nextmeta Group LLC
254 West Street Road, Unit A, Warminster, PA 18974, United States
support@linkmartin.com