Copenhagen Cycling Buddies

Your data

What the app stores, where, who sees it, and how you get rid of it. Written so that every sentence can be checked against the app's code.

Version 3 · 23 September 2026

Who is responsible

Copenhagen Cycling Buddies (CCB) is a private hobby project by Ferdinand Drobik, Copenhagen, Denmark. No company stands behind it. It is free, has no ads, no purchases and no tracking. Danish law and the GDPR apply.

Contact: info@nordicappstudio.dk. The full postal address is shown inside the app, under the club rules.

The short version

What the app stores, and why

Your account

You sign in with Apple. Apple gives the app a member ID and an email address — your real one or the relay address Apple offers. The email is used only to sign you in; no other member ever sees it, and the app never shows it.

You add a name, a short intro, a photo and, if you like, your district. You choose what other members see: photo, intro, routes and district each have a switch. Other members only ever see the version of your profile with the fields you switched on.

To join, two members vouch for you with their referral codes. Who vouched for whom is kept, also if an application is declined, so the same person cannot apply endlessly.

Your rides

A ride you share carries: start and end time, duration, distance (rounded up to 100 m), climb, which app or watch recorded it, a note, tags like rain or headwind, and the route — already cut at your privacy zones. The weather at the time and place of the ride is fetched on your iPhone and stored with it.

Photos are resized on your iPhone and saved without their metadata, so the place and camera are removed. Only members can open them, through links that expire after an hour.

A ride marked private is seen by you alone. Not by other members, not by the admin. The access rules on the server say so, and they are tested.

Apple Health

From Apple Health the app reads exactly three things: workouts, workout routes and cycling distance. Heart rate, calories, power, cadence, weight or any other health type are never requested, so the app cannot read them. Before it reads or writes for the first time, the app asks you, and your answer is stored with the version of the text you saw. You can take it back in your privacy settings at any time.

When you record a ride with the app, GPS runs only while you are recording — also with the screen locked, so the track stays whole — and stops the moment you finish. The track stays on your phone until the ride is saved to Apple Health. Nothing else in the app follows your location in the background.

Counts too (counting everyday rides)

Off until you switch it on. Your iPhone's motion data is used to count days on which you cycled. What reaches the club is only the date and the minutes, in rough steps. Never the time of day, never the place. A counted day is a riding day, not a ride: it appears in no feed, no map and no distance.

Club life

Bells, comments, thanks, badges, the weekly jersey, riding days you share with the club, group rides you post or join, the flocks you are in and their calls. All of it visible only to approved members you have not blocked. Leaderboards and city totals leave you out if you switch them off.

Familiar faces

Off until you switch it on, and it needs both sides. Once a night, the server looks at the shared weekday rides of the last 14 days of members who switched it on — without the first and last 500 m — and finds pairs who regularly ride the same 2 km at the same time. The pairs are deleted and recomputed every night; nothing accumulates. You learn that someone exists, and a place from a fixed list of landmarks. Never their route, never their exact time. Blocked members are never paired.

Trust

To join, you enter the codes of two members, and each of them is asked whether they know you. Their answer, and whether they have ridden with you, is stored with the application.

On a group ride, riders tap “I'm here” around the start. Only the tap is stored, never a location; whoever posted the ride can confirm or take people off the list for two days. Three hours after the start, everyone on that list can say about the others whether they liked riding with them, neutral or not, with a few fixed words to pick from, and about the poster whether the pace and the regrouping were as posted. The person it is about hears who gave a card, once per ride, never what it said; nobody else sees a single card. Cards count together two weeks after the ride, a negative answer only once a second person says the same, and they are deleted after two years.

From that, every member has a trust score. It starts at 80, moves with those cards, drops by 30 while someone you vouched for is banned and by 10 for 90 days when a report about you led to a step by the admin. It is yours alone: never shown to other members and in no list. You see it, the remarks that at least three people made, and every step the admin took with you. It opens doors — inviting, posting a group ride — and is a brake on brand-new accounts, not a judgement on anyone. Whether someone stays in the club is always decided by a person.

Notifications

If you allow them, the app stores a device token so Apple can deliver notifications. The message carries the name of the member who rang, commented or invited. Each kind of notification has its own switch.

Reports and feedback

If you report something, the report (what, which kind, your words if any, by whom) goes to the admin. The admin sees who sent it and how often you report; the person you report never learns it was you. If you block someone, you stop seeing each other at once. If you send feedback, it carries your text, the app and iOS version, your device model, language and the screen you were on — and a screenshot only if you attach one.

Who sees what

WhoWhat
Other approved membersYour profile with the fields you switched on. Your non-private rides, with the route only if you show routes. Your bells, comments, group rides and flocks.
Members you blockedNothing of yours, and you nothing of theirs.
The admin (one person, with two-factor sign-in)Applications, reports, feedback, all profiles, and the rides the club sees. Never your private rides, and never your privacy zones — those never leave your phone.
The public internetNothing.

Who processes data for us

ServiceWhat forWhere
SupabaseDatabase, sign-in, photo storage, server functionsFrankfurt, Germany (AWS eu-central-1). The company is in the USA; a data processing agreement with standard contractual clauses covers that.
Apple — Sign in with AppleSigning you inApple's own terms
Apple — Push NotificationsDelivering notifications to your iPhoneIn transit; Apple sees the message text
Apple — WeatherKit and MapsWeather at a rounded location, map tiles — requested by your iPhone, not by our serverApple's own terms
Simply.comHosting this page, on nordicappstudio.dk. Sees visitor IP addresses in its logs, no member data.Denmark
VercelHosting the admin's web app. Sees visitor IP addresses in its logs, no member data.USA, with a data processing agreement

Nobody else. No analytics, no advertising, no crash reporting, no email sending.

How long

Everything tied to you stays until you delete a ride or your account. Cards after group rides are deleted after two years. Familiar-faces pairs live for one night. Photo links expire after an hour. Backups at the hosting provider expire after their retention period, currently seven days.

Deleting your account

Profile → Delete account. The app first revokes the sign-in with Apple, then deletes your photos and every row tied to you: profile, rides, routes, comments, reports, everything — at once. If the revocation with Apple fails, nothing is deleted and the app tells you, so you are never left half-deleted.

What stays: comments by others that mentioned you lose the mention but remain theirs. Club totals keep your kilometres as a number without a name.

Your rights

You can see, change and delete everything the app holds about you inside the app. Anything beyond that — for instance reports others made about you — on request by email. You can withdraw the Apple Health permission in your privacy settings; the switches for familiar faces, counting and leaderboards do the same for those. You can export your rides from Apple Health at any time; an export from the app itself is planned.

If you think we handle your data wrongly, you can complain to the Danish Data Protection Agency: Datatilsynet, Carl Jacobsens Vej 35, 2500 Valby, datatilsynet.dk.

Legal bases, in plain words

Your account, rides and club life: the club you asked to join (Art. 6(1)(b) GDPR). Vouching, trust and moderation: our legitimate interest in a club without abuse (Art. 6(1)(f)). Apple Health, familiar faces and counting: your consent, which you can withdraw (Art. 6(1)(a)). A ride's distance and route is, in our assessment, a record of an activity rather than health data; the app nonetheless treats it with the explicit, stored, revocable consent that health data would require.

Changes

When this text changes, the version number at the top goes up and the app shows you the new one. Earlier versions are kept and can be requested by email.