These are the new Terms, version 2026-10-15. They take effect on 24 November 2026. Until then, the Terms at /terms apply and everything works as before. An account opened from 24 October 2026 accepts this version when it signs up, and this version applies to it at once.

The Kit Licence that comes with them: /kit-licence. Every change, in Arabic, as a reading aid: بالعربية (the English text binds).

Fingerprint of this text (SHA-256): 1435bc414fef9afb38801493c9d4c110dc1d1ae0519616f20179acf5ca6d710e
Fingerprint of the Kit Licence: a8dc07901bd353ddde0aa242fd487a58e606bbe3d31a13b886e6c326357ff466

Boosthis — Terms of Service & Privacy Policy

This single document contains both the Terms of Service (Part A) and the Privacy Policy (Part B) for Boosthis, a developer performance toolkit ("Boosthis", "we", "us", "our"). By installing, enabling, or otherwise using Boosthis, you ("you", "your", or the "User") agree to this entire document. If you do not agree, do not install or use Boosthis. An account holder must also accept this version of the document expressly, by the step Part A, Section 29 describes.


Part A — Terms of Service

1. Acceptance and eligibility

2. Definitions

3. Accounts, Project Keys, and workspaces

4. License to use Boosthis, and restrictions

5. Acceptable use

You are solely responsible for your own application, your source code, your data, your users, and for what you place into route names, labels, metadata, the optional app display name, and exception messages. The optional app display name is developer-provided metadata: it is transmitted to and stored by the Maintainer, shown back to you in your own dashboard so you can tell your installs apart, and — like every other field — must not contain personal data or anything you are not entitled to share. You must not use Boosthis to process, transmit, or expose unlawful content or to violate the rights of any third party.

You — not the Maintainer — are responsible for your end users. Boosthis runs inside your application; you are the controller of any data your app handles. If any law, contract, or privacy regime that applies to you requires you to disclose to, or obtain consent from, your own end users before collecting, processing, or transmitting performance telemetry from their use of your app, that disclosure and consent are your responsibility, not the Maintainer's. The consent screens, notices, and controls Boosthis ships govern the relationship between you (the developer/integrator) and the Maintainer; they are not a substitute for any notice or consent you owe your own users, and the Maintainer makes no representation that they satisfy your obligations.

You must have the right to instrument the application. You represent and warrant that, for every application, service, or site you install Boosthis into, you either own it or are authorised by its owner to install monitoring software in it and to transmit its telemetry to the Maintainer. You must never install Boosthis into an application you do not own or control, and you must never use a Project Key to collect telemetry on behalf of anyone who has not authorised it.

Prohibited uses. In addition to Section 4, you must not use Boosthis, its API, its dashboards, or its AI tooling:

Enforcement. Where the Maintainer reasonably believes this Section has been breached, it may — immediately, without notice, and in addition to every right in Section 14 — suspend or terminate your account, revoke or rotate your Project Keys, disable affected installs through the Service's activation and kill-switch mechanisms, and refuse further service. No refund is due for a suspension or termination under this Section. The Maintainer may also preserve and disclose records where it is required to do so by law, or where it reasonably believes disclosure is necessary to prevent serious harm. It answers only lawful requests from competent authorities. When it answers one, it discloses only the narrowest data the request needs, and it tells the affected customer about the request unless the law forbids it.

Reporting misuse. If you believe Boosthis is being used in breach of this Section, email support@boosthis.com with "abuse" in the subject. Include whatever detail you can; reports are reviewed by the Maintainer.

What the Maintainer can and cannot see. Boosthis receives performance and crash telemetry. It does not receive your application's source code, your files or your end users' data, except in three cases. A build map you upload can embed the source text it was built from: that text is discarded on arrival, and only file paths, identifier names and the table joining them to positions are kept, for 90 days (see Part B). A message you send to support can carry attachments: only each attachment's name, size and type are kept, and its contents are never downloaded. And the telemetry can include personal data about your end users, which Boosthis processes on your behalf under the Data Processing Agreement described in Section 25. None of this lets the Maintainer inspect, supervise, or police what your application does, and nothing in this Section is a representation that it does so. Operating your own application lawfully is your responsibility alone; this Section defines what is forbidden on the Service and what the Maintainer will do when it learns of a breach.

6. Boosthis intellectual property

7. Ownership and assignment of Telemetry

By installing, enabling, or otherwise using Boosthis with a registered app, you agree to the following about everything your app sends to Boosthis — the issue signatures, the fix-resolution signals, and any optional full performance samples you choose to turn on — and everything submitted to the rule book through the MCP server or the HTTP API, including a draft rule an AI you have connected writes and submits on your behalf (together, the "Telemetry"):

8. Feedback

If you send the Maintainer any feedback, ideas, suggestions, or bug reports about Boosthis, you grant the Maintainer a perpetual, irrevocable, worldwide, royalty-free, fully sublicensable license to use, copy, edit, adapt, publish, distribute, and sublicense them for any purpose, without obligation, attribution, confidentiality, or compensation to you. This Section is the catch-all: anything that reaches the Maintainer outside the doorways named in Section 7 is covered here.

9. AI-generated suggestions are not approvals

Boosthis surfaces performance rules and AI-assisted fix suggestions through its MCP server, HTTP API, and documentation. These are suggestions, not approvals. You are solely responsible for reviewing, testing, and deciding whether to apply any suggested change before you ship it. The Maintainer is not responsible for any outcome of an applied suggestion.

Rule text may be machine-generated. A rule's title and fix text may be written by the Maintainer's own model, by an AI a developer connected to Boosthis, or by the Maintainer, and an approved rule may be served as written. Every rule a developer can fetch is human-reviewed: a person decides that it may be served. That review is a review, not a verification — it is not a check that the rule is correct, safe, or suitable for your application, and no Protected Party warrants that it is.

Applying a fix automatically is your decision and your risk. If you let an AI assistant, an agent, or any other automated tool fetch a fix and apply it to your code without a person reading it first, that is your choice and the risk is yours. Boosthis never applies a change to your code.

A rule may change or be withdrawn at any time, without notice. A rule served through the MCP server or the HTTP API may be re-worded, replaced, or withdrawn at any time and without notice to you, and the Maintainer is under no obligation to keep serving a rule you have previously received.

The "Ask Boosthis" assistant. The dashboard assistant answers questions about your own telemetry. It is software, not a person; it is not professional advice of any kind — medical, psychological, legal, or financial; and it is not an emergency or crisis service. If what you type appears to describe self-harm or harm to another person, the assistant replies with crisis-line information instead of an AI answer. That reply is automatic: nothing is monitored, no one is alerted, and no one is watching the box. In an emergency, contact your local emergency number or a crisis line directly.

10. Third-party dependencies and services

Boosthis may rely on third-party software, registries, AI providers, and hosting platforms. Your use of those is subject to their own terms, and the Maintainer is not responsible for them.

Destinations you connect. You can send your project alerts to places outside Boosthis: an alert webhook at an address you supply, or a chat workspace you connect, such as Slack. Only project alerts go there, along with the test message sent when you connect a destination or ask for one; billing, account and security notices are never sent to a destination you connect. A destination receives what you route to it, on your instruction: the workspace owner connects it, and the owner or an admin chooses which project's alerts go where. The service behind it is one you chose, not one the Maintainer engaged, and what it does with what it receives is your responsibility and is governed by your own agreement with it. Boosthis keeps each destination's address sealed while it is stored, and you can disconnect a destination at any time.

11. Disclaimer of warranties

BOOSTHIS IS PROVIDED "AS IS" AND "AS AVAILABLE," WITH ALL FAULTS AND WITHOUT WARRANTY OF ANY KIND, whether express, implied, or statutory, including without limitation any implied warranties of merchantability, fitness for a particular purpose, title, non-infringement, accuracy, and any warranties arising from course of dealing or usage of trade. No Protected Party warrants that Boosthis will be uninterrupted, timely, error-free, secure, or free of harmful components, that any defect will be corrected, or that the PII guard will catch every identifier or secret — the PII guard is a best-effort defence against common identifier and secret field names, not a guarantee. No advice or information, oral or written, obtained from any Protected Party creates any warranty not expressly stated here. You assume the entire risk as to the quality, performance, and results of Boosthis and use it entirely at your own risk. Boosthis is not designed, intended, or licensed for use in high-risk activities — including medical or life-support systems, aviation, nuclear facilities, weapons systems, or any other environment where a failure could lead to death, personal injury, or severe physical or environmental damage — and no Protected Party is liable for any use of Boosthis in such activities. This disclaimer does not withdraw the security measures the Maintainer describes in Part B and maintains; it means only that no measure is guaranteed to stop every incident. This disclaimer applies to the Kit as well as to the Service, and the Kit Licence adopts it, always subject to the exceptions in Section 12. Some jurisdictions do not allow the exclusion of certain warranties, so some exclusions may not apply to you.

12. Limitation of liability, assumption of risk, and release

Use at your own risk — no liability. You use Boosthis entirely at your own risk. To the maximum extent permitted by law, and subject to the exceptions below, none of the Protected Parties (defined in Section 2 — including the owner, creator, and administrator of Boosthis, its maintainers and contributors) will have any liability of any kind to you or anyone else for any loss or damage arising from or relating to Boosthis — including any data exposure, leak, loss, corruption, downtime, security incident, or business loss. This clause works together with Sections 11–13. If you do not accept this, do not install or use Boosthis.

No liability. SUBJECT TO THE EXCEPTIONS BELOW, AND TO THE FULLEST EXTENT PERMITTED BY LAW, IN NO EVENT WILL ANY PROTECTED PARTY (INCLUDING THE OWNER, CREATOR, AND ADMINISTRATOR OF BOOSTHIS) BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL, EXEMPLARY, OR PUNITIVE DAMAGES, OR FOR ANY LOSS OF PROFITS, REVENUE, BUSINESS, DATA, GOODWILL, OR OTHER INTANGIBLE LOSSES, OR FOR ANY DATA EXPOSURE, LEAK, LOSS, CORRUPTION, DOWNTIME, SECURITY INCIDENT, OR REGULATORY PENALTY, ARISING OUT OF OR RELATED TO BOOSTHIS OR THESE TERMS — WHETHER BASED ON WARRANTY, CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY, STATUTE, OR ANY OTHER LEGAL THEORY, AND WHETHER OR NOT ANY PROTECTED PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES, AND EVEN IF A REMEDY FAILS OF ITS ESSENTIAL PURPOSE.

