Privacy policy
Privacy Policy: Trepni
Last updated: 17 October 2026
Version: 1.4
This policy explains what data the Trepni app collects, why, how it is used, who it is shared with, and what rights you have.
1. Who is the data controller
Vahid Kavazović
Podgorica, Montenegro
Email: podrska@trepni.app
For any privacy question or to exercise the rights in section 9, write to the address above. We answer within 30 days.
2. The basic principle
Trepni is built to ask for as little as possible. The app works without an account. Reading enforcement points, the map, the road ribbon and drive alerts all work without signing in. An account is only needed to submit a report, confirm someone else's report, or vote.
We do not sell data. We do not use it for advertising. We do not track you across other apps or websites, which is why no App Tracking Transparency prompt is shown.
3. What we collect
3.1 Location data
| What | When | Where it is processed |
|---|---|---|
| Your position and direction of travel | while the app is open (Road, Map, Reports), to show enforcement points, reports and the road name | sent to our server for that query only; not written anywhere and not tied to your account |
| Your position during Drive mode | while Drive mode is active, including in the background | alerts are computed on your phone; roughly every 2 minutes the position goes to our server to refresh points and reports; not written anywhere |
| Exact position of a report | only when you submit a report | stored with that report |
| Origin and destination | when you search a route, and when Drive mode recalculates it because you left the route | sent to a routing service (section 5); not stored |
| Approximate position (about 1 km) | while you type in the Destination field | sent to the place search service; not stored |
| Position for a place name | when the app shows where you are (rounded to about 1 km) or where a report point or SOS is (about 10 m) | sent to the phone's map service (Apple or Google); we do not receive it |
While driving, the app continuously computes your position relative to enforcement points and reports. That computation happens on your phone. Our server receives your position only to return the points and reports around it and does not write it anywhere. We do not build or store a history of your movements.
Background location is used only while Drive mode is on: so alerts work with the screen off and so the points and reports around you stay fresh. You start Drive mode yourself, or it starts on its own when the Road screen detects that you are driving, after a 6 second countdown you can cancel. Background tracking stops when you end Drive mode.
The Live Activity on iPhone and the "Trepni is watching the road" notification on Android are shown locally, on your phone. They are not sent through our server.
The map on the Map screen and in Drive mode is drawn by Apple Maps (iPhone) or Google Maps (Android). To show the part of the map you are looking at, those services receive data about that part of the map, under their own privacy policies.
You can withdraw location access at any time in your device settings. The app still works, but it cannot warn you.
3.2 Account data
If you create an account, we store:
- your email address,
- the name you entered or that Apple/Google returned (if you shared it),
- your identifier with the sign-in provider,
- account creation date and last sign-in time,
- your reputation score,
- account status (role and any temporary reporting ban for breaching the Terms).
If you use Sign in with Apple and choose to hide your email, we only ever receive Apple's relay address, never your real one.
We do not store passwords. They are held as cryptographic hashes by our authentication provider.
3.3 Content you create
- reports you submit: the kind (speed camera, road crash, road hazard with its subtype, traffic check), coordinates, place name, direction, time and, for a speed camera, optionally the speed limit,
- tags attached to a report, picked from a list (e.g. roadside, in a car, overpass); no free text is entered,
- votes and confirmations on other people's reports,
- votes on whether a camera is in place, and speed-limit suggestions,
- reports of objectionable content (which report, and the reason),
- the list of drivers you have blocked (a blocked driver does not see this).
App settings (alert distance, tone, theme, which report kinds you are alerted about), saved routes, hidden radars and recent destinations are kept on your phone only. The app language is sent only with the push token, so notifications arrive in your language.
Reports and votes are visible to other users, but without your name or email. Other drivers see the report (kind, place, time, tags and speed limit) and how many times it has been confirmed, but not who sent it.
3.4 Technical data
- app version, device model and OS version,
- if you allow notifications: the push token, platform (iOS or Android), app language and, if you are signed in, a link to your account. We keep this even without an account, so Trepni notifications can reach you,
- basic error and request logs, for security and troubleshooting.
Usage analytics. The app sends pseudonymous usage data to PostHog (PostHog Inc., data stored in the European Union, Frankfurt): which screens you open, app opens, installs and updates, onboarding steps, whether permissions were granted, sign-in and sign-out (only the method: Apple, Google or email) and account deletion, when a drive starts and how long it lasts (as a range, e.g. "15 to 30 min"), that an alert was shown (distance as a range) and that GPS signal was lost, that a report was sent (only its kind and number of tags) or a vote cast, that content was reported or a driver blocked (not which), filter choices, opening a Trepni notification, opening the SOS screen, which service you called from SOS and that you shared your location (without the location itself). Along with this go the device maker and model, operating system and version, screen size, the phone's language and time zone, and the app version. We never send your location, addresses or place names, email, name or account ID, and PostHog does not derive a city from your IP address. The data is not tied to your account, only to a random identifier that exists on your device.
Neither the app nor the trepni.app website records the screen. The website counts visits through the same service, without cookies and without storing anything in your browser: which pages were opened, the referring page, browser and device type, and clicks on a store button. Visitors are told apart only within a single day, by a hash PostHog computes on its server.
The app contains no advertising or crash-reporting SDK.
3.5 Launch list (website)
If you leave your email address in the "Notify me" field on trepni.app, we keep the address, your language and the signup date. We send one email to confirm the address and, when the app ships, one email about that. Nothing else. Without confirmation we send nothing more. Every email has a one-click unsubscribe link. To prevent abuse we keep only a hash of your IP address (not the address itself) for at most two hours.
3.6 What we do not collect
- contacts, photos, calendar, microphone, camera,
- travel or movement history,
- the advertising identifier (IDFA),
- information about other apps on your device,
- health, payment or any special-category data.
4. Why we process data, and on what legal basis
| Purpose | Data | Legal basis |
|---|---|---|
| Showing enforcement points and alerts | location | performance of a contract (the service you asked for), with your consent for location access |
| Running accounts and reports | email, name, account ID | performance of a contract |
| Publishing and moderating driver reports | reports, votes, reputation | contract and legitimate interest (accuracy, abuse prevention) |
| Push notifications: confirmation of your report and Trepni notifications (app news and important changes) | push token, platform, language | your consent (notification permission); Trepni notifications can be turned off in Profile |
| Place search and a route to the chosen destination | typed text, approximate position, origin and destination | performance of a contract (the service you asked for) |
| Reporting objectionable content and blocking drivers | account ID, report, reason, blocked account | legitimate interest (safe content, protecting users) |
| Security, abuse prevention, rate limiting | technical logs, account ID | legitimate interest |
| Usage analytics (improving the app) | pseudonymous events, device model, app version, language | legitimate interest |
| Launch list (website) | email address, language, date | your consent (confirming the address); withdraw it by unsubscribing from any email |
| Counting website visits | pseudonymous visit data, no cookies | legitimate interest |
| Meeting legal obligations | as required | legal obligation |
You can withdraw consent at any time (by turning the permission off in device settings, or deleting your account in the app). Withdrawal does not affect the lawfulness of processing before it.
5. Who we share data with
We do not sell data and do not pass it to third parties for their own purposes. We use the services in the table below. Where a service offers it, it processes data on our instructions under a data processing agreement. Maps, place names and search on your phone are provided by Apple and Google under their own terms and privacy policies, as is the public Photon service.
| Processor | Role | Data |
|---|---|---|
| Supabase Inc. (database, authentication, edge functions) | hosting of app data; queries for enforcement points, reports, place search and routes | account, reports, votes, push token, position for a query (not written), technical logs |
| 650 Industries, Inc. (Expo) | delivery of push notifications and app updates | push token, notification text, app version, platform |
| Apple Inc. | Sign in with Apple, push notifications (APNs), distribution | account identifier, push token |
| Apple Inc. (Apple Maps) | the map, place names, place suggestions and street routes on iPhone | the part of the map you view, typed text, rounded position for a place name, origin and destination |
| Google LLC | Google Sign-In, push notifications on Android (Firebase Cloud Messaging) | account identifier, push token |
| Google LLC (Google Maps, Places API, Routes API) | the map, place names, place suggestions and street routes on Android | the part of the map you view, typed text, approximate position (about 1 km), origin and destination |
| Geoapify GmbH, komoot GmbH (Photon, OpenStreetMap) | backup place search when the first source does not answer | typed text, approximate position (about 1 km) |
| Mapbox Inc., HeiGIT gGmbH (OpenRouteService) | backup street routing | origin and destination (not stored by us) |
| Vercel Inc. | hosting of the website and the admin panel; forwards website visit counts to PostHog | access logs |
| Resend Inc. | sending email (account confirmation, new password, launch list) | email address, email content |
| PostHog Inc. (data in the EU, Frankfurt) | usage analytics for the app and website | pseudonymous events, random device identifier |
Place search: the text you type in the Destination field and your approximate position (rounded to about 1 km) are sent to a search service only to return suggestions. We do not store them. Recent destinations stay on your phone only. When you pick a street, village or place, your position and destination are sent to a routing service only to compute the route. The route is not stored.
SOS: the SOS screen shows your place and coordinates on your phone; we do not receive them. The place name comes from the phone's map service (Apple or Google), as on other screens; offline you see coordinates only. If you share your location, the app you choose sends it, and calls go through your phone.
We disclose data to authorities only on a lawful request.
Transfers outside Montenegro: these processors operate in the European Union and/or the United States. Transfers rely on the European Commission's Standard Contractual Clauses or an equivalent safeguard.
6. How long we keep data
| Data | Retention |
|---|---|
| Account data | while the account exists |
| Driver reports | shown until they expire: speed camera 3 h (confirmations extend it), traffic check up to 2 h, crash up to 3 h, road hazard up to 12 h, pothole 7 to 30 days. A fixed camera report does not expire: it becomes a point on the map until drivers' votes or our team remove it. The record of a report stays in the database while your account exists, for reputation, statistics and abuse prevention |
| Confirmed reports (weekly view) | 7 days in the app; the record is kept like other reports |
| Votes and reputation | while the account exists |
| Push token and device data | while notifications are allowed; deleted 90 days after the app last checked in |
| Reports of objectionable content | while the reported item, or the account that sent the report, exists |
| Blocked drivers | until you remove the block or delete your account |
| Saved routes, hidden radars, recent destinations | on your phone only, until you delete them or the app |
| Technical and security logs | up to 12 months |
| Usage analytics | up to 12 months |
| Launch list (website) | until the app ships and we send one email about it; we delete the list at most 30 days after launch. Until then an unsubscribed or unconfirmed address is kept only with a flag that we must not write to you |
| Data after account deletion | the account, reports, votes, content reports and blocks are deleted immediately; the device push token stays, unlinked from any account, until it is deleted (90 days without check-in); backups are overwritten within 30 days |
| Offline cache on your phone (only public data about enforcement points, reports and roads) | until you delete the app; "Refresh now" in Profile → Data replaces it with fresh data |
Deleting your account also deletes all your reports, votes, content reports and your block list. An enforcement point already on the map, and a fixed camera you reported that another driver has since confirmed, stays, with no link to you. Analytics stay, because they were never tied to your account.
7. Security
- All traffic uses HTTPS/TLS.
- Database access is governed by row-level security: the app reads public data and can change only your own profile and your own reports. Reports, votes and content reports are written only through restricted server-side procedures.
- Your session is stored in the device's secure storage (Keychain / Keystore).
- The admin panel is restricted to authorised staff with role checks.
No system is perfectly secure. If a breach is likely to result in a high risk to your rights, we will notify you and the supervisory authority as required by law.
8. Children
Trepni is not intended for anyone under 16 and we do not knowingly collect their data. If you believe a child under 16 has created an account, write to podrska@trepni.app and we will delete it.
9. Your rights
Under the Montenegrin Personal Data Protection Act and, where applicable, the EU General Data Protection Regulation (GDPR), you have the right to:
- access a copy of the data we hold about you,
- rectification of inaccurate data,
- erasure, fastest in the app (Profile → Account → Delete account),
- restriction of processing,
- portability in a structured, machine-readable format,
- object to processing based on legitimate interest,
- withdraw consent at any time,
- lodge a complaint with the Agency for Personal Data Protection and Free Access to Information of Montenegro (www.azlp.me), or with the supervisory authority where you live.
Send requests to podrska@trepni.app. Deleting your account from inside the app is immediate and requires no contact with us.
10. Where camera and report data comes from
Data about speed enforcement locations and road conditions is not personal data. It comes from:
- public project documents about speed cameras,
- reports submitted by app users (speed cameras, road crashes, road hazards, general traffic checks).
Road geometry, speed limits and settlement names are derived from OpenStreetMap: © OpenStreetMap contributors, ODbL licence.
11. Changes to this policy
If we materially change how we handle data, we will tell you in the app before the change takes effect and update the date at the top of this page. Earlier versions are available on request.
12. Contact
Vahid Kavazović
Podgorica, Montenegro
podrska@trepni.app