Privacy Policy
Last updated: September 20, 2026
This Privacy Policy explains how Velora ("the app", "we", "us"), a mobile application by kodmap, handles information when you use it on iOS and Android. Velora has no account and no sign-in, and there is no Velora server: your activities, your routes and the videos and posters you make are stored on your device and rendered on your device.
The short version. We do not have a database with your name in it, because we do not have a database. We never see your routes. We do not ask for your name, email or address, we run no analytics and no crash reporting, we show no ads, and we sell nothing. The only network requests Velora makes on its own are for map and elevation tiles, and those carry no identifier. The one exception is a route link that you choose to send someone — section 5 explains exactly what one contains.
1. What stays on your device
Everything you make with Velora is stored locally and is never uploaded to us:
- Activities you record — the GPS trace, timestamps, distance, pace and speed, elevation, laps and splits, and heart rate or cadence if you have a sensor connected.
- Activities you import — the contents of any GPX, TCX or FIT file, or of a whole export archive (ZIP) from another service, parsed entirely on your device.
- Workouts you import from Apple Health — see section 3.
- Photos you attach to an activity or choose as a template background.
- The videos and posters you generate, together with the settings you generated them with, so you can render them again later.
- Your settings — units, themes, template choices, privacy zones.
On iOS this lives in the app's own container (Application Support) and in the app's preferences; on Android in the app's private internal storage and its DataStore. Neither is readable by other apps. Velora has no cloud sync, no online backup and no web version — there is nowhere for your activities to sync to.
Your device's own backup is a separate matter: on iOS, data that is not a regenerable cache is included in whatever backup you have configured with Apple (iCloud or a computer), under Apple's terms and your settings, not ours. On Android, Velora sets allowBackup="false", so its data is excluded from Google's automatic backup.
2. Location
Velora uses your device's location to record the route of an activity, and only while an activity is being recorded. You are asked for permission at the moment you first tap Start — never on first launch.
If you allow background or "always" location, recording continues while your phone is locked or the app is in the background. That is the whole reason the permission is requested: without it the platform stops delivering location to a backgrounded app and a training session is cut short.
Your location is not transmitted to us, and there is no server to transmit it to. It is written to the activity on your device. Map tiles are the only thing that leaves the device automatically, and what that means is in section 4.
3. Apple Health (iOS)
If you choose to import from Apple Health, Velora asks for permission to read the following, and reads nothing else: workouts, workout routes, heart rate, step count (used as running cadence — Health has no cadence type of its own), walking/running distance, cycling distance, swimming distance, and active energy burned.
If you also turn on background delivery, iOS wakes Velora when a new workout is written so that a run recorded on your watch is already in your archive when you next open the app.
Velora also asks for permission to add workouts to Apple Health, so that what you record here can count towards your rings.
Health data is read into the same local storage as everything else in section 1. It is never transmitted anywhere. You can withdraw either permission at any time in the iOS Health app, under Sharing → Apps.
Health Connect and Google Fit are not used on Android, and Velora requests no health permissions there.
4. Network requests Velora makes on its own
There are two, both for map imagery, and neither carries an account, an identifier, or anything about your activity:
- Map tiles and styles —
tiles.openfreemap.org. The basemap under your route, its labels, fonts and 3D building shapes. Velora uses OpenFreeMap with no API key and no account. - Elevation tiles —
s3.amazonaws.com/elevation-tiles-prod. Public terrain elevation rasters, used to draw hillshade and relief under a route.
Be aware of what these requests inherently reveal: a request for a tile tells the host which square of the world is being drawn, in the same way that opening any map on the web does. They contain no name, no account, no device identifier and none of your activity data, and we do not operate, log or receive them. Tiles are cached on your device, so an area you have already rendered generally needs no further requests.
Map data is © OpenStreetMap contributors, © OpenFreeMap, © OpenMapTiles.
5. Route links you choose to share
Velora can turn a route into a link that looks like this:
https://velora.kodmap.co/applinks/r/#<payload>
Two things about it matter, and both are deliberate:
- The route is in the part after the
#. That part of a URL is a fragment, and by the design of the web a fragment is never sent to the server. So when someone opens your route link — in the app, or on this website — the route is decoded and drawn in their browser. It does not reach our hosting, it is not logged, it is not stored, and we never see it. There is no short-link service and no upload step. - Privacy zones are applied before the link is made, not after. If you have drawn a privacy zone around your home or workplace, the parts of the route inside it are removed before anything is encoded, and only the longest remaining stretch is included. The full route stays visible to you inside the app.
A route link carries the shape of the route, the name of the place it is in (from map data, and omitted entirely if you have place names switched off), and its total climb. It deliberately carries no times, dates, speeds, heart rate, your name, or any identifier.
It does, however, carry real coordinates. Anyone who has the link can see where that route goes — that is what sharing a route means. Send it to people you mean to send it to.
6. Photos, camera, microphone, music and sensors
- Photo library (iOS) — when you pick a photo as a template background, or attach one to an activity, the system hands Velora only the images you chose. Velora never browses or uploads your library. Saving a finished video or poster asks for add-only permission.
- Camera (iOS) — used only when you take a photo during a recording, to attach it to that point of the route.
- Music (iOS) — used only to display the title and artist of whatever is already playing, on the recording screen. Velora does not read, copy or upload your music library.
- Bluetooth (iOS) — used only to connect to an external cadence or speed sensor, when you go looking for one.
- Motion (iOS) — used to show your cadence while recording.
- Microphone — Velora does not request or use microphone access on either platform.
- Android requests no camera, photo, music or Bluetooth permissions at all.
7. Purchases and subscriptions
Velora Pro is an auto-renewing subscription. Purchases are processed by the Apple App Store and Google Play, and subscription status is managed with RevenueCat.
We never see or store your payment card details; billing is handled entirely by the stores. RevenueCat identifies your installation by a random, anonymous identifier that it generates — Velora never sends it your name, your email, or any identity, because it does not have one. On iOS, an Apple-provided attribution token may be passed along so that a purchase can be attributed to an advertising campaign; it identifies a campaign and a device, not you.
8. What Velora does not do
To be explicit, because several of these are things comparable apps do:
- No analytics. No Firebase Analytics, no Google Analytics, no Amplitude, Mixpanel, Segment or anything equivalent. Velora does not measure which screens you open.
- No crash reporting. No Crashlytics, no Sentry.
- No advertising and no tracking. No ad SDK, no advertising identifier collection, no cross-app or cross-site tracking. This is why you are never shown an App Tracking Transparency prompt and never a consent banner.
- No push notifications, and no push tokens. Notifications Velora shows are generated on your device — a recording in progress, an export that finished.
- No accounts, no profiles, no feed, no followers, no leaderboard.
- No sale or sharing of personal information, in any sense including those used in the CCPA/CPRA.
9. Legal basis and your rights (GDPR / UK GDPR)
If you are in the EU, the UK or Switzerland: the processing Velora performs on your device to deliver the app you asked for is necessary for the performance of the contract between us (Art. 6(1)(b)). Health data and precise location are special or sensitive categories, and Velora processes them only on your device and only with your explicit consent (Art. 9(2)(a)), given through the system permission prompts, which you may withdraw at any time in your device settings.
Because we hold no personal data about you on any server, a request to access, correct, port, delete or restrict it has nothing to act on at our end — the data is in your hands, on your device, and deleting the app deletes it. Where a request concerns your purchase record, we will act on it with the processor named in section 7. You may also complain to your local data protection authority.
10. Children
Velora is not directed at children under 13, and we do not knowingly collect information from them.
11. Changes to this policy
If this policy changes materially — in particular if we ever begin collecting a category of data we do not collect today, or add a processor or a network request — we will update this page and change the date above.
12. Contact
Questions about this policy: Contact. See also Data Deletion.