Privacy policy
Translation for convenience. The German version (Datenschutzerklärung) is legally binding.
1. Controller
Daniel Jacek Klein, Isaak-Kounen-Straße 10, 47906 Kempen, Germany · Email: danielklein@splitandfly.com
2. In short
- The site is delivered via Google Firebase Hosting.
- Without an account, your trips stay only in your browser. I cannot see them.
- With an account, trips are stored in Google Firebase so you can use them on several devices and share them with others.
- For flight and accommodation searches, only places, dates and the number of people are sent to the providers, no names and no email addresses.
- The app does not store ID card or passport numbers. Optional “Just for you” details (e.g. until when your passport is valid) are stored only in your account and go nowhere else.
- The AI planner (beta) is only available with an account; your travel request is sent to Anthropic (Claude) for it, or to Google Gemini as a fallback. The same applies to files, texts and links you drop in to import a trip; the files are not stored.
- The maps (accommodation search, “Trip map”) load map images from OpenFreeMap only when you open them; the small route images (start page, day plan) load a map section as soon as a trip has a route.
- Bug reports (beta) are stored in a non-public project on GitHub; images are deleted after 30 days.
- There are no advertising trackers and no cookies from me. I count visitors without cookies or profiles using Cloudflare Web Analytics. Fonts are served from this site.
3. Hosting (Google Firebase Hosting)
Split&Fly at www.splitandfly.com is provided via Firebase Hosting (Google Ireland Limited, Gordon House, Barrow Street, Dublin 4, Ireland; parent company Google LLC, USA). When you open the site, Google processes technically necessary data such as IP address, time, requested file and browser identifier in order to deliver the site through its worldwide server network and protect it against attacks. No analysis for statistical or advertising purposes takes place. Legal basis: Art. 6(1)(f) GDPR (legitimate interest in secure operation). Transfers to the USA are based on the EU-US Data Privacy Framework or standard contractual clauses. More: Firebase and privacy.
A test version, where I try out new features before publishing them, is hosted on GitHub Pages (elvau.github.io/startrek; GitHub Inc., 88 Colin P. Kelly Jr. Street, San Francisco, CA 94107, USA). GitHub processes the same technically necessary data there. This policy applies accordingly to the test version. More: GitHub privacy statement.
Visitor statistics (Cloudflare Web Analytics)
To see how many people use Split&Fly, I count page views with Cloudflare Web Analytics (Cloudflare Inc., 101 Townsend St., San Francisco, CA 94107, USA). For this, the site at www.splitandfly.com loads a small script from Cloudflare that reports the page visited, the referring page, country, browser, device type and load times. It sets no cookies, uses no browser storage, builds no profiles and does not recognise you across visits; Cloudflare does not store your IP address for this. I only see aggregated figures (e.g. visits per day). Nothing is counted on the test version. Legal basis: Art. 6(1)(f) GDPR (legitimate interest in improving the service and demonstrating reach to partners). Cloudflare is certified under the EU-US Data Privacy Framework. More: Cloudflare Web Analytics.
4. Storage in your browser
The app stores trips, saved people and groups, settings (e.g. language, currency, light or dark mode, sorting of the start page), the ECB daily exchange rates for conversion, when you last changed a trip (for “Last edited”) and recently used search options, and for polls which person you vote as and which “Count me out” you have already seen, in your browser’s storage (localStorage) so they are still there on your next visit. With an account, Firebase additionally stores your sign-in and a copy of your trips in the browser (IndexedDB) so the app also works offline; when signing in with an email link, the app remembers the email address until you open the link. So that the app starts without a connection and can be installed, a service worker stores the program files and general data (e.g. airports, countries) in the browser (Cache Storage); they contain no personal data. “Just for you” details are not stored in the browser (see section 5). All of this is strictly necessary for the function you request (§ 25(2) no. 2 TDDDG). You can delete this data at any time in your browser settings.
5. Account and sharing (Google Firebase)
If you create an account or share a trip, you use Firebase Authentication and Cloud Firestore by Google (Google Ireland Limited, Gordon House, Barrow Street, Dublin 4, Ireland; parent company Google LLC, USA). The following is processed:
- for signing in: email address or Google account (name, email, profile picture), time of sign-in, IP address; if you join a trip via an invite link as a guest without an account, Firebase gives you an anonymous ID and you only enter a first name; if you create an account later, the ID is kept;
- for shared trips under “Who are you?”: which member is which person of the trip, with the chosen first name (visible to all members of the trip; you can unlink at any time or leave the trip);
- for shared trips your votes in polls (including “Count me out”, with an optional reason and whether your family is included) per account, with time; visible with names to all members of the trip, deleted with the trip or your account and included in your data export;
- for shared trips what you enter yourself for the person you took over: days under “Find a date”, where your family lives (postcode, town, approximate location, holiday region) and, if you like, a suggestion for your family (first names and ages from your account), per account with time; visible to all members of the trip, planners take it over into the trip. Deleted with the trip and with your account; included in your data export;
- for shared trips your messages in the group chat: text, first name, account and time, attached pictures scaled down (scaling removes embedded details such as location and camera); visible to all members of the trip. You can delete your own messages at any time, also after leaving the trip; the trip owner can delete messages. Deleted with the trip or your account; texts are included in your data export. Until when you have read the chat is only remembered by your browser (localStorage);
- for saved trips: the trip data you enter (e.g. names and ages of fellow travellers, on request their nationality for entry information, postcode and town of residence with holiday region (estimated from the postcode or chosen), amounts, in the kitty expenses during the trip and which family paid what, for shared trips also who submitted, confirmed or disputed an expense, with account name and reason; under “Find a date” the days each person can, maybe can or cannot travel, and votes in polls), as well as who may view or edit a trip;
- for saved people and groups: the details below (readable only by you);
- your agreement to the terms of use: version and date of agreement (in your account, readable only by you).
Legal basis: Art. 6(1)(b) GDPR (providing the function you request). If you enter fellow travellers, you should let them know. The data is kept until you delete the trip or your account; write to me if you would like help with this. Google is certified under the EU-US Data Privacy Framework. More: Firebase and privacy.
Saved people and “Just for you” details
Under “Groups and people” you can enter a name, date of birth or age and an approximate place of residence (postcode) for each saved person. The app uses this to calculate the age at the start of the trip and the journey to the airport. Trips only receive the age and the family’s place of residence, not the date of birth. Without an account this stays in your browser; with an account it is also stored in Firestore, readable only by you.
When setting up your account (assistant on first start or in the account menu) you can optionally add for yourself: roughly since when you have held a driving licence (stored as an approximate year), whether you have a credit card and your rail discounts. Like the people, they are stored in the browser or in your account and are used for hints on rental cars (e.g. “licence held for under 1 year”) and later for rail travel; they are not sent to the search service or the AI planner. Fellow travellers are created there as people and a group (as above).
You can also save preferences, for yourself and per group: preferred airports, the postcode of your home (only in your own preferences and only with an account, never stored in the browser as part of the preferences; if you apply it in the flight search at the push of a button, it becomes part of the trip as place of residence, is stored like the trip and is visible to fellow travellers; it is not sent to the AI planner), stops, luggage, accommodation type, travel style, budget, travel periods, your own car (seats, fuel type), whether a pet travels with you, whether you need step-free accommodation (pushchair, wheelchair; without stating the reason), vegetarian or vegan, an amount for souvenirs per person, a short note and countries you do not want to travel to or fly over. Like the people, they are stored in the browser or in your account and pre-fill searches and the AI planner. Blocked countries say nothing about the reason; please do not put personal or sensitive information in the note.
Optionally you can save “Just for you” details per person: gender, nationality or nationalities and until when ID card and passport are valid. The app does not ask for or store ID card or passport numbers, names as on the ID or the issuing country; any entered earlier are deleted from the account the next time they are opened. This also includes whether you want to see information on LGBTQ+ rights at the destination (when setting up your account); we do not ask about sexual orientation. Gender and nationality are used only in your browser for matching entry and travel information. These details:
- are only available with an account; they are stored separately from everything else in Firestore and only you can read them, not even fellow travellers or invited people;
- are not stored in the browser (neither in localStorage nor in the cache) but only loaded when you open them or, while signed in, open “Important” for a trip you are travelling on yourself;
- are used under “Important” to check whether a passport is valid long enough for the trip; this check runs only in your browser, the expiry date does not end up in the trip and is not visible to fellow travellers;
- produce, under “Important” in the “Just for you” area, notes on the destination countries for women, on the sex
marker “X” and (only with the switch turned on) on LGBTQ+, only for yourself (“I am”). The country data for this
(
hinweise.json, from the UK travel advice and Our World in Data) is loaded from our site without sending any details about you; the matching runs only in your browser. These notes are not saved in the trip (not even as “read”) and are not visible to fellow travellers; - are not sent into trips, to the search service, to the providers, to the AI planner or into bug reports;
- can be deleted at any time per person or completely (“Delete all “Just for you” details”); deleting a person deletes them too.
Technically the data is stored at Google (see above) and is in principle accessible to me as the operator of the Firebase project. I do not look at it and use it only to show it to you. Legal basis: Art. 6(1)(a) and (b) GDPR (voluntary information for the function you request). Only enter other people’s data with their consent.
6. Search service for flights and accommodation (Cloudflare)
When you search for flights or accommodation, the app sends the request to my search service at Cloudflare (Cloudflare Inc., 101 Townsend St., San Francisco, CA 94107, USA). Cloudflare technically sees your IP address. The search service does not store requests and then queries the providers. It only counts anonymously how often which function and which provider is used (without account, IP address or search content) so I can keep an eye on the free quotas. To prevent abuse it also counts how many requests (searches, AI planner, bug reports, clicks) come from one IP address; this counter is kept only in Cloudflare’s cache and expires after one day at the latest (Art. 6(1)(f) GDPR, legitimate interest in protecting the service). Only the following is sent to the providers: departure and destination places, travel dates, number of adults/children/infants (for accommodation the children’s ages) and search options (e.g. stops, luggage); for accommodation also your home country as a country code (e.g. “PL”, without your place of residence) and the app language, so providers show prices for your market. Providers do not receive names, email addresses or your IP address.
If you have not yet entered a place of residence (postcode), the flight search asks the search service for your approximate location in order to suggest nearby departure airports. Cloudflare estimates it from your IP address (country, town, coordinates rounded to about 10 km). The search service only returns it to your app and stores nothing; the app keeps it in memory only until the page is closed (Art. 6(1)(f) GDPR, legitimate interest in suitable suggestions). For the journey to the airport the app still uses only the home (postcode or town) you enter yourself.
For school and public holidays the app asks the search service per country (country code such as “AT”, for home and destination country), without any further details about you. The search service fetches the dates from the OpenHolidays API (openholidaysapi.org) and caches them for a few days. Only your app evaluates the region you chose (e.g. federal state).
- Kiwi.com s.r.o., Palachovo náměstí 797/4, 625 00 Brno, Czech Republic (flights)
- Travelpayouts / Aviasales (flight prices from the Aviasales cache)
- Duffel Technology Ltd., London, United Kingdom (flights, once connected; for children an age set by the app, not the real one)
- trivago N.V., Kesselstraße 5–7, 40221 Düsseldorf, Germany (accommodation)
- liteAPI (Nuitée, accommodation, once connected)
- Ticketmaster (Live Nation Entertainment) and football-data.org (event search: only search term, destination and period)
- Viator (Tripadvisor LLC, USA; tours and tickets: only destination, period and language)
- OpenRouteService (HeiGIT gGmbH, Schloss-Wolfsbrunnenweg 33, 69118 Heidelberg, Germany; routes for road trips: only the coordinates of home and stops, rounded to about 100 m, without names; the search service keeps a route for at most 30 days so the same route is not requested again)
Legal basis: Art. 6(1)(b) GDPR (you trigger the search). Cloudflare is certified under the EU-US Data Privacy Framework.
Images of accommodation (in search results and on accommodation you have added) are loaded by your browser directly from the provider’s image server (e.g. trivago, imgcy.trivago.com, or liteAPI). The provider technically sees your IP address and the address of the image, but not which page the request comes from (the app sends no referrer). Photos of tours (in search results and on activities you have added) likewise come directly from the Tripadvisor/Viator image server (media-cdn.tripadvisor.com).
7. AI planner (Anthropic Claude and Google Gemini, beta)
If you use the AI planner, the app sends your travel request (the text you enter), the number and ages of the travellers, the airports near your home, your preferences (without names, see section 5; for school holidays the dates of the next twelve months) and – if already entered – destination, travel dates and the days on which someone cannot travel (dates only, no names) to my search service. It checks your sign-in, counts requests per day (user ID and date, deleted after two days) and passes the request and search results on to the AI Claude by Anthropic (Anthropic PBC, 548 Market Street, San Francisco, CA 94104, USA). If Claude does not respond (e.g. because the service is overloaded), Google Gemini steps in for that request (Google Ireland Limited, Gordon House, Barrow Street, Dublin 4, Ireland). Anthropic and Google do not receive names, email addresses or your IP address. Please do not write personal data into the travel request.
If you ask the AI assistant within an open trip, a summary of that trip is also sent: destination, travel dates and the items (area, name, status, amount, for flights route and times). Names of travellers (also in names such as “Flight family …”), notes, booking numbers, payments, kitty expenses and “Just for you” details are not sent. The app only applies changes made by the AI once you confirm them.
For trips to an event the AI may use the event search; as there, only the search term, place and period are sent to the providers (section 6). If the AI recognises lasting preferences in your request (e.g. “we travel with a dog”, “hand luggage only”), it suggests them; they are only saved in your preferences once you tap “Apply”.
Under its commercial terms, Anthropic does not use input sent via its interface (API) to train its models and keeps it only for a limited time (usually up to 30 days, e.g. to detect misuse). The transfer to the USA is based on Anthropic's data processing agreement with standard contractual clauses.
Important about Gemini: For the fallback I use the free tier of the Gemini API during the beta. Under the Gemini API terms of service, Google may use the transmitted content (travel request and search results) to provide and improve its services; people at Google may also read it. Therefore do not enter names, contact details or other personal or confidential information in the travel request. If I switch to a paid tier, this use no longer applies and I will update this section.
Setting up your account with AI: When setting up your account you can describe in a short text how you travel. Only this text is sent via my search service to the AI (Anthropic Claude, or Google Gemini as a fallback; counts as one request in the daily quota); only fixed fields come back (e.g. travel style, airports, number and ages of fellow travellers), which you check page by page before anything is saved. Names, gender, nationality and date of birth are asked for directly in the app, never via the AI; please do not write them into the text either.
Importing a trip with AI and reality check: Under “New trip → Import” or with the “Reality check” on the start page (no trip is created until you take it over) you can drop in an offer, a booking or a participant list (screenshot, photo, PDF, Word, Excel, CSV, text or link; on phones also via the share menu). Images and PDFs are sent by the app via my search service to the AI (Anthropic Claude, Google Gemini as a fallback); Word, Excel and CSV files are read by the app itself and only their text is sent. For a link, the search service fetches the page and passes on its text. Files and texts are stored neither in the search service nor in the trip; only fixed fields come back (destination, dates, number and ages of travellers, flights, accommodation, board, prices, fees, provider, link), which are then kept in the trip. From participant lists the app takes first names, family names and ages as travellers of the new trip, which is stored like any trip. The AI does not take ID card or passport details, dates of birth, addresses, phone numbers, email addresses or booking numbers; still, please do not upload such documents or black them out first. An import counts towards its own daily quota (10 per account and day by default). So that the same offer does not have to be read again, my search service stores the extracted offer data (no files, no names, not linked to your account) together with a hash of the input (from which link, file or text cannot be recovered) in Google Firebase, at most until the offer expires or for 14 days; it is deleted afterwards. Participant lists are never stored there.
Legal basis: Art. 6(1)(b) GDPR (you trigger the request). Use is voluntary.
8. Connecting AI assistants (MCP, beta)
In the account menu you can create a personal key with which your own AI assistant (e.g. Claude, ChatGPT or a program like Cursor) can search via Split&Fly and create and extend trips in your account. The key contains your account ID, a key ID, your display name and the date of issue and is signed with a secret key of the search service; it is not stored anywhere. Blocked key IDs are listed in the search service’s settings.
When you use the key, your AI assistant sends requests to my search service. It searches as described in section 6, keeps offers found for a few hours in Cloudflare’s cache (so the assistant can add them to a trip) and counts the searches per key and day (key ID and date, deleted after two days). For trips in your account the search service reads and writes your trips in Firebase (section 5), only those you are a member of, and changes them only with edit rights. The assistant receives destination, travel dates, number of travellers by age group and the items with prices, no names of travellers and no “Just for you” details.
What you enter into your assistant and what it retrieves from here is processed by its provider (e.g. Anthropic, OpenAI) as your own provider under its terms; I have no influence on this. Legal basis: Art. 6(1)(b) GDPR (you create the key and trigger the requests). Use is voluntary.
9. Reporting bugs (beta)
With the red “🐞 Report a bug” button you can report bugs when signed in. The following is sent to my search service at Cloudflare: your description, an image if you attach one, as well as the page opened (without invitation code), language, browser and device, screen size, app version, the latest error messages in the browser, the kind of view (e.g. “trip, 3 people”, without names or trip data) and the latest trip switches in the app (time, reason such as “newly created” or “start page” and the random ID of the trip, without names or contents). The search service checks your sign-in and counts reports per day (user ID and date, deleted after two days).
The report is stored as an entry in a non-public project on GitHub, together with a shortened user ID so I can match the account if I have questions (GitHub Inc., 88 Colin P. Kelly Jr. Street, San Francisco, CA 94107, USA; transfer under the EU-US Data Privacy Framework). Images are stored in Cloudflare’s storage (R2) and deleted automatically after 30 days; I delete reports once the bug is fixed. Please make sure screenshots do not show other people’s data you do not want to share. Legal basis: Art. 6(1)(a) and (f) GDPR (you send the report voluntarily; my legitimate interest is a bug-free app).
10. Links to providers and partner links
Links such as “At the provider ↗”, Booking.com, Airbnb, Google Flights, Skyscanner, GetYourGuide, Viator, Tiqets, Klook, Google Maps or Tripadvisor open the provider’s page. Only then does that provider receive data from you (e.g. IP address), and its privacy policy applies. Links marked “Partner*” in the app contain my partner ID so the provider can attribute a booking to me; for this the provider or the partner network (Travelpayouts, Awin, Viator) may set cookies on its own site; partner links via Travelpayouts or Awin briefly pass through their redirect (tp.media or awin1.com). I do not learn who booked, only that and for what a commission is due.
When you tap a link to a provider, the app only tells my search service which provider and which kind of link it was (e.g. “Viator, activities”). The search service counts this per day to see which providers are used. Neither IP address nor account, trip or search details are stored.
11. Map (OpenFreeMap)
When you tap “Map” in the accommodation search, “Trip map” or “Map, image & animation” in the day plan, your browser loads map images and fonts for the map from OpenFreeMap (openfreemap.org), a free map service with data from OpenStreetMap. OpenFreeMap receives technically necessary data such as your IP address, the time and the map section shown (i.e. roughly the place you are looking at). Names, trips or prices are not sent there; the app places accommodation, events and airports on the map itself. OpenFreeMap sets no cookies. In addition, the small route images on the start page and in the day plan show a map section: for this the browser loads the map images of that section once from OpenFreeMap and keeps the finished image locally. Otherwise nothing is loaded without opening a map. Image and video of the trip route are created only in your browser; they are not uploaded anywhere, you share or save them yourself. Legal basis: Art. 6(1)(f) GDPR (legitimate interest in showing you where accommodation is located). The “Google Maps ↗” link only opens Google Maps when tapped (see section 10).
12. Campaign page for contributions
Signed-in users can publish a campaign page for a trip through which e.g. family, sponsors or a club fund can chip in. The page can be read by anyone who knows the link, even without an account. Only the following is public there: title and text of the campaign, place and dates of the trip, goal and progress (totals of the contributions entered) as well as a PayPal.me name and/or the link to a fundraiser at a well-known provider (GoFundMe, Leetchi, betterplace.me, Ko-fi, Revolut). Account holder and IBAN are not collected. Names of fellow travellers and individual contributions do not appear. It is only published with the explicit consent of the person creating the page (Art. 6(1)(a) GDPR); it is stored in Cloud Firestore (see section 5) and can be deleted at any time via “Withdraw”, after which the link no longer works. Please only enter your own PayPal name or fundraiser, or one with the owner’s consent.
Money never flows through Split&Fly: payments via PayPal or the fundraiser go directly to whoever set them up. Visitors of the page are not tracked; the page loads its content without an account and without cookies. Tapping the PayPal.me link or the fundraiser link takes you to that provider, whose privacy notices apply.
13. Your rights
You have the right of access (Art. 15 GDPR), rectification (Art. 16), erasure (Art. 17), restriction of processing (Art. 18), data portability (Art. 20) and to object to processing based on legitimate interests (Art. 21). Simply write to the email address above. With an account you can also get access and a copy of your data yourself: account menu → “My data (access request)”, to print or save as PDF and as a file (JSON); it is created only in your browser. You can also lodge a complaint with a data protection supervisory authority, for example the one responsible for my place of residence: Landesbeauftragte für Datenschutz und Informationsfreiheit Nordrhein-Westfalen, Kavalleriestraße 2–4, 40213 Düsseldorf, Germany (www.ldi.nrw.de).
As of: October 2026