Privacy policy
Written to be read, not survived. This describes what sunny.day collects, who else touches it, how long we keep it, and how to make us delete it.
1. Who is responsible
sunny.day is a trading name of The Digital Carpenter, operating the site at sunny.day. We are the controller of the personal data described here. Reach us at joshua@nichewaterproofing.com or 516-423-2002.
2. What we collect
When you simply browse and search
- Your origin city or airport — the metro or IATA code you select, so we can compute flight times to each destination.
- Approximate departure city inferred from IP address — when you first visit, we look up your IP address in a locally-hosted copy of the MaxMind GeoLite2 City database to estimate your nearest departure airport. We resolve your IP to a city and immediately discard the IP address — it is not logged, stored, or transmitted anywhere. You will see the inferred city displayed as “Flying from City — change” so you can correct it in one click. Once you choose a city yourself, your explicit choice is saved in your browser (localStorage) and we will never guess again on any subsequent visit.
- Your search parameters — arrival date, number of travellers, minimum star rating, hotel brand and designation filters, and your chosen sort order.
- Standard server logs — IP address, timestamp, requested URL, referrer and user agent, written by our web server for security and debugging.
When you make a booking
- Traveller details — the names, dates of birth and contact details required by the property.
- Booking details — property, room, dates, occupancy, rate and confirmation reference.
- Contact details — email address and phone number, used to send your confirmation and to reach you if the supplier changes something.
We do not store card numbers. Payment details are handled by the payment processor and never held on our systems.
We do not ask for, and have no use for, your race, health, religion, political views, sexuality or any other special-category data. Do not send it to us.
3. Watchlist
You can watch a destination or a specific property (hotel) and receive a notification when its weather window opens. Here is exactly what the watchlist stores and where.
- Server-side (our database, Hetzner, Germany): your email address, the destination or property you are watching, and the time you registered the watch. That is the minimum required to detect an opening and notify you. Nothing else is stored — no travel history, no profile, no tracking.
- Retention: a watch entry is kept until you unsubscribe (one-click link in every notification) or ask us to delete it. Unsubscribing is honoured immediately; we do not re-add you.
- localStorage — instant UI state. Your browser also stores which destinations you are watching locally, so the heart button reflects your state without a network round-trip. This local copy is subordinate to the server record — if they disagree, the server wins.
4. Cookies and local storage
We use no advertising cookies and no third-party tracking pixels. What we do use:
-
Google Analytics 4 (GA4) — anonymous measurement.
We use GA4 (tag
G-V0SC4MNJJ7) to understand aggregate site usage: which destinations people search, how many visitors reach us, and whether pages load successfully. GA4 is loaded viagtag.jsand operates under Consent Mode v2 with the following defaults:analytics_storage: granted— anonymous measurement is enabled.ad_storage: denied— no advertising cookies are written.ad_user_data: denied— no user data is shared for advertising.ad_personalization: denied— no ad personalisation.anonymize_ip: true— your IP address is truncated before it leaves your browser.allow_google_signals: false— Google's cross-device signals are disabled.
_ga,_ga_*) in your browser to distinguish sessions over time. These cookies contain a random identifier, not your name or email. Data is processed by Google LLC under Google's Analytics Data Processing Terms. We do not share watchlist emails, visitor identifiers, or any booking detail with GA4 — the tag is initialised before any user input is possible. We do not run GA4 on/api/*routes (machine-readable endpoints that serve answer engines, not browsers). -
sessionStorage — your watchlist email. If you register a watch,
your email is kept in sessionStorage for the duration of the browser tab so we do not
ask for it again on the same visit. It is not transmitted anywhere except to our
own
/api/watchendpoint when you register or add a watch. - localStorage — watch state. A list of destination identifiers you are currently watching, used for instant heart-button feedback. This mirrors the server record and is reconciled against it when your email is known.
-
localStorage — your preferences. Your last-used origin city and
filter settings, so the site does not forget them between visits. The origin city key
(
sd_origin_pref) is set the first time you explicitly choose a departure city; before that, your city is inferred from IP on each visit (see above) and not stored. Also local to your browser. - A session cookie during checkout, strictly to keep your booking in progress attached to your browser. It expires when the booking completes or the session ends.
5. Who else processes your data
- Google Analytics 4 / Google LLC — we send anonymous page-view data to GA4. No name, email, watchlist, or booking detail is sent. Google processes this data under its Analytics Data Processing Terms and may store it on servers in the United States. See Google's privacy policy.
- LiteAPI / Nuitée — our hotel inventory and booking supplier. When you book, the traveller and booking details necessary to create the reservation are passed to LiteAPI and on to the property. Without this the booking cannot exist.
- Open-Meteo — our weather forecast source. We query it for destination coordinates on a schedule, not per user. No personal data of yours is sent to Open-Meteo — it never learns that you exist, let alone what you searched for.
- Pexels — destination photography. Images are served from Pexels' CDN, which means your browser makes a request to them and they see your IP address as any image host would.
-
Sentry / Functional Software, Inc. — we use Sentry for
server-side error tracking. When the application encounters an unhandled exception,
Sentry captures the stack trace and error context so we can diagnose and fix the
problem. We do not send any personal data to Sentry. Specifically:
IP addresses are stripped before the event leaves our server; email addresses,
booking references, and watchlist entries are filtered by a
before_sendhook; POST request bodies are never transmitted; and Sentry's own PII auto-detection is disabled. Only anonymous technical detail (exception type, stack trace, app version) is sent. Sentry processes data under its Privacy Policy and may store events on servers in the United States. - Our hosting provider — Hetzner, in Germany, where the server and its logs physically live.
- Postmark / Wildbit LLC — our transactional email provider. When we send you a watchlist alert, a booking confirmation, or a sign-in link, your email address is transmitted to Postmark solely to deliver that message. Postmark does not use it for advertising or profiling. Postmark processes data under its Privacy Policy. If an email hard-bounces or generates a spam complaint, Postmark notifies us via a signed webhook and we add the address to our suppression list so no further mail is sent.
We do not sell your data. We do not share it with advertisers. We do not build profiles on you for resale, and there is no data-broker relationship of any kind.
6. How long we keep it
- Server logs — 30 days, then deleted.
- Booking records — 7 years, because tax and consumer-protection law requires records of completed transactions to be retained.
- Support correspondence — 2 years from the last message.
- Watchlist entries — until you unsubscribe (one-click link in every notification) or ask us to delete them. The server record is removed on unsubscription; any local browser copy is separate and is not ours to delete.
- Email send audit log — we keep a record of every attempted outbound email (template name, outcome, timestamp). The recipient address is stored only as a one-way hash (SHA-256); the raw address is never written to this log.
- Email suppression list — if an email you send us hard-bounces or generates a spam complaint, we add your address to a suppression list so we never contact you again. Your plaintext address is stored in this list so we can honour “remove me” requests precisely. We keep suppression entries indefinitely — removing them would risk re-contacting someone who asked us to stop, which is the failure we most want to avoid. If you want your address removed from the suppression list, email us and we will do it manually.
- User account — if you create an account, your email address is stored for as long as the account exists. Deleting your account removes it.
- localStorage preferences — until you clear your browser storage. We hold no copy on the server.
7. Your rights
You can ask us for a copy of the personal data we hold about you, ask us to correct it, or ask us to delete it. Where a booking record must be retained for the legal period above, we will tell you that plainly rather than silently keeping it. You may also object to processing or ask for it to be restricted.
Email joshua@nichewaterproofing.com with the subject line "Privacy request". We acknowledge within one business day and respond substantively within 30 days.
8. Security
The site is served over HTTPS only. Access to booking data is restricted to the operators who need it to run the service. If we ever suffer a breach affecting your personal data, we will tell affected users directly and promptly — not by quietly amending this page.
9. Children
This service is not intended for anyone under 18, and we do not knowingly collect data from children. Children can of course be named as travellers on a booking made by an adult.
10. Changes to this policy
If we change this policy materially, we will update the date at the top and note the change on this page. We will not make a material change retroactively without telling you.
11. Complaints
Complain to us first at joshua@nichewaterproofing.com. If you are not satisfied with our response, you may complain to your local data protection authority.