Your information, thoughtfully handled.
This notice explains the Saywoven website, member services and separate demo. It is not a promise of absolute anonymity.
The demo stays on your device
Example conversations, profile edits, preferences, date plans and feedback in the demo are saved in your browser’s local storage. They do not involve real members. Use Reset demo from the You tab to remove this data. Anyone with access to your unlocked browser may be able to see it.
Joining the waitlist
When the waitlist is configured, we save your email address, city, adult and email consent, and signup time in Firestore. The form tells you if a signup cannot be saved. We use these details for Saywoven launch updates. Confirmation emails use Resend when configured.
To limit abuse, the server may store time-windowed request counts with keyed hashes of a request identifier and email. Depending on hosting configuration, the identifier may be a trusted proxy-provided IP address or a shared fallback. A rate-limit window expiring does not automatically delete its stored record. Application logs must not contain submitted email addresses or service credentials.
Accounts and profile information
When account access is configured, Firebase Authentication processes sign-in information. Your private profile can include your chosen name, city, interests, relationship intention and adult declaration. Declaring that you are 18 is not an identity or age verification service. In the member area, discoverability is an explicit opt-in. Introductions can show your alias, self-declared age, broad city, intention and interests to compatible members. Your email and phone number are not returned to matches.
Optional profile details and preferences
Education and religion are optional, self-reported profile details. If you choose to share them, they can appear with your discoverable profile and introductions. Choose “Prefer not to share” to leave either detail undisclosed. These choices are not verified by Saywoven.
Your preferred education and preferred religion are separate, private settings stored with your member profile in Firestore. They are not returned to other members. “No preference” is the default. These preferences help order eligible introductions; they do not exclude people whose education or religion differs or is undisclosed. Discovery still requires both people to opt in, share a city and meet each other’s age preferences.
Member conversations and photos
Member messages, consent decisions and date proposals are stored in Firestore. Profile photos are converted to JPEG with metadata removed, kept in a server-only collection and retrieved through an authenticated API. Another member can retrieve your profile photo only after both of you choose to continue and reveal.
You can also send pictures in an open conversation after both people choose to continue and reveal. Chat pictures are resized and converted to JPEG with metadata removed before storage; the original upload is not stored. Image bytes stay in a private collection and require an authenticated request from a participant. The app does not create a public image URL or include pictures in notification emails.
A recipient can keep a copy or take a screenshot. Blocking stops future image requests through the app, but it cannot recall pictures already loaded, saved or copied. Removing metadata does not hide identifying details visible in the picture itself.
Private feedback is not shared; the other person can see mutual interest only when both choose to meet again. Reports are stored for review, but a staffed response service is not yet established.
Message reminders
Private recent-activity timestamps and conversation acknowledgements help prevent unnecessary message emails. Acknowledgements identify the last message loaded in the conversation you have open. These markers are not shown to other members as online status, last-seen information or read receipts. Unread-message reminders are delayed and limited; opening a conversation or replying suppresses its earlier reminder.
Typing status
While you type in an open, mutually accepted conversation, your partner can see a typing indicator. This stores only temporary status timestamps, never your unsent text. The indicator expires after eight seconds. A stale timestamp can remain stored until the next update clears it; it is not shown as a lasting “last seen” status.
Audio calls
In the member area, both people must choose to continue before an audio call can be offered, and the invited person must accept. The browser asks for microphone access. Calls use encrypted WebRTC media through Cloudflare's TURN relay. Cloudflare processes network metadata such as IP addresses and traffic timing. Saywoven does not record or store call audio, and calls do not share phone numbers. Another participant may still make a recording outside the app.
Firebase stores call setup signaling, participant identifiers, call status and timestamps. Call expiry limits availability; it does not automatically delete stored metadata. Call setup descriptions are cleared when the server processes an ended or expired call. Both people should keep the app open. Background or locked-screen calling may fail or be interrupted, and a call is not an emergency service.
Calendar and directions
Adding an agreed date to Google Calendar or downloading a calendar file creates a one-off copy of its time and meeting details. You decide whether to save it. The app does not keep that copy in sync. If a plan changes, update or remove the calendar entry yourself. Opening calendar or directions links shares the included details with the selected provider under its own privacy practices.
Date check-ins and trusted contacts
If you enable a date check-in, we store your chosen check-in time, the agreed date plan, your trusted contact’s name and email, consent decisions, check-in status and delivery records in private Firestore collections. Your match cannot see your trusted contact information. The contact receives an invitation and must accept before the plan is shared and alerts are scheduled. They can decline or withdraw through their private link.
Upstash QStash schedules server callbacks using opaque job identifiers; those messages do not contain your name, email or meeting place. Resend processes the email addresses and content needed to deliver invitations, plans, reminders and missed-check-in notices. Checking in or canceling stops future unprocessed notices. A changed date requires new setup. An email already sent or being dispatched cannot be recalled.
Permissions and notifications
The app may request permission for notifications after you choose to enable them. Browser notification permission does not activate a push-notification delivery service. The app does not provide emergency monitoring or background location tracking. Microphone permission is used for calls you choose to start or accept.
Access, deletion and retention
You can clear demo data on this device. Waitlist confirmation emails include a signed unsubscribe link. You explicitly confirm the opt-out on that page. For support, privacy questions or deletion of account or waitlist data, email pesewabrands@gmail.com. The operator handles these requests manually. A deletion request is separate from clearing the demo or unsubscribing from launch emails. A fixed retention schedule and guaranteed response time have not been published.
For support or questions about your information, contact pesewabrands@gmail.com.