PhotoTrail
How it works Occasions For photographers Pricing Trust & security Blog
Get PhotoTrail
How it works Occasions For photographers Pricing Trust & security Blog
Trust and security

Trust & Security

Your memories deserve more than storage. They deserve protection.

PhotoTrail is built to help people privately collect and share photos and videos from the moments that matter — weddings, birthdays, trips, concerts, family gatherings, and other events.

Last Updated: October 1, 2026

On this page

Private by design Secure photo & video storage Access control Secure media delivery Our security principles Security reporting Contact us
Security and privacy are considered throughout the way PhotoTrail stores media, manages access, authenticates users, and delivers private content. This page explains the safeguards built into PhotoTrail and how we approach protecting your data.

Private by design

PhotoTrail gives event owners control over whether an event is public or private.

Private events are designed so that event content is available only to users who are authorized to participate in that event.

Access to event data is controlled using authentication, event membership rules, database-level access policies, and server-side authorization checks.

Public events can be made discoverable according to the visibility options selected by the event owner.

Users should remember that anyone who is legitimately allowed to view content may still be able to save, download, screenshot, or otherwise reproduce that content.

Secure photo & video storage

Photos and videos uploaded to PhotoTrail are stored using Amazon Web Services (AWS) S3.

Our production media bucket is configured as private rather than being openly accessible from the internet.

PhotoTrail does not rely on permanent public S3 links for private media. Instead, private media is delivered through controlled access mechanisms using Amazon CloudFront signed URLs.

This allows PhotoTrail to provide temporary access to media after the user and their permissions have been checked.

Temporary access to private media

When an authorized user requests private media, PhotoTrail can generate a temporary signed CloudFront URL.

These signed URLs expire automatically. This means possession of the underlying media path alone is not intended to provide permanent access to a private photo or video.

PhotoTrail also caches signed URLs on the user's device for performance, while maintaining expiration periods for private content.

Public events may use publicly accessible delivery URLs because the event owner has intentionally made that event public.

Multiple layers of access control

PhotoTrail does not rely on a single privacy check. Access is protected across multiple layers.

Authentication

Users authenticate through PhotoTrail's authentication system before accessing protected account functionality. PhotoTrail currently supports Supabase authentication, including email/password and Google sign-in. Authenticated sessions use access tokens to identify the current user.

Backend authentication

Requests made from the PhotoTrail app to protected backend services include the user's authentication token. The PhotoTrail backend verifies that token with Supabase before treating the request as authenticated.

The backend derives the authenticated user's identity from the verified session rather than trusting a user ID supplied by the mobile application.

Database-level authorization

PhotoTrail uses PostgreSQL Row-Level Security (RLS) through Supabase. RLS policies help control which database records a user may read, create, update, or delete.

Access rules cover areas including:

  • Events
  • Event membership
  • Photos
  • Albums
  • Comments
  • Likes
  • Notifications
  • User information
  • Storage information

PhotoTrail also uses server-side and database helper functions to determine whether a user is an event owner, member, contributor, or otherwise authorized to access specific information.

Private event protection

Private events use membership-based authorization. Before a user can access protected event information, PhotoTrail evaluates whether that user has permission to access the event.

The system distinguishes between roles and states such as:

  • Event owners
  • Accepted members
  • Invited or pending members where permitted
  • Contributors
  • Other users without access

Photo access is also governed by authorization rules rather than simply relying on knowledge of a photo identifier. This helps prevent users from gaining access to private event media simply by changing an event or photo ID in a request.

Server-side media authorization

Sensitive storage operations are handled by the PhotoTrail backend rather than directly by the mobile application. These operations include:

  • Generating S3 upload URLs
  • Generating CloudFront signed URLs
  • Generating thumbnails
  • Removing stored files
  • Removing event-member content
  • Checking storage limits

The backend authenticates the caller before processing these requests.

For storage operations, PhotoTrail also checks whether the requested file belongs to the authenticated user or to an event they are authorized to manage.

