Spoke Savvy Privacy Policy
Effective date: October 26, 2026
Who we are: Spoke Savvy is operated by Cyber Cortex LLC, a Colorado limited liability company.
Contact: support@spokesavvy.net
This policy says what Spoke Savvy collects, why, where it goes, how long we keep it, and how to delete it. It is written to match what the app and service actually do as of server 0.7.60 / iOS 0.10.10. If the software changes in a way that affects your data, this document changes with it.
The short version
- You sign in with Apple or Google. We keep the account identifier and the email address the provider gives us. We never see your password.
- Your bikes, parts, tools, service history, rides, photos, documents, and chats are stored so the app can work. They are yours; deleting your account deletes them.
- When you chat, the conversation and the bike context behind it are sent to an AI provider to generate the reply. The same provider also processes the text of documents and web pages you add, so the assistant can search them (details below).
- Health data (cycling workouts) is read from Apple Health only if you allow it and is used only to track distance on your bikes. Your rides are never sent to the AI provider, never sold, and never used for advertising.
- There are no ads, no trackers, no analytics SDKs, and no sale of data to anyone.
- Uploaded files are scanned for malware.
What we collect and why
Account
When you sign in with Sign in with Apple or Google Sign-In, the provider gives us a stable account identifier and, if you share it, your email address. We store those two things, a display name you can set yourself, and an optional profile photo. We do not receive or store your password, and we do not store the name Apple offers at first sign-in.
Your email address is used to decide which plan limits and curator rights apply to your account and, rarely, to contact you about your account (see "Uploaded files" below). It is not used for marketing. We keep the address from your first sign-in and do not update it automatically; if it changes, email us.
Your garage
Everything you enter in the app is stored on our servers so it can follow you between devices: bikes (year, make, model, notes), components and consumables, tools, maintenance and service records, and the service-due status the app computes from them.
Rides and Apple Health
If you allow it, the app reads cycling workouts and cycling distance from Apple Health. It reads nothing else from Health and never writes to it.
For each ride you import, the app sends to our servers: a workout identifier, the date of the ride, the distance, and the duration. It does not send the route, your location, heart rate, calories, or the time of day. We use rides only to add distance to your bikes so that wear and service intervals can be tracked.
Your rides themselves (their dates, distances and durations) are never sent to the AI provider. A bike's running mileage, which includes the distance of rides you imported, is part of the bike context the assistant sees, for example "1,240/1,500 mi" since a chain was fitted. Health data is never shared with any other third party, never sold, and never used for advertising or marketing. You can turn off Health access at any time in the iOS Settings app; rides already imported stay in your garage until you delete them or your account.
Photos
You can add photos of your bikes, tools, and yourself (profile photo), and you can attach a photo to a chat message. Photos are re-encoded on your phone before upload, which removes camera metadata such as location. They are stored in a private storage bucket that only the service, its malware scanner, and we as its operators can read, and are shown back to you through short-lived signed links.
Chat photos are also sent to the AI provider as part of the conversation (see "Chat and AI" below). Bike, tool, and profile photos are not.
Documents
You can upload manuals and spec sheets (PDF, Word, or text) or give the app a web address to fetch. We extract the text so the assistant can quote it back to you, and we store the file and the extracted text. Documents you upload are private to you unless you choose to publish one to the shared library, in which case the file stays available to other riders even after you delete your account (see "Deleting your account").
When you give the app a web address, our server fetches that page. The request carries no information about you.
Chat and AI
The assistant is powered by a third-party large language model. To answer you, we send the provider: your message, the earlier messages in the same conversation (including any photos attached to them), the details of the bike you are chatting about (make, model, notes, components, recent maintenance, service-due items), relevant passages from your documents and the shared library, and the "memories" described below. We do not send your name, email, account identifier, or Health data. Chat requests, the scope check we run on each message, the step that picks out memories, and requests to suggest parts for a bike do carry a pseudonymous identifier: a keyed one-way hash of your account identifier, from which the provider cannot recover it. It lets the provider tell us about abuse from one account without the whole service being cut off. The other requests described below carry no identifier.
The provider is OpenAI (via its API). Under OpenAI's API terms, data sent through the API is not used to train its models. OpenAI keeps abuse-monitoring logs, which can include the messages we send, for up to 30 days, unless the law requires longer. We also send the same provider, to compute "embeddings" (numeric fingerprints used to find relevant passages) or to tidy and check text: your messages and the assistant's replies, your memories and corrections, the full text of documents you upload or link (once, when they are added), the text of web pages you ask us to fetch, and a short summary of each bike and part you add (year, make, model, nickname, notes, recent service). When you ask the app to suggest parts for a bike, the text of that bike's documents is sent too.
Memories. After each chat turn, the assistant notes durable facts you stated about yourself or your bikes (for example, "rides mostly gravel" or "prefers tubeless") so it does not have to ask again. These are short, are tied to your account or a specific bike, can be viewed and deleted from the Memories screen inside a chat, and are deleted with the conversation, bike, or account they belong to. Thumbs-down feedback on an answer is saved the same way so the assistant can correct itself.
Limits. Each account has a message allowance per rolling five-hour window; its size depends on your plan. We keep only a counter and the time the window started, not a per-message ledger. Server logs record the size of each reply (a token count) with your account identifier for 30 days (see "Technical and operational data").
Uploaded files: malware scanning and acceptable use
Every file uploaded to Spoke Savvy is scanned automatically for malware by Amazon GuardDuty. A document or chat photo that is flagged, or whose contents do not match its declared type, is refused and deleted, and the app tells you why. A flagged bike, tool, or profile photo is removed by the operator. Flagged uploads are logged with your account identifier and reviewed by the operator.
By using Spoke Savvy you agree that:
- Files you upload may be scanned automatically for malware.
- You will not upload files you know to be malicious.
- You will not upload illegal content.
- Accounts whose uploads are repeatedly flagged may be suspended.
In practice: a first flagged upload results in no action beyond the file being refused. A second flagged upload within 30 days suspends the account, and you will receive one email from the operator saying so. A suspended account cannot be opened or deleted from the app. We keep its data for up to 90 days as a record of the incident and then delete it; you can ask us by email to delete it sooner.
Technical and operational data
Our servers keep request logs for 30 days to diagnose problems: the time, the endpoint, the response code, your device's network address and its app and system identification string, and for some events your account identifier or the web address you asked us to fetch. Logs never contain message text, memories, or file contents. Sign-in attempts are rate-limited by network address. Crash reports and screenshots you send through TestFlight go to Apple and are shared with us under Apple's TestFlight terms.
What we do not do
- No advertising, no advertising identifiers, no cross-app tracking.
- No analytics or crash-reporting SDKs in the app.
- No sale, rental, or sharing of your data with data brokers or marketers.
- No reading of your contacts, location, microphone, or anything else beyond the permissions listed above (Health, photo library, camera for chat photos).
- No marketing email. We email you only to reply to a message you sent us, to send the account-suspension notice described above, or to tell you about a material change to this policy (see "Changes"). The app's Contact Support button pre-fills your account email, account identifier and app version so we can find your account; you can delete them before sending.
Who else sees your data
| Recipient | What | Why |
|---|---|---|
| Amazon Web Services (US West, Oregon) | Everything we store | Hosting: database, file storage, compute, malware scanning |
| OpenAI (or the configured AI provider) | Chat messages and replies, chat photos, bike context (including mileage), memories and corrections, the text of documents and fetched web pages, bike and part summaries; a pseudonymous account identifier (a keyed hash) on chat and part-suggestion requests | Generating assistant replies, searching your documents (embeddings), tidying fetched text; abuse reports about one account |
| Apple | Your Apple account identifier and email at sign-in; TestFlight crash reports | Sign in with Apple; beta distribution |
| Your Google account identifier and email at sign-in | Google Sign-In | |
| Amazon.com | Nothing from us | The app can open an Amazon search for a part in your browser; that is a link you choose to follow, and Amazon's own policy applies there. The link carries no affiliate or tracking tag. |
Data is stored in the United States. If you are outside the United States, your data is transferred there.
We will disclose data if the law requires it, or to report illegal content as the law requires.
How long we keep it
- Your account and everything in it: until you delete the account. A suspended account: up to 90 days, then deleted.
- Conversations, memories, photos, and documents: until you delete them or the account.
- Server request logs: 30 days.
- Database backups: 14 days. Data you delete lingers in encrypted backups for up to 14 days and is then gone.
- Sign-in sessions: refresh tokens expire after 30 days and can be revoked by signing out.
Deleting your account
In the app: Profile → Delete Account, then type DELETE to confirm. If you signed in with Apple, Apple asks you to confirm once more; if you complete that step, we also remove Spoke Savvy from your Apple Account's Sign in with Apple list. If you cancel it, the account is still deleted and you can remove the entry yourself in Settings. Deletion is immediate for the database and is normally followed within minutes by removal of your files from storage; if storage is unavailable, removal is retried until it completes. It removes your account, bikes, parts, tools, service records, rides, photos, conversations, memories, documents, and sessions.
Two things survive deletion on purpose: documents you chose to publish to the shared library stay in the library without your name attached, and your data remains in encrypted backups for up to 14 days.
If you cannot use the app, email the contact address above and include the email address registered to your account, and we will delete it for you. If you chose Hide My Email when you signed in with Apple, that address ends in @privaterelay.appleid.com; you can find it on your iPhone in Settings → [your name] → Sign in with Apple → Spoke Savvy.
Your rights
Depending on where you live you may have rights to access, correct, export, or delete your data, or to object to its processing. Your garage, rides, chats, memories, documents, and plan usage are all visible in the app, and the sections above explain how to delete them. For anything we hold that the app does not show (such as server logs and security records), or to ask for a copy of your data, email the contact address above.
California. We do not sell or share your personal information, as those terms are defined in the California Consumer Privacy Act. We use it only to provide the app.
EU and UK. We process your data to provide the service you signed up for (performance of a contract). We read Apple Health workouts only with your consent, which you can withdraw at any time in the iOS Settings app. We keep the service secure (malware scanning, request logs, rate limits, account suspension, the pseudonymous identifier sent to the AI provider, and backups) on the basis of our legitimate interests. Amazon Web Services and OpenAI process data on our behalf as our processors. Your data is stored and processed in the United States. You can complain to the data protection authority where you live.
Children and teens
Spoke Savvy is not directed at children under 13 (under 16 in the EU and UK), and we do not knowingly collect data from them. The chat assistant is meant for adults: if you are under 18, use it only with the permission of a parent or guardian. If you believe a child has created an account, email the contact address and we will delete it.
Changes
We will post changes here and update the effective date. If a change materially affects how your data is used, we will also tell you before it takes effect, by email to the address on your account or in the app.