Liability cap. SUBJECT TO THE EXCEPTIONS BELOW, AND TO THE EXTENT ANY LIABILITY CANNOT BE FULLY EXCLUDED, THE PROTECTED PARTIES' TOTAL AGGREGATE LIABILITY FOR ALL CLAIMS WILL NOT EXCEED THE GREATER OF (A) THE TOTAL AMOUNT YOU ACTUALLY PAID THE MAINTAINER FOR BOOSTHIS IN THE TWELVE MONTHS BEFORE THE CLAIM AND (B) SAR 100. THIS CAP IS AGGREGATE ACROSS ALL CLAIMS, NOT PER-INCIDENT. FOR ANY NO-CHARGE PRODUCT THE LOWER CAP IN SECTION 16 APPLIES INSTEAD.

Assumption of risk. You acknowledge that Boosthis is an automated performance tool that runs inside your own application, that you alone control what data your application handles and exposes, and that you knowingly and voluntarily assume the risk arising from your use of Boosthis and from any change you make in reliance on it — except risk caused by a failure on Boosthis's side, or by anything listed in the exceptions below.

Release. To the extent the law allows, you release the Protected Parties from claims arising from a change you chose to make to your own application in reliance on a Boosthis finding or an AI-suggested change, because applying it was your decision. This release does not reach claims you could not have known about when you accepted these Terms, claims caused by a failure on Boosthis's side, or anything listed in the exceptions below.

Exceptions — what these Terms never exclude or limit. Nothing in these Terms — including every exclusion, limit, cap, release, disclaimer, and assumption of risk in Sections 3, 11, 12, 13, 14, 16, and 19 and in Part B — excludes or limits liability for (a) fraud or fraudulent misrepresentation; (b) gross negligence or wilful misconduct; (c) death or harm to a person; or (d) anything else that applicable law does not allow to be excluded or limited. These Terms also keep every right and remedy that applicable consumer-protection law gives you and that a contract cannot take away, such as the refund rights in Section 15. These exceptions apply to every Protected Party alike.

This Section applies to the Kit as well as to the Service, and the Kit Licence adopts it, always subject to the exceptions above. Some jurisdictions do not allow certain limitations, so some of the above may not apply to you; in that case the Protected Parties' liability is limited to the minimum permitted by law.

13. Indemnification

To the fullest extent permitted by law, you agree to defend, indemnify, and hold harmless the Protected Parties from and against any claims, damages, liabilities, losses, and expenses (including reasonable legal fees) arising out of or related to: (a) your application, source code, data, or users; (b) the data you place into route names, labels, or metadata; (c) your breach of these Terms or your violation of any law; (d) your violation of any third party's rights; or (e) any material you, or an AI you connected, submitted to Boosthis — including any breach of the warranty in Section 7 that it was yours to send, that it is not any third party's proprietary, confidential, or licensed material, that you have a lawful basis for and have disclosed any personal data your own code put into it, and that nothing submitted to the rule book describes an identifiable person. Ordinary use of Boosthis as these Terms allow is not, by itself, a ground for this indemnity, and it never covers a claim to the extent it was caused by a failure on Boosthis's side (for example, a key that Boosthis itself exposed) or by anything listed in the exceptions in Section 12.

14. Term, suspension, and termination

15. Subscriptions, billing, and payment

Boosthis offers optional Paid Plans — subscriptions billed either monthly or yearly, whichever you choose at checkout, that unlock higher limits and additional features on the hosted service. The plans, prices, the billing period, and what each includes are shown on the billing page at the time of purchase.

16. Free, beta, and no-charge products

Parts of Boosthis may be provided at no charge — including free features, trials, beta or pre-release versions (such as TestFlight builds of the mobile app), and complimentary or maintainer-granted access (together, "No-Charge Products").

17. Confidentiality, publicity, and benchmarks

18. Export controls and sanctions

You represent that you are not located in, or ordinarily resident in, any country or territory subject to comprehensive sanctions or embargoes, and that you are not on any government sanctions or denied-party list. You agree to comply with all applicable export-control and sanctions laws in your use of Boosthis.

19. Changes to Boosthis and to these Terms

20. Governing law and dispute resolution

21. Severability

If any provision of these Terms is held unenforceable, that provision will be limited or removed to the minimum extent necessary, and the remaining provisions will remain in full force.

22. No waiver

The Maintainer's failure to enforce any provision is not a waiver of its right to do so later.

23. Assignment

You may not assign or transfer these Terms, your Account, or your Project Keys without the Maintainer's prior written consent. The Maintainer may assign these Terms freely, including in connection with a merger, acquisition, or sale of assets.

24. Force majeure

The Maintainer is not liable for any delay or failure caused by events beyond its reasonable control, including outages of third-party infrastructure, network failures, or acts of nature.

25. Entire agreement

