Privacy Policy
Last updated: August 28, 2026
This notice explains, activity by activity, what personal data we use, why, who receives it and how long we keep it. Optional analytics stays off until you consent.
1. Controller and contact
Hexer - Maksymilian Skórnóg, Kobyle 322, 32-720 Kobyle, Poland, NIP 8681999628, REGON 541556879 is the controller for platform accounts and operation of the Service. Contact: marketing.hexer@gmail.com.
2. Processing activities
Each row states the data, purpose and legal basis, recipients and retention period.
| Activity | Data | Purpose and legal basis | Recipients | Retention | International transfers and safeguards |
|---|---|---|---|---|---|
| Account and Service | Name, email, authentication and account settings | provide your account and the Service (contract); support and improve reliability (legitimate interest) | Convex and Vercel | while the account exists, then a 30-day recovery period. | Convex and Vercel may use non-EEA subprocessors. Transfers rely, as applicable, on an adequacy decision, EU-US DPF participation or European Commission SCCs. |
| Public wedding pages | Names, dates, venues, text, photos and page settings | create and publish the page you request (contract) | Convex, Vercel and people who open the published URL | until you delete the wedding; deletion is immediate. | Convex and Vercel may use non-EEA subprocessors. Transfers rely, as applicable, on an adequacy decision, EU-US DPF participation or European Commission SCCs. |
| RSVP and guest features | Guest identity, attendance, messages and optional dietary/allergy details | deliver RSVP and guest tools for the couple; health details only with the guest's explicit consent | the couple, Convex and catering exports chosen by the couple | until the wedding is deleted or the guest withdraws health-data consent. | Convex may use non-EEA subprocessors. Transfers rely, as applicable, on an adequacy decision or European Commission SCCs. |
| Contact and support | Name, email, subject, message and technical context | answer requests and defend claims (steps requested by you; legitimate interest) | Convex, Vercel and Resend when we reply | message retention is limited to six months unless needed for an active claim. | Convex, Vercel and Resend may process data outside the EEA. Transfers rely, as applicable, on an adequacy decision, EU-US DPF participation or European Commission SCCs. |
| Payments | Account, order, billing and payment-status data; Stripe receives payment details | take payment and keep tax records (contract and legal obligation) | Stripe, Convex and authorised accounting/tax recipients | invoices and payment records for five full tax years. | Convex and Stripe may process data outside the EEA. Transfers rely, as applicable, on an adequacy decision, EU-US DPF participation or European Commission SCCs. |
| Service email | Email address, delivery metadata and message content | send sign-in, invitation, invoice and service notices (contract and legitimate interest) | Resend and Convex | delivery records for up to five years; message-specific data follows the related service record. | Convex and Resend may process data outside the EEA. Transfers rely, as applicable, on an adequacy decision, EU-US DPF participation or European Commission SCCs. |
| Marketing email | Email, consent record and campaign interaction data if enabled | send product news (consent) | Resend and Convex | until consent is withdrawn, then retain minimum suppression evidence where needed. | Convex and Resend may process data outside the EEA. Transfers rely, as applicable, on an adequacy decision, EU-US DPF participation or European Commission SCCs. |
| Security and abuse prevention | IP address, device/browser data, session identifiers and security events | prevent fraud, spam and unauthorised access (legitimate interest in protecting users and the Service) | Convex, Vercel and competent authorities where legally required | temporary controls from two hours to six months; ownership/security records up to five years. | Convex and Vercel may use non-EEA subprocessors. Transfers rely, as applicable, on an adequacy decision, EU-US DPF participation or European Commission SCCs. |
| Optional analytics | Page path, referrer, device/browser and request data; never invitation, claim, reset or payment tokens | understand aggregate use and improve the Service (consent) | Vercel | only after opt-in and according to Vercel's analytics retention; no persistent analytics identifier is stored on your device. | Vercel may process request data outside the EEA. Transfers rely, as applicable, on EU-US DPF participation or European Commission SCCs. |
3. Storage on your device
This live table is generated from the same registry used by the product. Necessary entries support a feature you request; analytics is optional.
| Key or pattern | Type | Category | Purpose | Created when | Lifetime |
|---|---|---|---|---|---|
| sw-consent | Local browser storage | Necessary | Remember your privacy choice | You choose privacy settings | 12 months |
| __convexAuth* | Cookie | Necessary | Keep you signed in | You sign in | Until the browser/tab session ends |
| wedding-access-* | Cookie | Necessary | Open a locked wedding page | You enter the correct page password | 30 days |
| wedding-access-token-* | Tab storage | Necessary | Open a locked wedding page | You enter the correct page password | Until the browser/tab session ends |
| ownership-claim:* | Tab storage | Necessary | Complete an ownership claim | You open a claim link | Until the browser/tab session ends |
| sw-live-host-* | Tab storage | Necessary | Open the host controls | You open a host link | Until the browser/tab session ends |
| sw-readable-* | Local browser storage | Necessary | Remember the wedding page easy-read mode | You toggle easy-read mode or open a link with it on | Until you clear it in the feature or browser |
| sw-budget-calculator | Local browser storage | Necessary | Save data entered in a local tool | You edit the tool | Until you clear it in the feature or browser |
| wedding-checklist-data | Local browser storage | Necessary | Save data entered in a local tool | You edit the tool | Until you clear it in the feature or browser |
| seating-planner-data | Local browser storage | Necessary | Save data entered in a local tool | You edit the tool | Until you clear it in the feature or browser |
| invitation-generator-data | Local browser storage | Necessary | Save data entered in a local tool | You edit the tool | Until you clear it in the feature or browser |
| invitation-generator-data:* | Local browser storage | Necessary | Save data entered in a local tool | You edit the tool | Until you clear it in the feature or browser |
| place-card-generator-data | Local browser storage | Necessary | Save data entered in a local tool | You edit the tool | Until you clear it in the feature or browser |
| blog-checklist:* | Local browser storage | Necessary | Remember local tool progress | You edit the tool | Until you clear it in the feature or browser |
| place-cards-guest-list-shown | Tab storage | Necessary | Remember local tool progress | You reveal a guest list | Until the browser/tab session ends |
| pending-seating-import | Tab storage | Necessary | Carry an import through sign-up | You choose to import | Until the browser/tab session ends |
| sw-template-couple-names | Tab storage | Necessary | Personalise a template preview | You enter names | Until the browser/tab session ends |
| gift-registry-name | Local browser storage | Necessary | Pre-fill a guest name | You submit a guest feature | Until you clear it in the feature or browser |
| guestbook_name_* | Local browser storage | Necessary | Pre-fill a guest name | You submit a guest feature | Until you clear it in the feature or browser |
| playlist_name_* | Local browser storage | Necessary | Pre-fill a guest name | You submit a guest feature | Until you clear it in the feature or browser |
| wedding-admin-selected-wedding | Local browser storage | Necessary | Remember an admin preference | You select a wedding | Until you clear it in the feature or browser |
| wedding-admin-recent-routes-v1 | Local browser storage | Necessary | Remember an admin preference | You navigate in admin | Until you clear it in the feature or browser |
| admin-invitations-columns | Local browser storage | Necessary | Remember an admin preference | You change table columns | Until you clear it in the feature or browser |
| sw-setup-help | Local browser storage | Necessary | Remember an admin preference | You change help hints | Until you clear it in the feature or browser |
| tours:v1 | Local browser storage | Necessary | Remember tour progress | You start or finish a tour | Until you clear it in the feature or browser |
| tours:auto-started | Tab storage | Necessary | Remember tour progress | You start or finish a tour | Until the browser/tab session ends |
| tours:feature-started | Tab storage | Necessary | Remember tour progress | You start or finish a tour | Until the browser/tab session ends |
| wedding-editor-draft:v*:*:* | Local browser storage | Necessary | Recover unsaved edits | You edit the page | 7 days |
| blog-draft:* | Local browser storage | Necessary | Recover unsaved edits | You edit the page | 7 days |
| *-dismissed* | Local browser storage | Necessary | Remember a dismissed prompt | You dismiss the prompt | Until you clear it in the feature or browser |
| place-cards-upsell-dismissed-at | Local browser storage | Necessary | Remember a dismissed prompt | You dismiss the prompt | 24 hours |
| sw-feature-catalog-collapsed:* | Local browser storage | Necessary | Remember an admin preference | You change a panel | Until you clear it in the feature or browser |
| sw-issue-snoozed:* | Local browser storage | Necessary | Remember a dismissed prompt | You dismiss the prompt | Until you clear it in the feature or browser |
| sw-chunk-reload | Tab storage | Necessary | Remember an admin preference | You navigate in admin | Until the browser/tab session ends |
| sw-nba-dismissed:* | Local browser storage | Necessary | Remember an admin preference | You dismiss the prompt | Until you clear it in the feature or browser |
| sw-rsvp-client | Tab storage | Necessary | Limit abuse or duplicate actions | You open RSVP | Until the browser/tab session ends |
| sw-live-client | Tab storage | Necessary | Limit abuse or duplicate actions | You join a live game | Until the browser/tab session ends |
| challenge-session-* | Local browser storage | Necessary | Save game progress | You start a challenge | Until you clear it in the feature or browser |
| sw-live-joined-* | Local browser storage | Necessary | Remember live-game progress | You join a live game | Until you clear it in the feature or browser |
| sw-live-vote-* | Local browser storage | Necessary | Remember live-game progress | You vote in a live game | Until you clear it in the feature or browser |
| sw-live-team-* | Local browser storage | Necessary | Remember live-game progress | You join a live game | Until you clear it in the feature or browser |
| vercel-analytics (no stored identifier) | Local browser storage | Optional analytics | Measure optional aggregate usage | You accept analytics | No identifier stored |
Use Privacy settings to accept, reject or withdraw optional analytics at any time. You can remove local tool data in the relevant tool or through your browser settings.
4. Retention and your rights
You may request access, correction, erasure, restriction and portability, and object to processing based on legitimate interests. You may withdraw consent at any time without affecting earlier lawful processing. Account settings let you export your data and start account deletion. Email marketing.hexer@gmail.com for any other request.
5. Guest data
For guest data collected by a couple, including RSVP information, the couple decides why and how it is used and is normally the controller; Hexer processes it to provide the Service. The couple should give guests its own contact information and notice. Optional dietary/allergy details are not required to RSVP and can be removed through the invitation edit link.
6. Recipients and international transfers
We do not sell personal data or share it for advertising. Convex provides the database/backend, Vercel hosting and optional analytics, Stripe payments, and Resend email delivery. Some providers or subprocessors may process data outside the EEA. Where required, transfers use an adequacy decision, including applicable EU-US Data Privacy Framework participation, or European Commission Standard Contractual Clauses. Ask us for current provider information.
7. Automated decisions and profiling
We do not make decisions producing legal or similarly significant effects about you solely by automated means, and we do not use your data for profiling or targeted advertising.
8. Complaints
You may complain to the President of the Personal Data Protection Office (UODO), ul. Stanisława Moniuszki 1A, 00-014 Warsaw, or another competent supervisory authority. We invite you to contact us first so we can try to resolve the issue.
9. Changes to this notice
We may update this notice when the Service or law changes. We will identify the current date here and notify registered users of significant changes by email or through the Service.
If you have any questions about this Privacy Policy or wish to exercise your data protection rights, please contact us at marketing.hexer@gmail.com.
Contact us