Protected cloud credentials

Sensitive production credentials are intended to remain on trusted server-side systems. For example:

  • AWS credentials are used by the backend
  • The Supabase service-role credential is used server-side
  • CloudFront signing credentials are used server-side

These privileged credentials are not intended to be distributed as part of the mobile application.

The app uses limited client-side credentials and authenticated user sessions for normal application operations.

Secure upload process

PhotoTrail uses a controlled upload process for photos and videos.

Before an upload begins, PhotoTrail validates information such as file size and available storage quota. The backend performs its own validation before issuing an upload authorization.

Current upload controls include maximum file-size limits and server-side storage quota verification.

The upload authorization is temporary, reducing the period during which it can be used.

After a successful upload, PhotoTrail updates its database and storage accounting before the media becomes part of the user's PhotoTrail library.

Storage quotas & abuse protection

Storage limits are enforced both in the application workflow and on trusted server-side systems.

PhotoTrail's backend checks available storage before generating new upload authorization.

Storage accounting is managed through protected database operations rather than allowing the mobile client to arbitrarily change its own storage allowance.

These controls help reduce abuse and prevent a modified client from simply increasing its own quota.

Controlled file deletion

Deleting PhotoTrail content involves both database records and cloud-storage objects.

PhotoTrail uses authenticated backend operations and database procedures to delete photos, albums, event content, and associated stored media.

When an event member's content is removed, PhotoTrail can remove that member's relevant database records and associated S3 content.

Deletion operations are designed to operate against specific authorized content rather than exposing unrestricted cloud-storage deletion access to the mobile application.

Database security

PhotoTrail uses Supabase PostgreSQL as its primary application database.

Row-Level Security is enabled across application tables.

Security-sensitive database functions have been hardened so that privileged operations are not directly available to anonymous clients.

PhotoTrail also uses database triggers and protected functions to ensure that ownership information comes from the authenticated user where appropriate instead of trusting arbitrary values supplied by a client.

Subscription & payment security

PhotoTrail uses RevenueCat to manage subscription and entitlement information.

Purchase processing is handled through the relevant mobile-platform billing system and RevenueCat rather than PhotoTrail storing complete payment-card details itself.

PhotoTrail receives the subscription and entitlement information required to enable paid features.

Subscription and promotional status is synchronized server-side with PhotoTrail's systems.

Notifications

PhotoTrail uses Firebase Cloud Messaging to deliver push notifications.

Notification delivery uses server-side infrastructure to communicate with Firebase rather than exposing privileged Firebase service credentials to normal application users.

Ads & analytics

Free PhotoTrail accounts may see advertisements delivered through Google AdMob. Premium users may receive an ad-free experience depending on their subscription.

PhotoTrail also uses Firebase Analytics for limited application analytics such as screen-view measurement.

Advertising and analytics providers may process information according to their own privacy policies.

For more information about how PhotoTrail handles personal information, please review our Privacy Policy.

Location information

PhotoTrail can associate memories with locations, timestamps, addresses, weather information, and other event context.

Location-related information is used to provide PhotoTrail features such as location-based albums and memory organization.

Where device permission is required, users remain in control of location permission through their operating-system settings.

You should review your location permissions if you do not want applications to access precise device location.

Event invitations

Private events can be shared using invitation mechanisms such as invite codes.

PhotoTrail validates invitations and event membership before granting access to protected event content.

Users should treat event invite codes as private and only share them with people they intend to invite.

Event owners can manage event membership through PhotoTrail.

Web event access

PhotoTrail may provide web-based event previews.

Depending on the type of event and sharing method, protected web previews may use mechanisms such as event membership verification or one-time passwords.

Public event pages may be accessible publicly where the event owner has intentionally chosen public visibility.

Moderation & reporting

PhotoTrail includes tools that allow users to report inappropriate content or activity.

Reports can be stored for investigation and moderation.

PhotoTrail may remove content, restrict users, remove event members, or take other appropriate action in accordance with its Terms of Service and applicable policies.

