Your privacy is
our foundation
TMN is built around receiver control. You own your channel, your vault, and your data — always. Here's exactly how we handle it.
Privacy Policy
This Privacy Policy describes how TMN ("we", "us", "TMN") collects, uses, and protects your personal information when you use the TMN app (iOS, Android, Android TV) and related services.
By using TMN you agree to this policy. If you disagree, please do not use the service.
Who we are
Controller identity & contact
▾
TMN is operated by TMN. We are the data controller for all personal information collected through the TMN application and backend services.
For any privacy-related questions or requests, contact us at the address at the bottom of this page.
What information we collect
Account data, messages, usage, and device info
▾
Account information
- Full name, email address, phone number (optional)
- Username, profile photo (avatar), and bio
- Country, state/city (optional), gender, date of birth (optional)
- Your role on the platform: sender, receiver, or creator
- Firebase UID and authentication provider (email, Google, Apple)
Channel & content information
- Channel name, frequency number, description, avatar, and cover image
- Messages you send or receive (encrypted text, audio, video)
- Invite records (who invited whom, acceptance status)
- Watch progress, downloads, interactions (likes, comments)
Usage & technical data
- App version, platform (iOS, Android, Android TV)
- Content views and watch-seconds (for creators)
- Feedback ratings and optional text you submit
- Last login time, account status
TV device data
- Device token, name, and platform type (Android TV, Google TV, Fire TV)
- Playback lock and pause states
- Last-seen timestamp
What we do NOT collect
How we use your information
Purposes and legal bases
▾
| Purpose | Legal basis |
|---|---|
| Providing the app and services | Contract |
| Authenticating your identity | Contract / Legitimate interest |
| Delivering messages between senders and receivers | Contract |
| Processing subscription payments | Contract |
| Sending invite notifications | Legitimate interest |
| Content moderation and safety | Legal obligation / Legitimate interest |
| Improving the service (aggregate analytics) | Legitimate interest |
| Responding to your support requests | Contract / Legitimate interest |
Who we share data with
Third-party services and processors
▾
We share data only with processors that help us operate the service. We never sell your data.
| Service | Purpose | Data shared |
|---|---|---|
| Firebase (Google) | Authentication & push notifications | Firebase UID, device FCM token |
| Cloudflare Stream | Video hosting & signed playback | Video files, metadata |
| Stripe | Web subscription billing | Payment details (we never store raw card data) |
| Apple (App Store) | iOS in-app subscription billing | Transaction tokens verified server-side |
| Google (Play Billing) | Android in-app subscription billing | Purchase tokens verified server-side |
| Bird / Resend | Transactional emails (invitations) | Email address, invite link |
| Redis (self-hosted) | Session token denylist | Hashed token identifiers |
| PostgreSQL (self-hosted) | Primary database | All structured account data |
Our database and Redis servers are self-hosted. We do not use cloud database providers that have independent access to your data.
Data retention
How long we keep your information
▾
- Account data: Retained for the life of your account. Deleted upon successful account deletion request.
- Messages: Retained based on your plan's message history limit (30 messages on Free Trial, 180 on Basic, unlimited on Premium/Organization). Soft-deleted messages are purged over time.
- Invite links: Expire automatically after 7 days.
- Subscription records: Retained for 7 years for financial/legal compliance after cancellation.
- Feedback: Retained in aggregate for service improvement; can be deleted on request.
- Logs: Server access logs retained for up to 90 days.
Account deletion: When you request account deletion (in-app or via the delete-account page), your profile, messages, and channel data are removed within 30 days. Subscription billing records may be retained for legal compliance.
Children's privacy
Age requirements and protections
▾
TMN is not directed to children under 13 years of age. We do not knowingly collect personal information from children under 13.
If you are a parent or guardian and believe your child has provided us with personal information, please contact us immediately. We will delete such information promptly.
Users aged 13–17 may use TMN only with parental consent and supervision.
Your Data
Data we store about you
Profile & identity data
Name, email, authentication details
▾
| Field | Required | Purpose |
|---|---|---|
| Full name | Yes | Display in app and messages |
| Email address | Yes | Authentication, invitations, notifications |
| Phone number | Optional | Alternative login method |
| Profile photo | Optional | Shown to connected senders/receivers |
| Username | Yes | Unique handle for channels |
| Bio | Optional | Channel description |
| Country / location | Optional | Profile display only |
| Date of birth | Optional | Age verification |
| Gender | Optional | Profile display only |
| Firebase UID | Yes | Links your Firebase auth to our database |
| Authentication provider | Yes | Tracks whether you signed in via email, Google, or Apple |
| FCM push token | If enabled | Delivers push notifications to your device |
Messages & vault data
How your private messages are stored
▾
All text message content is encrypted using AES-256-GCM before being stored in our database. The encryption key never leaves our server and is never shared with third parties. Video and audio content is stored on Cloudflare Stream with signed, time-limited playback URLs.
| Data | Storage |
|---|---|
| Text content | AES-256-GCM encrypted in PostgreSQL |
| Audio messages & voice notes | Cloudflare Stream (signed URL access only) |
| Video messages | Cloudflare Stream (signed URL access only) |
| Sender/receiver identifiers | Stored as UUIDs in our database |
| Message status | pending → active → disabled/deleted |
| Approval timestamp | When receiver approved the message for TV playback |
| Replies (from receiver) | AES-256-GCM encrypted; auto-active |
TV device data
Android TV, Google TV, Fire TV devices
▾
When you connect a TV device to your TMN channel, we store:
- A unique device token generated on the TV device (no login required on TV)
- Device name you assign (e.g. "Living Room TV")
- Platform type: Android TV, Google TV, Fire TV, or other
- Connection status and last-seen timestamp
- Playback lock and pause state (set by the receiver from their phone)
TV devices never have access to your passwords, encryption keys, or Firebase credentials. They authenticate only via a device token tied to your channel.
Subscription & billing data
Plans, payments, and billing providers
▾
Receiver accounts use subscriptions to unlock features. We store:
- Your current plan (Free Trial / Basic / Premium / Organization)
- Subscription status, start date, renewal/expiry date
- Billing provider (Stripe, Apple IAP, or Google Play Billing)
- Payment event records for audit purposes
We never store raw credit card numbers. All payment processing is handled by Stripe, Apple, or Google. We only receive transaction tokens and confirmation signals.
| Plan | Price | Key features |
|---|---|---|
| Free Trial | Free · 30 days | 1 device, 3 invites, 30 messages, TV playback |
| Basic | $9.99/mo | 2 devices, 10 invites, 180 messages, TV playback |
| Premium | $15.99/mo | 5 devices, 50 invites, unlimited, archive, auto-play, downloads |
| Organization | $59/mo+ | Unlimited everything + analytics + sub-receivers |
Security
Security is not an afterthought at TMN — it is built into the architecture from day one. Here is how we protect your data at every layer.
Message encryption
AES-256-GCM with authenticated encryption
▾
Every text message is encrypted using AES-256-GCM (Advanced Encryption Standard, 256-bit key, Galois/Counter Mode) before it is written to our database:
- A unique 12-byte random IV (initialisation vector) is generated per message
- An authentication tag ensures the ciphertext has not been tampered with
- The ciphertext, IV, and auth tag are stored separately
- The encryption key lives only on our backend — it is never transmitted to clients
Even if someone gained read access to our raw database, message content would be unreadable without the server-side encryption key.
Authentication & sessions
Firebase, JWT, and token denylist
▾
- Firebase Authentication handles social login (Google, Apple) and phone OTP — identity tokens are verified server-side with the Firebase Admin SDK.
- Email/password accounts use PBKDF2-SHA512 password hashing stored exclusively server-side. We never store plaintext passwords.
- App sessions use short-lived JWTs (~30 days). Logout immediately invalidates your token via a Redis denylist — even if the token has not expired.
- Dashboard (admin) sessions use a separate JWT secret, isolating admin access from app sessions.
- All API communication uses HTTPS / TLS.
Video & media access control
Signed, time-limited Cloudflare URLs
▾
All video and audio content is hosted on Cloudflare Stream with signed playback URLs. This means:
- Every playback URL is unique, time-limited, and tied to the authenticated user
- Sharing a playback link does not grant access to others — it will expire and require re-authentication
- Raw video files are never publicly accessible via a plain URL
Infrastructure security
Self-hosted, isolated, rate-limited
▾
- Our backend runs in Docker containers on a private VPS with restricted network access
- Rate limiting is applied to all API endpoints to prevent brute force and abuse
- All sensitive environment variables (keys, secrets) are injected at runtime — never hardcoded
- Automated daily cron jobs maintain subscription and session health
- Server access logs are retained for 90 days for security monitoring
If you discover a security vulnerability, please report it responsibly to our contact email. We take all reports seriously and aim to respond within 72 hours.
Terms of Service
These Terms of Service govern your use of TMN. By creating an account, you agree to be bound by these terms. Please read them carefully.
We may update these terms from time to time. Continued use of TMN after changes means you accept the updated terms.
Eligibility & accounts
Who can use TMN and account rules
▾
- You must be at least 13 years old to use TMN. Users under 18 require parental consent.
- You must provide accurate information when creating your account.
- You are responsible for maintaining the confidentiality of your account credentials.
- You may not create accounts for others without their consent.
- One account per person. Multiple accounts used to evade restrictions are prohibited.
Account roles:
Acceptable use
What you can and cannot do on TMN
▾
You agree not to:
- Upload, send, or share content that is illegal, harmful, or violates others' rights
- Share content involving child sexual abuse material (CSAM) — zero tolerance, immediate permanent ban
- Engage in harassment, hate speech, or targeted abuse of other users
- Send spam, unsolicited commercial messages, or phishing content
- Impersonate others or misrepresent your identity
- Attempt to reverse-engineer, hack, or disrupt TMN services
- Circumvent subscription limits or access controls
- Use misleading poster images or content thumbnails
Zero-tolerance violations (child safety, CSAM, violence, self-harm) result in immediate permanent account termination and, where legally required, reporting to appropriate authorities.
Content ownership & licensing
Who owns what you upload
▾
You own your content. When you upload messages, videos, or audio to TMN, you retain all intellectual property rights to that content.
By uploading content, you grant TMN a limited, non-exclusive, royalty-free licence to store, transmit, and display that content solely for the purpose of providing the TMN service to you and the people you choose to share it with.
We do not use your content for advertising, training AI models, or any purpose beyond operating the service.
Content moderation
How we handle violations and reports
▾
TMN uses a user-report driven moderation system. Receivers can report senders or content directly from the app. All reports are reviewed by our admin team.
Report categories and priority:
| Category | Priority | Action |
|---|---|---|
| Child safety / CSAM | Critical | Immediate ban + legal reporting |
| Violence / self-harm | Critical | Immediate suspension |
| Hate speech / harassment | High | Warning → suspension → ban |
| Spam / misleading content | Medium | Content removal + warning |
| Other violations | Standard | Case-by-case review |
Misleading posters on uploaded content may trigger reports from other users, which can lead to account suspension or banning for platform abuse or violation of our content policies.
Subscriptions & billing
Payment, cancellation, and refunds
▾
- Free Trial: 30 days at no charge. No credit card required to start. One trial per account, ever.
- Paid plans are billed monthly or yearly via Stripe (web), Apple App Store (iOS), or Google Play (Android).
- Subscriptions auto-renew unless cancelled before the renewal date.
- A 7-day grace period applies after payment failure before access is restricted.
- Refunds are handled by the respective billing provider (Apple, Google, or Stripe). We follow each platform's refund policy.
- Cancelling a subscription does not delete your account or data. You retain access until the end of the paid period.
- We reserve the right to change pricing with 30 days' notice.
Termination & suspension
Account closure by us or by you
▾
By you: You may delete your account at any time from within the app (Settings → Delete Account) or via our delete-account web page. Your data is removed within 30 days.
By us: We may suspend or terminate accounts that violate these Terms, with or without prior notice depending on severity. We will notify you by email where possible.
Upon termination, your right to access TMN ceases immediately. Content you have shared with others (messages delivered to receivers) may remain in the recipient's vault according to their own retention settings.
Disclaimers & limitation of liability
Service "as is" and our liability limits
▾
TMN is provided "as is" without warranties of any kind. While we work hard to keep TMN reliable, we cannot guarantee uninterrupted or error-free service.
To the maximum extent permitted by law, TMN and TMN shall not be liable for indirect, incidental, special, or consequential damages arising from your use of the service, including loss of data, revenue, or goodwill.
Our total liability to you for any claim arising from your use of TMN shall not exceed the amount you paid us in the 12 months preceding the claim.
Cookies & Storage
The TMN mobile app does not use browser cookies. The TMN web dashboard (for admin and organization users) uses minimal, essential cookies only.
Mobile app local storage
What the TMN app stores on your device
▾
The TMN app uses local device storage (GetStorage) to persist the following — entirely on your device, not on our servers:
| Item | Purpose |
|---|---|
| Authentication token (JWT) | Keeps you logged in between sessions |
| Firebase UID & user role | Determines app features and navigation |
| TV device token | Links your TV to your channel without a separate login |
| App preferences & theme | Dark mode, language, notification settings |
| One-time dialog flags | Remembers if you've seen upload instructions (resets on reinstall) |
| Watch progress | Resume watching content where you left off |
Local storage is cleared when you uninstall the app or log out and clear app data. Your server-side data (messages, profile) is unaffected.
Web dashboard cookies
Admin and organization dashboard
▾
The TMN admin/organization web dashboard uses only essential cookies:
| Cookie | Purpose | Duration |
|---|---|---|
| auth_token | Dashboard session authentication (JWT) | Session / 7 days |
| theme_pref | UI theme preference | 1 year |
We use no advertising cookies, no analytics cookies, and no cross-site tracking cookies on any TMN web property.
Push notifications
Firebase Cloud Messaging (FCM)
▾
TMN uses Firebase Cloud Messaging (FCM) for push notifications (e.g. new message alerts, invitation accepted). To deliver notifications, we store your device's FCM token on our server and share it with Firebase.
- You can disable push notifications at any time via your device's notification settings
- Disabling notifications does not affect your account or message delivery
- FCM tokens are rotated automatically by Firebase when you reinstall the app
Your Rights
You have meaningful rights over your personal data. We make it straightforward to exercise them — most can be done directly from within the app without contacting us.
How to delete your account
Step-by-step process
▾
You can delete your account in two ways:
- In-app: Profile → Settings → Delete Account. Follow the confirmation steps.
- Web: Visit our Delete Account page and follow the instructions.
Upon deletion request:
- Your profile, messages, and channel data are scheduled for removal
- Data is permanently deleted within 30 days
- Subscription billing records may be retained for up to 7 years for legal compliance
- Content you sent to others (messages in a receiver's vault) may remain until that receiver deletes it
Account deletion is permanent and irreversible. Export any content you want to keep before requesting deletion.
Data portability & export
Get a copy of your data
▾
You have the right to receive a copy of your personal data in a structured, machine-readable format. To request a data export:
- Contact us at our privacy email (below)
- We will verify your identity and provide an export within 30 days
- The export will include your profile data, message metadata (not decrypted content of others), and subscription history
GDPR & international users
EEA, UK, California (CCPA) rights
▾
If you are located in the European Economic Area (EEA), United Kingdom, or Switzerland, you have additional rights under the GDPR and UK GDPR, including the right to lodge a complaint with your national supervisory authority.
California residents have rights under the CCPA/CPRA, including the right to know what personal information we collect and the right to opt out of the sale of personal information. We do not sell personal information.
Data transfers outside your jurisdiction are protected by appropriate safeguards, including standard contractual clauses where required.
Policy changes
How we notify you of updates
▾
We may update this Privacy Policy and Terms of Service from time to time to reflect changes in our practices or applicable law.
- Material changes will be communicated via in-app notification or email at least 14 days before taking effect
- The "Last updated" date at the top of this page will always reflect the current version
- Continued use of TMN after the effective date of changes constitutes your acceptance
Have a privacy question?
We take your privacy seriously. Contact our team for any data requests, questions, or to report a concern.
📧 Contact Privacy Team