Privacy Policy
Effective November 4, 2026.
It follows the data flows in the LinkBack app.
What this policy covers
This policy describes the LinkBack app at app.linkback.io.
Account and sign-in
Sign-in uses Firebase Authentication with Google, Facebook, GitHub, or X. The app receives the profile those providers return, including a display name, email address, and photo when the provider supplies them. The app does not have its own password form.
Links, tags, and files
Saved links can include the URL, name, description, tags, notes, privacy choice, click count, and images. Images can come from an upload, the page’s Open Graph data, a favicon, a screenshot, or an AI thumbnail. Fetching Open Graph data or a screenshot downloads the page you asked to save.
There is no total storage quota for an account. Each image is limited on its own. Storage rules accept an image only when it is smaller than 10 MB for bookmark images, screenshots, paid files, and AI image files, and smaller than 5 MB for avatars, Open Graph images, favicons, and theme backgrounds. The account form rejects an avatar larger than 2 MB. The link form rejects an uploaded bookmark image larger than 5 MB. The public image route refuses a file larger than 10 MB.
AI thumbnail descriptions are sent to OpenAI for the safety checks and the image request. The description is stored with the account’s image record. It is not included on the public bookmark page.
Profile and bookmark visibility
A profile is public when its public setting is exactly public. If that setting is missing, the older account privacy flag is used, and new accounts are created with that flag set to public. A bookmark is included only when the profile is public and the bookmark is Public.
The public page can include the display name, description, avatar, and the public bookmark’s name, URL, description, tags, date, click count, and selected image. Private notes, account roles, and billing fields are left out.
A public page shows this profile only while the profile is public. A bookmark appears there only when that bookmark is also Public.
Email and website stay on the public page when their display settings are missing or on. Turning a setting off leaves that item out. Email uses the display email when that value has one @ and no spaces, and otherwise the account email when it has the same form. A website is included only when the saved address is an http or https link, a site path, or an image data link.
Save Preferences stores this Public or Private choice with the name, display email, website, description, and display switches. The next public request uses that choice. An account that has not saved this choice still follows its older privacy flag. A saved Private choice stays private.
Payment
Card details are entered on Stripe Checkout and in Stripe’s Customer Portal. The app stores the Stripe customer id, subscription id, plan, status, and the time through which access is paid. It does not include a card form of its own.
Classic is $4.99 per month or $49 per year. It includes 200 bookmarks. Private app access starts after Stripe confirms payment. There is no free tier or trial.
Payments are generally non-refundable, except where required by law.
Classic renews automatically at the end of each paid period until it is canceled. Cancellation stops the next renewal. Access continues through the period already paid.
Limits and diagnostics
Each account can complete 2 successful AI thumbnail generations for a normalized link during a UTC calendar month. A failed or rejected generation does not count. Descriptions can be at most 300 characters. Content safeguards and separate daily request limits also apply. The safeguards can miss some descriptions.
Separate request limits apply to suggestions, screenshots, image processing, and page previews. The app’s own limit records store a hash for an address-based limit, not a labeled copy of the address. app.linkback.io and www.linkback.io are served by Vercel. Server routes write diagnostic messages with console logging. The application does not configure how long those host logs are kept, and LinkBack does not set a retention period for logs kept by Vercel, Stripe, Firebase, OpenAI, Anthropic, or Microlink.
The app at app.linkback.io starts Firebase Analytics in the browser and sends a page view. It does not pass a cookie domain and does not read a cookie preference first. The cookies it sets use the domain linkback.io. The public website does not load an analytics library and does not set those cookies. It shares that domain, so it can receive the analytics cookies set by the app.
Deletion
This cancels the Stripe subscription, removes the sign-in, and deletes bookmarks, tags, and other records this account owns. Account deletion expires an open Checkout session. A session that has already been paid is reconciled by canceling the subscription it started, without refunding the charge. Files another account still uses are kept. Some files that are not tied to a remaining record can remain. A limited deletion and billing audit record is kept. When deletion finishes, the job is reduced to a durable lock. The billing block and the subscription audit have no scheduled expiry.
Google, Facebook, GitHub, and X can confirm it is you. Deletion is accepted only within 5 minutes of that sign-in. If the X window does not finish, sign out, sign in with X again, and delete within those 5 minutes.
The finished job is the durable lock. The subscription audit keeps the cancellation time, Stripe ids, and the flags that block new billing. Email and payment details are not kept in that subscription record. The Stripe customer id remains so a later billing notice cannot reopen the account.
A webhook record that is newly processed becomes eligible for automatic cleanup 90 days after processing. Cleanup is asynchronous and does not happen on an exact day. Webhook records already stored without an expiry time remain until they are addressed separately. Failed webhook records and records that are still processing are not expired automatically. This describes the app’s cleanup behavior. It is not a legal retention period, and account deletion does not make every record disappear.
Deleting a LinkBack account cancels the Stripe subscription when one exists. Account deletion expires an open Checkout session. A session that has already been paid is reconciled by canceling the subscription it started, without refunding the charge. LinkBack does not delete or redact the Stripe customer, its invoices, its charges, or the payment method saved for the subscription. Those records stay in Stripe, separate from the app’s deletion lock. The customer can still contain the email address collected for billing and the LinkBack account id. No later deletion or redaction schedule is configured for those Stripe records.
Services the app calls
The app calls Firebase for sign-in, the database, and file storage. It calls Stripe for payment. It calls OpenAI for thumbnail checks and images. Similar-site suggestions can call OpenAI or Anthropic. Screenshots can be rendered by the app’s browser or by Microlink. Share opens LinkedIn, Facebook, or X with the saved page URL. Those services apply their own terms to the data they receive.
Operator
LinkBack is operated by William Pringle, a sole proprietor.
Support and privacy questions can be sent to wg@linkback.io.
Mailing address: 43156 Baltusrol Terrace, Ashburn, VA 20176, USA.
Age
Minimum age: 16.
The app does not collect a date of birth or check age at sign-in.
Law and venue
LinkBack uses the law of Virginia and the courts of Virginia, subject to applicable mandatory law.