Protecting against unauthorized access

PhotoTrail's security architecture is designed around several independent controls:

  • Authentication: users must authenticate before accessing protected account features.
  • Authorization: authenticated users must still have permission to access a particular event, album, photo, or operation.
  • Database policies: Row-Level Security provides another authorization layer directly within the database.
  • Private cloud storage: private media is not exposed through an openly accessible S3 bucket.
  • Temporary media links: private media can be served using expiring CloudFront signed URLs.
  • Server-side secrets: privileged AWS and database credentials are intended to remain outside the mobile application.
  • Server-side validation: sensitive operations are independently validated by the backend rather than trusting the mobile app alone.

Together, these controls follow a defense-in-depth approach: access should not depend on any single security mechanism.

What event members can do

Security controls can restrict unauthorized access, but PhotoTrail cannot control what an authorized person does after legitimately viewing content.

A member who can view a photo may potentially:

  • Take a screenshot
  • Download it where downloading is available
  • Record their screen
  • Save the content through another method
  • Share a copy outside PhotoTrail

Event owners should therefore invite only people they trust to private events.

Account & content deletion

PhotoTrail provides mechanisms for deleting user content and account-related information. Depending on the content involved, deletion may include removing:

  • Photos
  • Videos
  • Albums
  • Events
  • Event memberships
  • Related storage objects

Some limited information may be retained where reasonably required for security, fraud prevention, dispute resolution, legal obligations, or system backups, as described in our Privacy Policy.

For account deletion requests, users can also contact support@phototrail.app.

Our security principles

PhotoTrail follows several core principles when building and operating the service.

Least privilege

Systems and users should receive only the level of access necessary to perform their intended function.

Server-side trust

Privileged credentials and sensitive operations should remain on trusted server-side systems rather than relying on the mobile application.

Defense in depth

Private content is protected through multiple independent controls rather than one security mechanism.

Private storage

Private user media should not be openly exposed through public cloud-storage buckets.

Authorization before access

Being authenticated does not automatically mean a user can access another user's event or media. PhotoTrail checks authorization and membership when accessing protected resources.

User control

Users and event owners are provided with controls over event visibility, membership, uploaded content, and account information.

Security is an ongoing process

No application, cloud platform, or security system can guarantee absolute security.

PhotoTrail continuously evolves, and our infrastructure and security controls may change as the service develops.

We review our systems as the product grows and work to improve protections around authentication, authorization, data storage, media delivery, abuse prevention, and account security.

We will update this page when meaningful changes are made to our security practices.

Responsible security reporting

If you believe you have discovered a security vulnerability affecting PhotoTrail, please report it privately rather than publicly disclosing it. Contact: security@phototrail.app

Please include, where possible:

  • A description of the issue
  • Steps needed to reproduce it
  • The affected page, API, or feature
  • Screenshots or supporting evidence
  • The potential security impact

Please do not:

  • Access data belonging to other users beyond what is necessary to demonstrate the issue
  • Delete or modify other users' data
  • Disrupt PhotoTrail's services
  • Perform destructive testing
  • Publicly disclose an unresolved vulnerability

We appreciate responsible reports that help us protect the PhotoTrail community.

Privacy

Security and privacy are closely connected, but they are not the same thing. Our Privacy Policy explains:

  • What information PhotoTrail collects
  • Why we collect it
  • How it is used
  • Who it may be shared with
  • How long it may be retained
  • Your privacy rights
  • How to request deletion

Please review our Privacy Policy for complete information.

Questions about security?

If you have questions about PhotoTrail's security practices, contact us:

  • Security: security@phototrail.app
  • General support: support@phototrail.app
  • Website: phototrail.app
PhotoTrail

Every memory deserves its place in the story.

Explore About How it works Pricing Weddings & occasions Photographers
Resources Blog FAQ Trust & Security Contact
Legal Privacy Policy Terms & Conditions Delete Account
Google Play

© 2026 PhotoTrail. All rights reserved.