These Terms (together with the Kit Licence published at https://www.boosthis.com/kit-licence, the privacy policy in Part B, and the Data Processing Agreement published at https://www.boosthis.com/processing) are the entire agreement between you and the Maintainer regarding Boosthis and supersede any prior understanding on the subject.

This version replaces everything before it. From the date this version takes effect for you, it replaces every earlier version of these Terms, and every earlier licence or permission for any Kit or other Boosthis code — including the Apache License 2.0 — for you and for everyone using Boosthis through your Account. Earlier versions end that day. Anything you already owe or promised under an earlier version stays as it was, and so does anything that already happened under it. Nothing outside these documents adds to them or overrides them, including an earlier version, a licence file inside an earlier Kit, an email, or a guide. Later changes follow Section 19.

The Data Processing Agreement is incorporated into these Terms by reference. Where you install a Boosthis kit in your own application, Boosthis processes personal data about your end users on your behalf: for that data you are the controller and the Maintainer is the processor, and the agreement at https://www.boosthis.com/processing is the written record of that relationship — what we do with the data, on whose instructions, what happens at the end, what help we give with a request or an incident, and what we commit to on security. Accepting these Terms accepts that agreement; there is no separate signature and no countersigned copy to chase. It states its own in-force date and keeps every earlier revision listed, so which version you accepted stays answerable later. The companies that receive anything are deliberately not listed inside it — they are at https://www.boosthis.com/subprocessors, on the notice period stated there, so a change of provider does not require amending an agreement you have already accepted.

Which document governs. Where documents that form part of this agreement say different things: the Data Processing Agreement governs the personal data the Maintainer processes on your behalf; the Kit Licence governs your rights in the Kit; the renewal sentence recorded against a payment, as described in Section 15, governs the amount and the billing period of that payment; a written arrangement for a plan arranged with the Maintainer overrides these Terms only where it says so expressly; and in every other case these Terms govern. Between the English and the Arabic text of these Terms, the English text binds, as the Language clause states.

Language. These Terms are written in English, and the English text is the binding version. The Arabic translation is published only to help you read them: it is not a second agreement or an authorised version, and if it differs from the English text in meaning or in detail, the English text alone binds the parties and is the one relied on in any dispute.

26. Notices

27. Copyright and other intellectual-property complaints

What this section is for. Boosthis has no public feed, profile or gallery of customer material. Human-approved rule proposals can be delivered to other accounts, including title and fix text you or your connected AI submitted; Part B sets out what the Maintainer holds and who can see it. A few paths do accept material you supply — build and source maps you upload, the free text of a rule you propose, messages to the "Ask Boosthis" assistant, mail to support, and the display names you choose for a project or an app. If you believe anything held on the Service infringes your copyright or another intellectual-property right of yours, this section is how to say so and what the Maintainer will do about it.

Where to send a complaint. Email support@boosthis.com with "copyright" in the subject, addressed to the Copyright Complaints contact, Veqtara Tech Company. The same complaint may be sent by post to the registered address in the Contact section of Part B. That contact is published on the public Terms page at https://www.boosthis.com/terms and in the Arabic reading of these Terms, so a rights holder never needs an account to find it.

What a complaint must contain. So that the Maintainer can act on a complaint rather than write back asking, include all of the following:

A complaint missing something is not discarded. The Maintainer will say what is missing and hold the complaint open until you answer.

What happens next. The Maintainer acknowledges a complete complaint once received. Where it concludes the material is likely infringing it removes or disables that material, and tells the customer who supplied it what was removed, why, and that they may reply. Where an approved rule was served to other accounts, removal disables its future delivery; other material may be deleted from the Maintainer's systems. Approved rule text may reach other accounts. The Maintainer may act sooner, and without waiting for a reply, where a complaint is plainly well founded, and may refuse a complaint it concludes is not well founded, saying why.

Counter-notice. If your material was removed and you believe that was wrong, email the same address with "copyright counter-notice" in the subject, or send it by post to the registered address in the Contact section of Part B. Identify what was removed and where it was, say why you believe the removal was a mistake or a misidentification, and give your name, postal address, email address, and signature. The Maintainer passes a counter-notice to the complainant. Where the complainant does not say within 10 business days that it is taking the matter further, the Maintainer may restore the material; where restoration is impossible because the material was deleted, it will tell you so rather than leave you waiting.

Repeat infringers. An account that is the subject of repeated upheld infringement complaints has its access terminated under Section 14, and the Maintainer may revoke its Project Keys under Section 5. What counts as repeated is a judgement on the facts rather than a counter: one deliberate, large-scale infringement can be enough, and a complaint that is not upheld never counts toward it.

Misusing this channel. A complaint made in bad faith, or a misrepresentation that material is infringing, is itself a breach of Section 5 and may cost you your account. It may also leave you liable to the person whose material was removed.

This is a process, not a forum. Nothing in this Section changes Section 20, which continues to govern these Terms and every dispute under them. Where the law of a country the Maintainer is subject to prescribes a particular procedure for such complaints, that procedure applies in addition to this one; this Section is the floor, not the ceiling.

28. Applications directed at children

The case this Section is about. Section 1 sets the age at which you may hold an account and the age at which you may buy a Paid Plan. Neither says anything about the people who use your application. Boosthis measures your application while real people are using it, and your application may be directed at children. That is your decision, and these are the terms on which you may make it while running Boosthis.

Yours, not the Maintainer's. Where your application is directed at children, or you know that children use it, you are the party responsible for every notice and consent the law where your users are requires — including any verifiable parental or guardian consent — before Boosthis runs inside it and sends measurements. The Maintainer has no relationship with your users, cannot see who they are, and cannot obtain a consent on your behalf. Part B and the Maintainer's published statement of what the toolkit collects, at https://www.boosthis.com/docs/what-boosthis-collects, give you the facts you need to describe Boosthis accurately in your own notice; neither tells you what your notice must say.

What you must not send. The prohibition in Section 5 on sending personal data through Telemetry applies to your users' personal data whatever their age, and applies with no exception to a child's. Do not put a user's name, email address, account identifier, or any other value that identifies a person into a route label, a screen name, a job name, a project or application display name, a rule proposal, or any other field the toolkit carries. Those fields are for labels, not values, and the Maintainer holds what arrives in them as written.

Telling the Maintainer an application is child-directed. You may tell the Maintainer that a project's application is directed at children by emailing support@boosthis.com with "child-directed" in the subject and naming the project, or by writing to the registered postal address in Part B. On receiving a child-directed report, the Maintainer will review the project's settings and work with you to disable optional detailed modes; there is not yet an automatic child-directed lock. Do not enable optional detailed modes for a child-directed project. Request project telemetry erasure explicitly and provide the project reference; a guardian should contact you, as only you can identify your user. The Maintainer handles project erasure requests from you; guardians should contact you about user-specific requests. The Maintainer does not verify the statement and does not police your application — Section 5 says why it cannot.

Where the Maintainer learns of it another way. If the Maintainer comes to believe that data identifying a child has reached it through your Telemetry, it may delete that data without notice, suspend the affected project's reporting, and require you to confirm what you have corrected before reporting resumes. No refund is due for a suspension under this Section.

29. Accepting this version of these Terms

30. Fair use of what the Service hands out

31. Marks, records, and copies of Boosthis material


Part B — Privacy Policy

Boosthis is a developer toolkit. It runs inside your own app on your own machine. For a general install, nothing leaves your device. For a registered app, the kit reports the readings described below — issue & fix signals, crash reports, and the measurements your project's own pages are built from — and Boosthis uses them for the uses listed in one place, under "The legal ground for each use": your project's dashboard, alerts, reports and emails, the AI connections you set up, the "Ask Boosthis" assistant, and the shared rule book. See exactly what is sent, and every way it stops, below. To use the hosted web and mobile dashboards and manage billing, anyone can create a developer account (name, email, and password) — what we store for an account is described under "Account data" below. A registered app reports under a project key that belongs to an account, so what it reports is tied to that account and is shown to it and to its teammates.

Scope of this policy — please read. Boosthis's role is stated one way only. For the data a registered kit reports about your end users, you are the controller and the Maintainer is the processor, under the Data Processing Agreement incorporated in Part A, Section 25; for your own developer account, the Maintainer is the controller. The kit itself is a library that runs inside your application's own process, so everything else your application handles stays yours alone and never reaches us. The PII protections described below are best-effort defences against common identifier and secret field names — they are not a substitute for the host application's own privacy review, Data Protection Impact Assessment, or compliance posture. Treat Boosthis samples like any other application log: review what your code puts into route names, metadata fields, and exception messages before exposing them to AI tools or third-party endpoints.

Use at your own risk — limited liability for data exposure. Boosthis is provided "as is," with no warranty of any kind, and you use it at your own risk, within the limits and exceptions of Part A, Sections 11–12: liability for fraud, gross negligence, wilful misconduct, harm to a person, or anything the law does not allow to be limited is never excluded, and the security measures described below still apply. Because Boosthis runs inside your own application, you remain responsible for the data your app handles, for what you place into route names and metadata, and for reviewing any AI-suggested change before you ship it — except where a failure on Boosthis's side, such as a key Boosthis exposed, caused the problem.

Boosthis sends two very different things, and they are controlled differently. This document tells you exactly what each is, what is never sent, what it is used for, and how to stop it.

1. Issue & fix signals — always on for registered apps. Once your app is registered, Boosthis automatically reports the candidate rule signatures and fix-resolution signals described below (rule kind + bucketed severity + bucketed count, plus a before→after rating bucket when an issue is fixed). This is how the shared rule book improves, and it is not a per-app on/off setting — disableTelemetry() does not turn it off. It stops in each of the ways listed under "Every way reporting stops" below: your app's user switching Boosthis off on their device, a locked project, a Kit version past its end of support, a switched-off project key, erasing your data (forget), or the emergency kill-switch BOOSTHIS_DISABLED=1. This applies only to registered apps — a general install reports nothing.

2. Full performance details — optional, off unless you turn it on. Separately, you may switch on fuller per-route performance samples (route label, duration, rating) by calling enableTelemetry() / boosthis.enable_telemetry(). This is the only channel that disableTelemetry() / boosthis.disable_telemetry() controls — turning telemetry "off" stops these full samples but does not stop the always-on issue & fix signals above. The per-sample "Route label" and "Duration" items below apply only to this full-details mode. Route and screen labels also travel outside it, with the other readings that name one — the screen or route a crash happened on (always on), the page map and the health-meter snapshot (on switches of their own), and the steps of a trace — each described where it is listed. In issues-only registrations (issuesOnly: true) this channel is never enabled: transmit() is a hard no-op and the production sampler is never granted consent.

The emergency kill-switch BOOSTHIS_DISABLED=1 silences the entire runtime — issue signals included — and always wins over everything else.

What we use your data for

Every use we make of your data is listed in one place: the table under "The legal ground for each use" below, with the ground each use rests on. Nothing elsewhere in this document adds a use. What a registered app reports runs your project's own dashboard, alerts, reports and emails, the AI connections you set up and the "Ask Boosthis" assistant — for that, the Maintainer works as your processor, as the note under that table says — and it improves the Boosthis rule book: new rules, better thresholds on existing ones, patterns that recur across many apps, and lessons learned from an issue seen at one customer, which serve that customer's own projects until a second customer has the same issue (see "How candidate rules become real rules" below), caught in the next release of a kit or straight away through the rule book Boosthis serves over its API.

We do not:

A new use is added to that table before it starts, under the rule for changes to these Terms in Part A, Section 19.

Ownership of what you send

Everything you send to Boosthis (the "Telemetry") is assigned to Boosthis, except personal data. You waive any ownership claim over the issue & fix signals and the optional full performance samples, and over any rules or improvements derived from them — even if you turn on full data mode. Where a piece of Telemetry can relate to an identifiable person, nobody owns it under that assignment: it stays under the Data Processing Agreement and this Part B, the person keeps every right described below, and an erasure erases it. What Boosthis owns is what it builds with the person taken out — rules, fixes, signatures, thresholds, aggregated statistics, and rule-book submissions. This covers only what you send, never your source code or application. The full clause is in Part A, Section 7 (Ownership and assignment of Telemetry).

What we collect

The names you choose yourself

Neither of these is sent by every install, so they are listed apart from the section above rather than inside it:

Both are held as written, apart from surrounding spaces being dropped and a 60-character clamp. Nothing else normalises, rewrites or shortens them, because a rewritten name would make your dashboard, your alerts and our AI answers disagree with one another. They are free-text fields: a name containing a person's name is held as written, so choose them as you would any label you publish internally. Two things do happen to a name on the way out — one carrying a value rather than a label (an address, a phone number, a token or a long numeric id) is withheld from answers rather than repeated back, and a registration whose name trips the same identifier guard that screens telemetry is refused at the door rather than stored.

Only in the optional full-details mode (enableTelemetry())

These are sent only if you explicitly switch on full performance samples, and they stop the moment you call disableTelemetry() / boosthis.disable_telemetry():

The page map described below is not one of these fields: it has a switch of its own and travels with the health-meter snapshot, on either of that snapshot's two switches.

The page map (web and React Native)

Boosthis's server can already draw the map of an app's server side, because it can see the calls one part makes to another. It cannot see the front: a browser page or a phone screen moving to another one makes no request, so nothing tells the server that your checkout screen is reached from the basket and never from search. The page map is the front half of that picture, and the browser and React Native kits are the only ones that can draw it.

It is drawn progressively, from your app's own traffic — it is whatever paths people have actually walked, not a route table read out of your config — and it is a picture of how your app is navigated now, not a history: each upload replaces what that copy of your app previously said.

What travels: the route labels of the screens your app moves between, and which of them leads to which — the same code-defined labels as the route label above, in pairs, with a count of how often each path was taken. They go through the same PII guard, so a label carrying an email, IP, token or other identifier is refused exactly as a sample's would be.

What never travels: the name or caption of any control, and the gesture that moved you. Not "the Pay now button", not "swiped", not "tapped at these coordinates". This is not a setting you could turn the wrong way — the kits have no wire shape that can carry those things, so they cannot be swept along by accident. Nothing about who navigated, when they did it, or what they typed is collected either.

It has a switch of its own, and it rides the health-meter snapshot. In the browser kit from version 1.0.0-alpha.144, and in the React Native kit from version 1.0.0-alpha.297, it is on unless your own code turns it off (sendPageMap: false); an older React Native kit sends it only when your own code asks for it (sendPageMap: true). Nothing we send back can turn it on or off. With it on, the map travels with the snapshot described below and on that snapshot's two switches: it is sent only when full details are on, or when you explicitly switch on meter sharing so a connected AI can read the live picture. In issues-only mode with neither of those on, no map leaves the device. disableTelemetry() / boosthis.disable_telemetry(), forget and BOOSTHIS_DISABLED=1 each stop it. A path that stops being reported is deleted after 45 days, and forget deletes your map immediately along with everything else that project sent.

Health-meter numbers (the dashboard meter page)

Boosthis scores your app on a set of named health meters — the tiles you see on the dashboard (the boot ladder, Speed, Smoothness, Scroll, Stability, Render, Frustration and Idle, plus the runtime-specific meters such as event-loop lag, garbage-collection pressure, memory growth, worker health and startup cost). The whole meter page is captured as one small snapshot so you — and an AI you choose to connect — can read your own numbers back.

It rides the same optional full-details channel as the samples above: the snapshot is uploaded only when full details are on, or when you explicitly switch on meter sharing so a connected AI can read the live picture. disableTelemetry() / boosthis.disable_telemetry(), forget, and BOOSTHIS_DISABLED=1 all stop it.

Every meter reports the same three things and nothing else:

Two server meters also carry fixed words. From the server kit releases named under "Candidate rule signatures" above, the outside-services meter — which groups your server's calls to other services by kind: signin, storage, payments, messaging, search and other — also counts, for each kind, how many calls could not connect, got no answer, were turned away, were refused for too many requests, met an error on the other side or were cancelled, and, where calls went to a well-known service on a fixed list (such as Stripe or Clerk), that service's name from the same list with its own counts of calls, failures and timeouts, at most four for each kind. The database meter sorts the round trips it already counts as failed into the same words. These words come from fixed lists the server checks on arrival, and anything else is dropped. The host, the address, the path, the query string, the status number, the error's text and the statement never leave your app.

The meter set grows over time, and the boundary does not. New meters ship regularly and they differ per runtime (a Python service reports things a browser cannot, and the other way round). Every meter — the ones shipped today and the ones added later — stays inside the same limit: a score, a rating bucket, and numeric counts and timings. That limit is enforced, not just promised. The server keeps a fixed allowlist of numeric meter fields, silently drops any field that is not on it, and rejects any allowlisted field whose value is not a plain number — so no prose can ride in a slot that should hold a measurement. Even the one-line caption a kit computes for its own on-device display is dropped at the door and rebuilt on our side from the numbers. A genuinely new category of data would require a change to this document, not just a new meter.

Two promises spelled out, because these meters count things that sound sensitive:

The whole route list (the app map, including pages nobody visited)

Alongside the meter snapshot, and on exactly the same two switches, some kits send the list of routes your app has — not only the ones traffic reached. The kit asks your own running framework for its route table (Express, Fastify, Koa and Hapi; FastAPI, Starlette, Flask and Django; Vue Router, React Router or Angular Router if you hand the kit your router; React Navigation on React Native if you hand the kit your navigator's screen configuration). It is a question put to a running framework through the framework's own interface. Boosthis never reads your source code, never opens a file of yours, and never crawls or clicks through your app to discover pages.

Be aware of what this adds, because it is the one thing here that travels before any traffic does. Until now, a route label only reached us because a real request went to it. A route list includes paths your traffic would never have revealed — an admin page, an internal webhook, a feature not launched yet, a route left behind. If the existence of a path is sensitive to you, this is the setting to turn off.

The controls on a page (the pins on the map)

On exactly the same two switches as the meter snapshot, a kit that lives inside a rendered interface also sends a count of the controls on a rendered page — and which of them have never been pressed. It is the same question the route list puts to your framework, one level down: the kit is already inside your page, so it asks the page how many interactive elements it has. Boosthis never reads your source code, never opens a file of yours, and never crawls, clicks or drives anything to discover controls.

Structure travels; text never does. Every product that can tell you which button is broken earns that by recording the user's screen. This one does not look.

What the phone platform allows (phone apps only)

The four phone kits — React Native, Flutter, Swift/iOS and Android/Kotlin — report, alongside the meter snapshot and on exactly the same two switches, a short closed list of observations about what the operating system let the app do. Nothing here is about your app, your handset, or the person holding it.

Why it exists: a phone app is held to more rules than any server — background execution windows, doze and app-standby, per-app memory ceilings the system enforces by killing you, timers that quietly stop — those rules changed with almost every OS release, and the published documentation is frequently wrong. So each kit records what actually happened on the platform it was running on, we pool it across installs, and the rules Boosthis gives you for phones are then written from what the platform really does rather than from what it says about itself.

Exactly this travels, and nothing else:

These are facts about a platform, not about a device. They are pooled per platform band: what survives is "on Android API 34, this many installs saw a background job run in the background and this many did not". No line is shown until at least three separate installs have reported it, each install counts once per fact however many times it uploads, and nothing in the pooled record can be traced to a particular phone. Your own install row additionally remembers which band and maker it reported — that, and nothing more about the device — so your dashboard can tell you which platform your project runs on; forget and account closure delete it with the rest of the row.

Three phone readings the React Native kit takes without being asked

Most of what the React Native kit measures, it measures because your code asked it to — you time a screen, you wrap a call. Three readings are different: the kit starts them itself when enableTelemetry() runs, with no setting to pass. They ride the meter snapshot and its same two switches, they stay inside the meter boundary above — a score, a rating bucket and plain numbers — and each one can be refused by name.

They start themselves because the alternative was worse. Left as switches, all three sat off in ordinary apps for ever, and their meters said "measuring…" about something no code had started. A reading nobody can get is not a choice we were offering.

What every traced step carries

Every kit that traces sends each traced step in the same basic shape, whatever it runs in, so one action crossing a phone, a browser and your servers can be drawn as one line; what a particular kind of step adds is described in its own section below:

None of these is derived from a person, the device, the account or the install. When each kind of step travels, and how to stop it, is set out in the sections below; Boosthis keeps traced steps for 7 days, at most 20 for each trace (see "Retention").

The React Native screen circuit (on by default)

From React Native kit 1.0.0-alpha.297, traceScreens is on unless your own code sets it to false; an older kit records nothing unless your code switches it on. It records only while what it makes may travel — on the health-meter snapshot's two switches: only when full details are on, or when meter sharing is switched on — and never while your app has recorded that its user withheld permission (setEndUserConsent("withheld")). Until then, and with it off, nothing changes: no request's address is read, and there are no screen spans, no call spans and no trace header on any request. The blind Network axis is separate and unchanged; it still reads no URL, host, path or status.

The browser kit's calls to your own server (on by default)

From browser kit 1.0.0-alpha.144, each fetch or XHR request a page makes to its own origin — the same scheme, host and port as the page — carries three trace headers to your server: a random trace ID, a random step ID and an elapsed time of zero. None of them is derived from the visitor, the device, the account or the install. The kit also records one traced step for that request, and your server's kit records the request as that step's child, which is what draws the line from a page to the server route it called.

The Flutter kit's outgoing calls, and the optional Dio add-on

The Flutter kit watches the requests your app sends through Dart's own HTTP client, which covers package:http and Dio on its default adapter. The optional boosthis_dio add-on watches every call a Dio instance makes, on any adapter, once your code adds its interceptor to that instance. Each call is counted once, whichever of the two sees it.

The server kits' calls to a database or another service

From Node kit 1.0.0-alpha.200, Python kit 1.0.0a168, PHP kit 1.0.83, Java kit 1.0.0a146, Go kit 1.0.0a146, Ruby kit 1.0.0a86, .NET kit 1.0.89, Rust kit 1.0.0a81, Elixir kit 1.0.0a78 and edge kit 1.0.0-alpha.32, the kit on your server also records, for each request it traces, one linked step for each kind of call that request made to a database or to an outside service, linked to that request's own traced step. That is what draws the lines on your project's map from a route to its database and to each outside service. On the Node, Python, Java and Go kits a run of a background job is treated the same way: one step for the run, under the job name the kit already sends, with the run's calls linked to it. The edge kit links the calls a queue, cron or email run makes to the step it already sends for that run.

The server kits pass the trace on to your own services (Node and Python, on by default)

When your server calls another of your own services while it handles a traced request, the Node and Python kits add three trace headers to that call, so one action crossing two of your services is shown as one traced action and your project's map draws the line between them. Nothing new is sent to Boosthis: the headers go only to the service your app was already calling.

Only in the optional detailed crash mode (opt-in, per app)

A specific app can be switched into detailed crash mode. When it is, a crash report may additionally include — still scrubbed and still passed through the PII guard before it leaves the device:

This mode is off unless you turn it on, and even then it never adds your source code, raw stack traces, or any user value.

For the website kit, turn it on per project with the Detailed crash reports switch on the project page of your Boosthis dashboard (carried to the kit when it registers), with the hosted script tag attribute data-crash-details="on", or in the kit's code settings. Other kits use their code setting.

Build maps you upload (so crash frames read as source)

A production crash frame reads as a compiled position — a.b.c (bundle.js:1:48291). To make it read as your own file and line, a developer can upload the build map their build already produced: a JavaScript source map, an Android mapping.txt, an Apple dSYM, a Dart symbols file or a Portable PDB. Nothing is uploaded unless a developer does it — by hand from the project page, or by a step added to your own build. No kit fetches a build map's contents, and Boosthis never asks your build system for one; a project that has uploaded none holds none. One kit asks a question about a map rather than for its contents: the browser kit's development-posture check makes one HEAD request to your own site for the first script's .map address and keeps only whether the answer was OK, as a 1 or a 0. Nothing is downloaded, and the address is neither stored nor sent.

What is kept, and what is discarded on arrival. The file is parsed the moment it arrives and only the parts needed to place a frame survive:

The uploaded file itself is not kept, and sourcesContent — the copy of your actual source text that a source map may embed — is discarded at the door and never written down. What a build map hands back, it hands back only to you: your own crash frames resolved to your file, line and original identifier name, and — in your data export — the list of maps held with their source paths and expiry dates. The uploaded file is never served back to anyone, the mapping table and the table of identifier names are never handed over as tables, and no build map is ever an answer to anybody but you.

How long. Each build map is kept for 90 days from the day it was uploaded, then deleted. Uploading the same app version again replaces the map already held rather than adding a second one, and restarts that clock. The project page lists every map the project holds — which release, which generated file, when it arrived and the date it ages out — warns 14 days before one ages out, and says when a release crashes are still arriving under has no map. Your data export lists the maps held, for which build, with your own source paths and each one's expiry date. The reasoning behind both the clock and keeping the full path is written down in docs/decisions/build-map-retention-and-paths.md.

Reading your own data back over MCP (the "Connect your AI" and "Connect AI" cards)

When you connect an AI agent, it can read back what your app has already uploaded and the records Boosthis keeps about your project, so it can answer "which screen is slowest, and what should I fix first?" with your real numbers instead of a placeholder: the per-screen meters you see in the dashboard (boot ladder, Speed, Smoothness, Scroll, Stability, Render, the Frustration and Idle axes), the health-meter numbers described above (a named set that grows over time — always scores, rating buckets, counts and timings), the per-route rows, the session summary, the budgets, the crashes recorded, traces, background jobs, and the promises and changes recorded for the project. Nothing is read back until you give an agent one of the four credentials below, and each reaches a different amount:

The rest of this section applies to all four:

Checking a sentence your assistant wrote

Nothing your assistant writes is sent to be checked on its own, and Boosthis never reads a session to get it: a sentence arrives for checking only when one of two things you set up sends it. The first is the Claude Code Stop hook Boosthis publishes on your dashboard and in the private setup guide — configuration you add to your own Claude Code settings, needing both your project key and your owner account token. Until you add it the hook sends nothing, and deleting it from those settings stops it. The second is the claim-check tool offered to any assistant you connect to Boosthis: the assistant can call it with one sentence at a time, and only the sentence it was asked about is sent. Neither lets Boosthis take anything that was not submitted to it.

What the hook sends is at most 4 of the closing lines your assistant has just written, each no longer than 240 characters, with fenced code blocks removed on your own machine before anything leaves it. Not the conversation, not your prompts, not a file, not your repository. They are the closing lines as they were written, so if your assistant ended a turn with a line of code or a diff line that was not inside a code fence, that line can be one of them. Each line then goes through the same screen a written promise goes through — length, credentials, personal data — before it is read against your project's measurements or answered, and one that fails the screen is not read, not answered and not stored. One thing is taken from a line before that screen runs, and only where your project has no kit installed: whether the line states a number or a length of time. That single yes-or-no fact is recorded in the row described next, with no part of the line beside it, and nothing else happens to the line — with nothing measured to check it against, it is not read, not answered and not kept.

The sentence itself is not kept, with one exception set out next. What is stored is how it was read: one row holding which of a closed list of outcome words applied, which reader ran, and a few yes-or-no facts about the sentence's shape — no account, no project, no install, no subject and no text, so the row cannot be tied back to you or your project by anyone holding the whole table. Where Boosthis worked out what the change was aimed at, it also records that aim in your project's own list of witnessed changes: the measured subject's label, which measurement of it, the line it was held to and the judgement. That is what Boosthis read the sentence as, in its own bounded words, and again never the sentence.

The exception is a sentence that reads as a promise about something your project measures and that Boosthis cannot judge yet. That one is recorded, in its own words, as a standing promise on your project — screened first, capped in number, listed on your project page beside everything else you have promised, and removable there at any time. Standing promises are covered above: they appear in your data export and are deleted when the project is erased or the account closed. Where the wording cannot be matched to something your project measures, nothing of it is recorded.

A sentence the plain word match cannot read may be sent once to the AI provider named above, to be mapped onto one subject your project already measures, and only on a call that proved the account owns the project. It goes with a numbered list of up to 40 of the things your project measures, each with its current numbers, as described under "The companies that can see your data" below — never on its own, and never with anything else. What the hook sends never goes that way: it is read by the plain word match alone and reaches no model provider.

Checking a sentence is not the only thing a connected assistant can send in words it wrote itself. Holding your project key and your owner account token, it can also file a one-line summary of a change it has just made (at most 300 characters, with an optional screen, endpoint or job name of at most 80), name one thing it is about to build so your project page can later say whether it appeared (at most 80 characters, at most 24 outstanding at a time), and write down a standing promise as described above (at most 240 characters). Each is one short line the assistant chose to send, never a transcript, a file or a diff, and each goes through the same screen for personal data and credentials before it is stored — one that fails is refused whole and nothing of it is kept. What is stored is kept on your project, shown to you on its own pages, and deleted when you erase the project (forget) or close your account.

The Covenant hooks in Claude Code and other editors

Boosthis also publishes a second hook for Claude Code, the Covenant hook, and a Covenant hook for each of Codex, Gemini CLI, Kiro, Cursor, Windsurf and GitHub Copilot, on your project's Setup page and in the private setup guide. Each is configuration you add to one project's own settings for that editor, never to your user-wide ones, and it reads that project's AI key from your environment each time it runs and writes it nowhere. Until you add it nothing is sent, and deleting it from those settings stops it. In Claude Code, Codex, Gemini CLI and Kiro it fetches your project's Covenant from Boosthis and hands it to your assistant when a session starts, resumes, is cleared or has its context compacted, at whichever of those moments the editor reports to its hooks; when your assistant starts a helper agent, where the editor reports that; and each time you submit a prompt. Cursor, Windsurf and GitHub Copilot do not let a hook add to what your assistant sees, so there it fetches nothing and hands nothing over. On each prompt, in every one of these editors, it also reports that the prompt happened, so your project page can show, editor by editor, whether every request had the Covenant. Your project page also has a switch, off unless you turn it on, that asks your assistant in Claude Code for its own account of each rule Boosthis does not check: while it is on, the hand-over asks your assistant to end each reply with one line saying, rule by rule, whether it applied the rule, whether the rule did not apply, or that it couldn't, and the Claude Code hook runs once more when each reply ends to report that line. Boosthis keeps what comes back as your assistant's claim and checks none of it.

What it sends is only this: that a prompt happened, and when; a session tag and an event tag, which the hook makes on your own machine as keyed hashes under a random value that never leaves it, so neither reveals anything about the session; the hook's own version and which editor it runs in; which Covenant version it handed over or, when it could not hand the current one over, what it handed over instead and why, from a fixed list of reasons, or, in an editor that cannot hand anything over, that nothing was; and, to fetch the Covenant, which of those moments called it, which version your session already holds and how much text it may add. When a reply ends in Claude Code while that switch is on, it sends the two tags of the request the reply answers and either what the reply's last line said in its fixed form — each rule's short tag, one of three answers (applied, not applicable or couldn't) and the Covenant version the line named — or that the reply had no such line. The hook reads that one line on your machine, and nothing else from the reply leaves it. An editor may hand its hook your prompt along with the moment; the hook reads only the moment and the session and prompt identifiers from what it is handed (and, as a reply ends in Claude Code, that one line), and drops the rest on your machine. It never sends your prompt, the conversation, your assistant's replies, a file or anything from your repository, and the report has no field that could carry them: Boosthis refuses one with any field it does not know. A teammate's prompts are counted only on a machine where that teammate has put a project credential in their own environment.

Each counted request is stored as one row against your project key: when it happened, in which editor, the two tags, the hook's version, the Covenant version and, for a miss, its reason — with no account, no person and no install beside it, so the record is your project's and is never broken down by person. While the switch is on, a request counted in Claude Code also holds the rule tags your assistant was asked about and what came back when the reply ended: the answers and the version the line named, or that no such line was given, and when that arrived. The switch, when it was last pressed and each rule's tag are kept with your project's Covenant. A daily count per project key is kept beside it, so that a daily ceiling on how many requests are recorded can hold and your page can say when counting stopped. Both appear in your data export and are deleted when you close your account, or when the project key is revoked and the purge window ends.

Reading your own chat messages in your editor

The Boosthis extension for Visual Studio Code can read the messages you typed to an AI assistant, on your own machine, and turn them into the list of things you asked for on your project's board. It is off until you turn it on, it is turned on for one project at a time rather than for your machine, and there is one switch. Nothing is read for a project you have not switched on, and switching it off stops the reading.

Only your own messages are kept. The extension opens the conversation files your assistant already keeps on your disk and reads and parses each one whole, on your own machine — your assistant's replies included, because they sit in the same file — and then keeps only the turns you typed yourself. Your assistant's replies are set aside at that step: nothing in them is worked on, kept or sent, because they are where code, diffs, stack traces, file paths, database rows and credentials end up, and an assistant's account of having finished something is no evidence in any case. The extension writes nothing back to those files.

No conversation text reaches Boosthis. Your messages are read, the names of the things you asked for are worked out, and each name is screened for personal data, credentials and addresses — all of it on your machine, before anything is sent. What is then sent is the same thing the connection already accepts from an assistant: a work-item name of at most 80 characters, the time it was asked for, and that it is open. Never a message, a prompt, your reasoning, a file, a diff or any code. A name that fails the screen is not sent at all, and no shortened version of it is sent instead. You can see the exact list before it goes.

Every item on your board says where it came from — told by your assistant through the connection, or read from your own messages — on the wire, in storage and on every screen that shows it. The two are never merged into one list of items that simply appeared.

Nothing read from a conversation can ever mark a piece of work as finished. An item your assistant told Boosthis about is closed when your assistant tells Boosthis through the connection that it is done, or files a change against its name; an item read from your own messages refuses both. Boosthis reads an item whose route your running app serves as finished, and you can drop an item yourself. A name read from your own messages is a phrase you typed rather than a route your app registers, so in practice you are the one who drops it. Boosthis also publishes which assistants this reader can read and which it cannot, with the reason for each, so a tool it cannot read is never left to look like a tool with nothing to report.

A tool Boosthis cannot read is not a tool with nothing to report. Where there is no reader, nothing about that assistant's conversations reaches your board at all, and the reason is stated rather than left as a blank row.

AssistantRead?What is read, or what is missing
GitHub Copilot Chat (Visual Studio Code)ReadYour own messages: requests[].message.text (with requests[].message.parts[].text where the editor split it), and the request's own timestamp. Not read: requests[].response, requests[].result and every other field of the entry: that is the assistant's half.
Claude Code (command line)ReadYour own messages: Lines with type: "user", taking message.content when it is a string and the text of its type: "text" blocks when it is a list. Not read: Every line with type: "assistant", and every other line type in the file. A user line carrying a tool result, or marked isMeta, is written by the tool rather than typed by the developer, and is skipped. The directory name flattens the project's path, so two projects whose paths differ only in punctuation share one directory; a session is read only where the session's own cwd records this project, and one recording another project, or none at all, is skipped.
OpenAI Codex CLIReadYour own messages: Lines whose message has role: "user", taking the text of their input_text content parts, whether the message sits at the top level or under payload. Not read: Every line whose message has any other role, including the assistant's own.
Continue (Visual Studio Code)ReadYour own messages: history[].message.content where history[].message.role is user, taking the text of its parts when the content is a list. Not read: Every turn with any other role, and the contextItems beside each turn — those carry file content.
AiderReadYour own messages: Lines beginning #### , which is the prefix Aider writes in front of what the developer typed and in front of nothing else. Not read: Every unprefixed line — the assistant's prose — and every fenced block. The transcript carries no timestamps, so an item read from it is stamped with the time of the read rather than the time it was asked for, and the preview says so.
Cline (Visual Studio Code)Not readWhat is missing: anything beside the conversation saying which project the task belonged to. Its tasks are readable — the panel's own events are in a JSON file, and the developer's replies are marked in it — but every task for every project sits in one directory, and Boosthis has found nothing stored beside a task that records the folder it ran in. Reading them would put asks typed in another repository onto this project's board, and this switch is per project. There is a second problem even where that is solved: the message that OPENS a task is stored with the same marker as the assistant's own prose, so a developer's first ask cannot be told apart from a reply.
CursorNot readWhat is missing: a conversation store in a file that can be read without a database driver. Cursor keeps its conversations inside a SQLite database in its own user directory rather than in files. Reading it would mean shipping a native database driver inside the extension, and the keys the conversations sit under are undocumented and have changed between releases — a reader written against them would quietly start reporting the wrong half of a conversation the first time they moved.
WindsurfNot readWhat is missing: an on-disk conversation store on the developer's machine. The conversation is held by the service rather than written to the developer's disk, so there is nothing local to read. Anything Boosthis could obtain would have to come from the provider, which would put Boosthis inside the conversation — the one thing this feature refuses to do.
Gemini CLINot readWhat is missing: a store whose shape we have verified, with the developer's own turns marked in it. It writes session files under the home directory, but the layout is undocumented and has changed between releases, and Boosthis has not verified which entries are the developer's own typing. A reader written against a guess would either miss the asks or report the assistant's words as the developer's, and both are worse than an empty row that says so.
JetBrains AI Assistant and JunieNot readWhat is missing: a Boosthis extension in that editor. This reader ships inside the Boosthis extension for Visual Studio Code, and these run in the JetBrains IDEs. Nothing about their store has been examined, and nothing is read from a machine using them.
Assistants used in a browser (ChatGPT, Claude, Gemini on the web)Not readWhat is missing: any local copy of the conversation at all. The conversation exists only on the provider's servers. There is no file on the developer's machine to read, and Boosthis does not ask a provider for one.

Account data (the optional developer account)

If you create a developer account to use the hosted web or mobile dashboard, we store the following — to operate your account and the projects it holds, and to help a new account finish setting up (see "Account emails" below). Each item says how long it is kept, and "Retention" below gathers every period in one place:

Your acceptance of these Terms, and records about what you were handed. When an account holder or a teammate accepts or declines a version of these Terms that needs accepting (Part A, Section 29), we store who did it, when, which version, and a fingerprint of the exact text, and whether each notice and reminder about that version was delivered to the account's address or bounced. We record each download of a Kit and each fetch of Served Material — which account, project, and key, which Kit and version, when, and the random mark it carried, which holds no name, email address, or key. Where accounts are linked as belonging to one person or organisation (Part A, Section 30), we store the link and the reason for it (a shared confirmed mailbox, payment card, network, or machine), and for that purpose we keep the network a signup came from only as a keyed hash that cannot be turned back into an address. How long each is kept is stated under "Retention" below.

How account data and telemetry meet. Telemetry is stored against install IDs, and each install is tied to the project key it registered with and so to the account that holds that key: that link is what lets your dashboard, alerts, reports, the AI connection and "Ask Boosthis" show you your own projects. It is used only for the uses listed under "The legal ground for each use" — never for profiling, for advertising, or to work out who an end user of your app is. You can delete your account yourself, without asking anyone: Dashboard → Delete account, or the same option in the Boosthis phone app. You are shown exactly what is deleted and what we must keep before you confirm, and you can download everything we hold about you first (Dashboard → Your data → Download). forget erases the telemetry of an install made with a server kit at any time, independently of your account; a website's or phone app's install is erased as described under "How to stop reporting / delete your data".

The companies that can see your data

Boosthis is operated by Veqtara Tech Company. A small number of outside companies are involved in running it, and each one is named here. This is the whole list of companies Boosthis engages, and no other company we engage receives your account data or your telemetry. Three destinations sit outside that list because you chose them rather than us — an alert webhook you configure, a chat workspace you connect, and an AI assistant you connect — and each of those does receive what you point it at. They are described immediately after the list.

The three named in that sentence are not on the list above, because they are yours rather than ours, and here is what each one is: an alert webhook you configure (the alerts go to whatever URL you supply, and what the receiving service does with them is your responsibility), a chat workspace you connect (if you connect Slack, the alerts you route there are posted into the channel you picked, inside your own workspace, using a credential you granted us and can revoke at any time — Slack is a company you chose, not one we engaged, and what it does with what it receives is governed by your own agreement with it), and an AI assistant you connect through "Connect AI" or the OAuth sign-in flow (that assistant is your tool, reading your data with a credential you can revoke at any time; whoever operates it is a company you chose, not one we engaged).

We never sell your data. Personal information — your name, your email address, your account, your billing details — is never sold, rented, traded, or shared for anyone else's marketing or advertising, and neither is telemetry. No money and no data change hands for advertising purposes. Each company above may use what it receives only to do the job named beside it, apart from the further use Expo's own terms give it, named in its entry.

Notice before this list changes. Before another company starts receiving account data or telemetry, it is named here first — with the revision date at the top of this document moved — at least 14 days before it begins, unless a change has to be made sooner to keep the service running or secure, in which case it is named here as soon as it takes effect. This document is the notice: the same list stays in the same place, so a change is visible by comparing it. That promise has been broken once: Google Workspace, above, was receiving support mail from September 2026 before it was named here on 10 October 2026. Its entry says so instead of being dated back, and the notice that announced it carries the same admission.

The same list, at its own address. The list above is also published on its own page at https://www.boosthis.com/subprocessors, with one further column of detail per company: on whose instructions it acts, what its own published sub-processor practice is, and what happens on an onward transfer. That page — not this document — is the list the Data Processing Agreement (Section 25) points at, which is why a company can be added or replaced without amending an agreement you have already accepted. You can subscribe rather than watch: https://www.boosthis.com/trust emails a notice of each change to anyone who confirms their address, without an account, and the page at its own address also publishes a feed at https://www.boosthis.com/subprocessors.xml. Those companies' own published sub-processor lists are re-read on a weekly clock and compared with what was recorded, so a change further down somebody else's chain is something we find out about rather than something we assume away.

Where Boosthis runs, and whether your data crosses a border

Two questions, two answers. They are easy to blur, and the difference is exactly what matters, so both are stated separately here. Both are taken from the recipient list above and held to it by an automated check, so they cannot drift from it, from each other, or from the same two sentences on the served /terms page.

These are two answers to two questions, and neither one implies the other. That the service runs in the United States does not mean nothing leaves it, and that something leaves it does not mean the service runs anywhere else.

Every company outside the Kingdom is on that list because a part of the service cannot be provided without it, and each receives only what is named beside it. The basis for that processing is set out under "Your rights over your data" below. If you would rather nothing crossed a border at all, a general install of the toolkit sends nothing anywhere.

The "Ask Boosthis" assistant (AI processing)

The dashboard includes an optional assistant you can ask plain-English questions about your app's performance. When you use it, two things — and only those two things — are processed by OpenAI, reached through Replit's AI Integrations gateway (see "The companies that can see your data" above), to generate the answer:

Nothing new is collected for the assistant, and it runs only when you ask a question. OpenAI's published position for its API is that what it receives is not used to train its models — that is the provider's published position, and what we can and cannot show you about it for this account is set out under "What the AI provider may keep, and what we cannot show" below.

Rule drafting on our side. Separately from the assistant, the Maintainer uses the same provider — OpenAI, through the same gateway — on a schedule to help draft candidate rules from the aggregated, privacy-safe signals described above — rule kinds, severity and timing buckets, redacted code locations, and occurrence counts; never route labels from full samples, never your question, and never anything identifier-shaped. Drafts only ever land in the maintainer's private review queue, and a human decides what ships (see "How candidate rules become real rules"). This is rule-book improvement — the single purpose described above. The provider's published position on training covers this traffic too, subject to the same limit on what we can show you.

What the AI provider may keep, and what we cannot show. Whether your data trains a model is not a question we can answer yes or no, so here are all four answers: what is known, what is not, why, and what would settle it.

What is known. OpenAI's own published position for its API, read on 14 September 2026, is that what it receives is not used to train its models. The gateway operator publishes a position of its own, read on 15 September 2026: training is disabled for paid model providers, prompts may be used for training by free ones, and zero-retention endpoints are enforced only for Enterprise accounts held with the gateway operator itself (its own customer accounts, not the Boosthis Enterprise plan).

What is not known, and why. Whether either statement governs this path. Turning training off is a choice made on an account, and we reach the model on Replit's gateway account, not one of our own — so the provider's default is something we can quote to you and not something we can show you is in force here. The gateway operator's own statement turns on two facts this server cannot read: which plan that account holds, and whether the model we call counts as a paid provider in that sentence. What the gateway itself does with a prompt in transit it does not publish at all.

What we believe, marked as a belief. That nothing on this path is used for training. Both published positions point that way and neither contradicts it. That is a belief resting on published defaults, and we will not put it to you as a fact about your own data.

What would settle it. Either of two things, and this page will say so when one happens. A statement from the gateway operator naming the plan that account runs on, and whether the model we call is a paid provider under its own policy, would settle it for the path in use today. Moving Boosthis onto an OpenAI account of our own would settle it a second way, because the setting would then be ours to hold and to show you. Neither has happened. Until one does, read the assistant as sending your question down a path whose training position we cannot demonstrate.

How long a prompt survives is not established, and we record that as unknown rather than assume it. OpenAI's published default deletes an API input after at most 30 days of abuse monitoring, with immediate deletion available only by prior arrangement, which we have not sought. Whether the gateway operator's account runs on that default is not published. The gateway operator does publish a position of its own, which we read on 15 September 2026, and it settles nothing here: it states that training is disabled for paid model providers, and that zero-retention endpoints are enforced only for Enterprise accounts held with the gateway operator itself (not the Boosthis Enterprise plan). Neither branch names the plan this path runs on, and the gateway publishes nothing about what it logs or for how long. A prompt may therefore survive in two places on this path, and we are not in a position to tell you for how long at either. Settling it needs an answer from the gateway operator; until then this paragraph says so.

Does your own contribution reach a third-party model? What a customer sends — a question, a measurement — is covered above. The rule book's own text is ours rather than yours, and it does reach the provider when we draft and review rules: the prescriptive fix wording for a rule under review, and for the language passes, the rule being translated. Every call that carries it is listed in our code, with the reason the answer needs it, and the sending of it is bounded — a drafting call carries one rule, or two fixed examples, never a sweep of the book.

Security reports from our own website

Every page on the Boosthis website carries a browser security policy. On the public pages, the ones anyone can open without signing in, your browser enforces it: if a page tries to load something the policy does not allow, the browser refuses it and sends us a short report. On the pages behind sign-in the wider policy is report-only: nothing is blocked there, and your browser only sends the report. Most reports are a browser extension rewriting the page; occasionally one is the signature of injected code.

From that report we keep three coarse things: which kind of content was involved (for example a script or an image), the scheme and host name only of where it came from, such as https://cdn.example.com — or, where there is no host, a keyword such as inline, eval or data, and where the host is a bare IP address, only the fact that it was one — never a full link, path, or query string; and a stripped-down label for the page it happened on (identifier-shaped parts replaced), with the day and how many times. No IP address, no account, no session, no device, and nothing else about you is stored, and identical reports are counted rather than stored twice. These reports are about the security of our own website, are visible only to the Maintainer, and are deleted after 90 days. The first report of each kind from a public page is also emailed to the Maintainer, made from those same three things and nothing else.

Counting visits to our website

We count visits to the public Boosthis website — the pages anyone can open without signing in — so we can tell how many people come and what they read. It is a counter, not tracking: Boosthis's own code sets no cookie on these pages, counting runs no script of ours in your browser, and nothing kept can be tied back to you.

One cookie we do not set. Our hosting platform's edge, which every request to this domain passes through, adds a cookie named GAESA to its responses. Boosthis neither sets nor reads it, and nothing we keep is linked to it. We check the live public pages every day, and we are told if any other cookie starts arriving on them.

For each public page we answer we add one to a small set of counts, kept per hour: which page it was, which of our public addresses it was opened on, the host name only of the site that linked to you (never the full link), an approximate two-letter country, a coarse device class (phone, tablet or computer) plus a broad browser family, and whether the request named itself as a known crawler. That is the whole of it — counts against those labels, never a record of a visit, and only counts for pages we already publish by name (anything else is counted as simply "other").

For these counts, your IP address is never stored. It is used in memory for two things and then discarded: working out the two-letter country (on our own server, from a table that ships with the software — we never send your address to anyone else), and building a daily de-duplication tag so the same visitor counts as one person that day rather than one per page. That tag is a one-way hash salted with a secret and with the day itself, cannot be turned back into an address, and is deleted within days — which is exactly why we cannot tell a returning visitor from a new one, and cannot follow anyone from one day to the next. The full browser description and the full referring link are discarded in the same breath; neither is written down for these counts. Every other place an address or a browser description reaches is listed under "Where an IP address or browser description goes" below.

The country is approximate and can be wrong (a VPN or a company network moves it), and where it cannot be told it reads "unknown" rather than being guessed. These counts are visible only to the Maintainer.

Where an IP address or browser description goes

Every place on our side that receives the IP address a request came from, or the full description a browser gives of itself, is listed here with how long it lasts. There is no other.

What the toolkit stores on a device

The browser kit keeps a small amount of state in the browser's own local storage, on the site it is running on. The kit sets no cookie in the application it runs in, and nothing it writes is readable by any other site.

Every entry's name begins with boosthis:, so the kit never collides with — and never enumerates — the application's own storage. What is kept is:

Where a server kit's dashboard bubble is switched on, the kit sets two cookies in that one browser, on your application's own domain: boosthis_owner_pass, holding the owner pass Boosthis confirmed when the owner link was opened, which the page's scripts cannot read, and boosthis_owner, set to 1 to mark the browser as switched on (on the machine the application runs on, ?boosthis=on sets only this one). Both last about 30 days, and ?boosthis=off, the switch-off control in the bubble, or a refusal from Boosthis removes them. No other browser is given either cookie or the bubble's script. That script keeps one entry in local storage — once the notice inside the bubble is accepted, the version of that notice — and removes the owner flag earlier kit versions kept there. It keeps nothing else on the device.

None of it is a profile and none of it is shared: it is the state one install needs in order to keep working across reloads. Where the browser refuses storage — private mode, a sandboxed frame, storage switched off — the kit falls back to memory that dies with the page rather than failing. Clearing the site's data removes all of it, and so does the kit's own forget(), which also stops that browser sending. What that browser already uploaded stays with the site's install, which all of its visitors' browsers share, until the site's owner erases the install (see "How to stop reporting / delete your data").

In a phone app, the React Native, Flutter, Swift and Kotlin kits keep the same kind of state in that app's own private storage, which no other app can read. They set no cookie. What is kept is:

Removing the app removes all of it, and so does the kit's own forget(). On both the browser and the phone kits, an end user's consent switch set to withheld or to this session only erases it too (see "Every way reporting stops" below). What a phone already uploaded stays with the app's install, which every phone running that build shares, until the app's owner erases the install.

On a server, the server kits keep their own working state — the install's identifier and credentials, measurements not yet uploaded and the baselines a candidate rule is compared against — in a folder of their own on that machine, by default .boosthis in the home folder. It stays until the kit's own forget() removes it or you delete the folder. That machine is yours, and nothing in that folder is written to anyone else's device.

When a project is locked. Three days after a project is locked (Part A, Section 14) — because no plan covers it, its Kit version is past its end of support, its key is switched off, or its account holder has not accepted the current version of these Terms — Kit versions that support it erase everything they stored on the device and on the server they run on, and the website kit served from our address clears what it stored in a browser the next time that browser loads a page with it. Older Kit versions stop sending, because the Service refuses them, but may not be able to erase what they stored; the customer must remove them. Nothing this erases is held by us, and nothing we hold is deleted by it.

What we never collect

How your connection and our pages are protected

<!-- These three paragraphs are generated from artifacts/api-server/src/lib/transportSecurityPosture.ts and checked against the headers the server actually sets. Edit that module, not this text. -->

Every connection to Boosthis is HTTPS. Our hosting edge sends a two-year Strict-Transport-Security instruction covering this domain and its subdomains, so a browser that has seen us once refuses to talk to us over plain HTTP again. We deliberately do not send a second copy of that header ourselves: a reader that receives two of them acts on only the first, so adding ours would change nothing and would make the response look malformed to a scanner. We check every day that the instruction is still arriving, and we are told if it stops.

Our public pages, the ones anyone can open without signing in, carry a Content-Security-Policy that the browser enforces. Scripts may load only from our own address, no script written into the page itself is allowed to run, and no site may frame the page, which is what stops clickjacking. When a browser blocks something on one of these pages it reports it to us, and we are told.

Our other pages, the dashboards behind sign-in above all, carry a Content-Security-Policy that forbids any site from framing them. The wider policy that describes every script, stylesheet and connection those pages legitimately use runs in report-only mode: the browser does not block on it, it reports to us when a page loads something outside it. It is report-only because our dashboards render scripts and styles inline, and a blocking policy that permits inline code would not be blocking anything. That is an honest limit: a script injected inline into one of those pages would not be reported, while a script loaded from anywhere we do not use would be.

Defense in depth

The same PII denylist runs on the client AND on the server. A malicious or out-of-date client cannot bypass the guard by renaming fields — both layers reject the whole batch on the first hit, and the server logs the offending field name (but not its value) for diagnostics. The PII guard runs even when the kill-switch (BOOSTHIS_DISABLED=1) is active — disabling the runtime cannot be used to smuggle PII past the chokepoint.

How candidate rules become real rules

The submission is automatic, the promotion is not.

  1. The runtime watches your local perf events. When the same privacy-safe signature recurs and your app is registered, the signature is uploaded automatically — no click required, no review queue on your side.
  2. The server upserts on (install, signature), so the same signature from the same install can never inflate the corpus. Aggregation happens across distinct installs.
  3. A human maintainer reads aggregated signatures and decides whether they become a rule. Where a signature has come from one customer's projects only, the maintainer reads it as a lesson learned from one customer's project, as described at the end of this section, and never reads any one install's other data. The words themselves may be written by the Maintainer's own model, by the developer's own connected AI, or by the maintainer; what a maintainer approves may be the words as submitted, or the maintainer's own rewrite of them.
  4. An approved rule reaches developers by one of two routes. It may be hand-landed in the shipped rule book, arriving in the next Boosthis release for everyone; or it may be served as written, immediately, over the HTTP API and the MCP server, with no kit release involved. Which route a rule takes is the maintainer's decision at the moment of approval. Either way the rule is human-reviewed before any developer can fetch it: it takes an explicit, per-proposal approval by the maintainer, and the wording has passed the same privacy and safety screen as everything else Boosthis stores or serves. A served rule may be re-worded or withdrawn at any time without notice (Part A, Section 9).
  5. After a signature has been turned into a rule, the aggregated row stays on the server so it can keep informing rule-usage and trend analysis; it is not deleted when the rule ships. It is permanently de-identified if you erase your data (forget) — see Retention below.

We do not and will not auto-publish unreviewed rules. The shortlisting is automatic; a human decides every rule that reaches a developer.

A lesson learned from one customer's project. When an issue has been seen in one customer's projects only, the Maintainer may still draft a lesson from it. The draft is written from closed words only: the error type, the kind of mistake, whose code it was, and how long and how much the project reported. It never uses your own text, names, file names or addresses. A person reviews it like any other rule, and nothing is approved automatically. Once approved, it is served only to that customer's own projects, labelled as learned from their project and not yet seen at other customers. When a second customer has the same issue, it is served to everyone, as every rule approved from two or more customers is, and the Maintainer may take that sharing back. The Maintainer may also share it with everyone sooner, labelled as the Maintainer's choice, from one customer. A lesson drafted from the Maintainer's own projects, or from projects that have since been closed or erased, reaches a customer only once that customer has the same issue; those projects never count as a customer. When an account closes, the lessons learned only from its projects stop being served, and the evidence behind them is de-identified like every other learned signal.

Retention

Every way reporting stops

Reporting from an install stops, or is held back, in each of these ways:

Turning full details off, or disableTelemetry(), stops only the optional full samples: the always-on issue and fix signals keep flowing until one of the five above applies.

How to stop reporting / delete your data

Stop the optional full samples — stops per-route samples but keeps the always-on issue & fix signals (and your install ID):

boosthis telemetry disable

or in code: boosthis.disable_telemetry() / disableTelemetry().

Stop everything immediately — the emergency kill-switch silences the entire runtime, issue & fix signals included, with no code change:

BOOSTHIS_DISABLED=1

Set it in your app's environment. The PII guard still runs first, so the kill-switch can never be used to smuggle data past the chokepoint, and it always wins over every other setting.

Delete everything — wipe your install ID and all data we hold:

boosthis telemetry forget

This calls POST /api/installs/forget with your install ID; the server deletes the install row and every sample, snapshot, trace, and alert associated with it, and permanently de-identifies the aggregated learning signals (candidate signatures, fix-resolutions, crash signatures with detailed fields removed, and learned rules) by replacing your install ID with a random anonymous key, so that none of those can be linked to you, your app, or your install again. One record is kept on purpose: a receipt that the erase happened, written only once it has, so that you can check on your dashboard that your data really is gone rather than having to take silence for it. The receipt holds the install ID, the fingerprint of the Project Key it reported under, the account it was linked to (if any), its runtime, the app's name, when it was erased, and a fingerprint of each delete token the install still accepted when it was erased — nothing the app ever uploaded. A fingerprint cannot be turned back into the token. It only lets a copy of your app that asks to erase the same install again, because it never received or could not record the first answer, be told that the erase already happened instead of being refused. It has no timed expiry: it is deleted when the account it was linked to, or the account that holds its Project Key, is closed, and a receipt that neither names is kept with no end date. Then we delete the local config file. Irreversible. (As stated in Part A, Section 7, the assignment of Telemetry survives erasure: de-identified learning signals and rules already derived are retained.)

A website's or phone app's install is erased by its owner, not by one copy. Every visitor's browser on a website reports into the site's one install, and every phone running an app into the app's one install, so what is held for it is pooled from all of them. When one of those copies asks to erase it — a visitor or app user switching Boosthis off, the end-user consent setting's withheld, or a website or phone kit's forget() — that device is cleared and stops sending, and the server answers that nothing pooled was erased. Which kind of install it is comes from the server's own record, written when the install first registered; a later request cannot change it. To erase a website's or phone app's install, revoke the Project Key it reports under, which deletes its data after the 60-day countdown in Part A, Section 14, or close your account.

Every use the Maintainer makes of personal data as its controller rests on one of four grounds: the contract with you, a legitimate interest we name, your consent, or a legal obligation. Where we rely on a legitimate interest, the last column is the balancing test: why that interest is not outweighed by yours.

What we doLegal groundWhy that ground holds
Running your account and the hosted service: signing you in, your projects and keys, your dashboard, teammates you invite, the emails you asked for (sign-in codes, receipts, alerts you set up), replies to support, and the "Ask Boosthis" assistant when you use itContractWithout it there is no account or service to provide.
Taking payment and issuing receiptsContractA plan cannot be sold without it.
Keeping payment and receipt records, and the billing name and address on them, after a paymentLegal obligationTax and accounting law requires them, for as long as it says, even after an account is closed.
Answering a request to use your rights, and keeping the record of having answered itLegal obligationData-protection law requires the answer, and the record shows it was given.
Keeping the service and its accounts safe from abuse: the security log, the request log's same-day tag, rate limits, refusing a signup address at a known throwaway-mail service or with no mail server, and one free trial per account and per confirmed email addressLegitimate interest: protecting the service, its customers and their dataEach record holds the least that does the job (a tag instead of an address, a network instead of an address for a refused staff sign-in, a domain instead of an address for a refused signup) and each has a stated end, so the intrusion is small against a protection every account relies on.
Counting visits to our public website, and keeping security reports from itLegitimate interest: knowing which public pages are read, and whether code is being injected into themCounts and coarse labels only, with no cookie, no stored address and nothing that follows a person from one day to the next.
Improving the rule book from what installs sendLegitimate interest: better detection for every customerIt uses code-derived signatures, counts and fixes, which describe code rather than a person; what is tied to an install is de-identified when it is erased, and personal data in telemetry is never assigned to us (Part A, Section 7).
Occasional notes about using Boosthis, such as a new tutorialLegitimate interest: helping existing customers use what they already haveOne copy per account per note, each carries a link that stops these notes, and there is no marketing path.
A setup-help note to a new account that holds a project key with no app registered, or an app with no reading accepted, worked out from what we stored about the accountLegitimate interest: helping a new customer finish setting up what they signed up forAt most one copy of each of the two notes, sent only to a confirmed address and only when the Maintainer chooses to send it; it names no cause we cannot see, each carries a link that stops these notes, and there is no marketing path.
Reading your own chat messages in your editorConsentOff until you turn it on, per project; switching it off stops the reading at once.
Asking you to accept a new version of these Terms, sending the notices and reminders about it, and recording your acceptance or decline with a fingerprint of the textContractThe agreement cannot change without it.
Keeping the acceptance record, and the record of each notice's delivery, after an account closesLegitimate interest: being able to show what was agreed if a claim is broughtIt keeps only who, when, which version, the fingerprint, and whether a notice arrived — nothing about how you use Boosthis — attached to the de-identified account.
Recording each download of a Kit and each fetch of Served Material, marking what we hand out, and looking for copies of our material in public placesLegitimate interest: protecting the Kit, the checks, and the fixes from copyingThe record holds the account, project, key, Kit, version, time, and a random mark, and nothing from your application.
Linking accounts that appear to belong to one person or organisation, and keeping a keyed hash of the network a signup came fromLegitimate interest: one trial and one set of allowances per person or organisationThe network is kept only as a keyed hash, for 30 days; a person reviews a link when you ask, and removes it if it is wrong.

Personal data in what installs send from your app's users is different: there the Maintainer acts as your processor under the processing agreement incorporated in Part A, Section 25, and the legal ground is yours to establish as the controller.

Your rights over your data

Everything you can ask us to do is listed here. Two of these need nobody's permission — they are buttons — and the rest are one message away.

Decisions made by a program alone. Six automatic steps can turn you away or change what you have without a person deciding: a signup address at a known throwaway-mail service or with no mail server is refused; a free trial is refused where the account already had one or a paid plan, or where its confirmed email address already had one on another account; rate limits refuse requests past a set pace; a plan lapses, and the account's projects are locked, once the last renewal attempt is declined (see "Failed or declined renewals" in Part A); an account's projects are locked when its holder has not accepted a version of these Terms that needs accepting by the date it takes effect (Part A, Section 29); and accounts that share a confirmed mailbox or a payment card may be linked, and then share one trial and one set of allowances (Part A, Section 30). Each step acts on the fact it names and on nothing else, and none of them builds a profile of you. A free trial or a paid period also ends on the date these Terms describe; that is the agreed term running out, not a decision about you. If one of them turned you away, locked your projects, or linked your account and you think it was wrong, write to us and a person will look at it.

How "the same email address" is judged for a free trial. We do not compare addresses. We compare a one-way fingerprint of the confirmed address, made after setting aside the differences that still reach the same inbox: capital letters and anything after a "+" for every address, and for Gmail addresses the dots in the name and the googlemail.com spelling, because Gmail delivers all of those to one inbox. This changes nothing about the address you sign in with. Only the fingerprint is kept, on the account that had the trial; it cannot be turned back into an address, and it is kept for as long as that account exists and after it is closed (see the account-data line under "Retention" above), solely so the one-trial limit still holds. If a trial was refused this way and you think the two addresses belong to different people, write to us and a person will look at it.

What you must give us, and what is up to you. To open an account we need your full name, your email address, a password, and your confirmation of the Terms and of your age; without them we cannot open one. To buy a plan we also need the billing details the checkout asks for and a card, which goes to Moyasar and never to us. Everything else (teammates, support messages, the assistant, AI connections, the chat reader) is used only if you choose to use it, and leaving it out costs you only that feature.

How to ask, and how long we take. Email support@boosthis.com, or write to the postal address under "Contact" below. We answer within 30 days of receiving a request: the 30 days run from the day it reaches us. If we need something to identify you — normally only that you write from the email address on the account — we will ask for it, and asking neither stops nor restarts those 30 days. Where a request genuinely needs longer, we may extend that time once, by up to 30 more days, and only by telling you, with the reason, before the first 30 days are up. There is no charge. The self-serve levers above are immediate and do not go through this route at all.

Processing outside the Kingdom. Boosthis is operated from the Kingdom of Saudi Arabia. As "Where Boosthis runs, and whether your data crosses a border" above sets out, some of the companies that run it hold what reaches them outside the Kingdom. That processing is necessary in order to provide the hosted service you asked for — there is no version of the hosted dashboard, email or assistant that does without them — and by creating an account or registering a project you agree to it. Each company receives only what is listed beside its name and may use it only for the purpose named there, and for each one we keep a written record of the ground relied on and the safeguards that apply. If you would rather nothing crossed a border, a general install of the toolkit sends nothing anywhere.

Children

Boosthis is a developer tool. It is not intended for anyone under 18. We do not knowingly collect data from anyone under 16, and since 4 October 2026 we open no account for anyone who does not confirm they are at least 18. Buying a paid plan also requires you to have reached the age of majority where you live, if that is higher than 18. Section 1 of Part A says why that is a separate question, and what the change of floor means for an account opened before it.

Children using your application. Boosthis measures your application while real people are using it, and those people are not our users. We have no relationship with them, cannot see who they are, and never receive anything that identifies them. Where your application is directed at children, or you know that children use it, the notice and consent that requires is yours to obtain and not ours — Section 28 of Part A sets out what that means, what you must not send us, and what we do when you tell us an application is child-directed. You can tell us by emailing support@boosthis.com with "child-directed" in the subject and naming the project.

Changes

If we change this policy, the "Last updated" date at the top moves with the change, and Part A, Section 19 decides when it takes effect: a material change no sooner than 30 days after we tell you. The agreement screen that a phone app or a kit shows its own users asks again only when the version of the consent text it shows changes, not with every revision of this document. A change to the list of companies under "The companies that can see your data" is announced there at least 14 days in advance, as that section describes. You can also be emailed when that list changes, without an account, from the security and trust page at boosthis.com/trust.

Contact

Deleting your account and getting a copy of what we hold about you are both self-serve — you do not need to email anyone. Use Dashboard → Delete account (also in the Boosthis phone app) and Dashboard → Your data → Download. Everything else you can ask for is under "Your rights over your data" above.

If an app measured you and you are not our customer, read https://www.boosthis.com/your-data. That page is written for an end user of somebody else's application — what is held, how to ask about it, how a request is proved without handing us anything more about you, what you can do yourself without asking anyone, and what needs the application owner. We are the processor for that data and they are the controller, so most of it is theirs to decide; the page says plainly which parts are and which are not.

For any other terms or privacy question, email support@boosthis.com. If you email support, we keep your message (address, subject, and text) so we can reply and keep a record of the request; support mail is never stored with telemetry, and what we match it against when we read it is described under "Support messages" above. Once your request is closed we keep it for 365 days and then delete it automatically, and while a request is still open we keep it until it is closed. A copy of an emailed message also stays in the owner's mailbox at Google Workspace, with no deletion schedule, until the owner deletes it. So does the notice of your message sent to the owner's mailbox.

By post: Veqtara Tech Company (trading as Boosthis), commercial registration 7054832287, Rabwa District, Al Noaim Street, Riyadh, Kingdom of Saudi Arabia.