LowKeyCodes

LowKeyCodes

Privacy Policy

This policy explains what data LowKeyCodes processes when someone visits the public site, scans a QR code, or uses the admin area.

Last updated: May 26, 2026

1. Data controller

LowKeyCodes is operated by TRIGUB TECHNOLOGIES OÜ, Harju maakond, Tallinn, Kesklinna linnaosa, Narva mnt 5, 10117 Estonia. For privacy questions, you can contact us at filipp@trigub.tech.

2. Data processed on the public site

The public site can send pageview data and product usage events to PostHog. We use this analytics data to understand how the product is used, improve public and admin flows, and identify friction points.

When someone opens a scan page, the app can also record analytics events about page load, GPS permission prompts, network errors, successful scans, and collection progress.

3. Location data and scan evaluation

When someone scans a QR code, the browser may request access to their location. GPS coordinates, reported accuracy, and the scanned code identifier are sent to the LowKeyCodes evaluation API so the service can check whether the user is at the right place and within the right time window to unlock content.

If the check fails, LowKeyCodes may return a wrong-location or wrong-time result. If the check succeeds, the matching content and collection state needed by the page are returned to the browser.

4. Scan event logging

After a scan, LowKeyCodes can send a technical event record to Supabase to help the campaign organizer understand QR activity. Those records can include the code ID, coordinates, accuracy, timestamp, user agent, whether the location matched, and the content variant returned by the scan flow.

This logging is designed as a non-blocking request so the public scan result does not wait for the database write to finish.

5. Collection state stored in the browser

To remember which stops have already been collected, LowKeyCodes stores collection progress in the browser's localStorage. That state contains collected code IDs for a campaign and a last-updated timestamp.

This state is kept client-side and is used to show local collection progress. If local storage is unavailable, LowKeyCodes attempts to degrade gracefully.

6. Admin accounts, authentication, and billing

The LowKeyCodes admin area uses Supabase Authentication with OAuth sign-in to let administrators access their campaigns. Session-related admin access data is handled by Supabase and the app's authentication callback routes.

For paid admin subscriptions, LowKeyCodes uses Stripe Checkout, the Stripe Billing Portal, and Stripe webhooks to create subscriptions, manage trials, sync billing state, and show selected billing details inside the admin interface.

7. Legal bases and purposes

We process data to operate LowKeyCodes, validate location-aware scans, provide the public and admin interfaces, measure product usage, secure admin access, and manage subscriptions. Depending on context, that processing may be necessary to provide the service, perform a contract with a customer, or pursue our legitimate interests in operating and improving the product.

8. Recipients and retention

Depending on the feature involved, data may be processed through services used by LowKeyCodes, including PostHog for product analytics, Supabase for authentication, database storage, and scan logging, and Stripe for admin billing.

We keep data for as long as needed to operate the service, investigate incidents, comply with legal or accounting obligations, or defend our rights. Exact retention periods vary by data type and usage context.

9. Your rights

Depending on applicable law, you may have rights to request access, correction, deletion, restriction, or objection to certain processing, and to contact a relevant supervisory authority.

For requests, contact filipp@trigub.tech. You can also review our Terms of Service and Impressum.

Other legal documents

Privacy Policy | LowKeyCodes