Privacy Policy
Effective date: May 24, 2026
Overview
Strainline (“we,” “our,” “us”) operates strainline.app, a cannabis price comparison service for California adults 21 and older. We are committed to being transparent about data practices. The consumer product has no user accounts — browsing is anonymous by design.
This policy describes what information we collect, how we use it, and your rights as a California resident.
Information we collect
Automatically collected
- Anonymous session ID — a random identifier generated locally in your browser and stored in localStorage. It is not linked to your name, email, or any account.
- Page views and interactions — which pages you visit, searches you submit, products you click, and dispensary verification links you follow, associated with your session ID.
- Truncated user agent — your browser and OS type, limited to 512 characters, stored alongside session events.
- IP-based city detection — on your first visit, your approximate city is inferred from your IP address using Vercel’s edge network to suggest the nearest coverage area. Your IP address itself is not stored by us.
- First-touch attribution — UTM parameters (source, medium, campaign) and the referring URL from the link that brought you to Strainline, stored in a 30-day cookie named
sl_attr.
Stored in your browser
We use localStorage to remember preferences between visits. Nothing in localStorage is synced to our servers unless you take an action (such as a location-based search):
- Selected region (
strainline.region) - Age verification status (
strainline.age_verified, 30-day expiry) - Saved address display text and coordinates (
strainline.address*) - Preferred search radius in miles (
strainline.radius) - Dark/light theme preference (
strainline.theme) - Session ID (
strainline.session_id)
Information you provide
If you submit the out-of-coverage request form (asking us to expand to your area), we collect your email address and optionally your city. We use this solely to notify you if we launch in your area. We do not use it for marketing.
Location data
If you grant your browser’s geolocation permission (optional, prompted on the age verification screen), your GPS coordinates are stored locally and can be used to filter search results by distance. Raw address text never leaves your browser — only latitude and longitude are transmitted when you perform a proximity search.
You can clear saved location data at any time by clearing your browser’s localStorage for strainline.app.
Analytics
We use two analytics services to understand aggregate traffic patterns:
- Vercel Web Analytics — privacy-preserving, no cookies, aggregated data only. See Vercel’s privacy policy.
- Plausible Analytics (when enabled) — cookie-free, GDPR-compliant, no cross-site tracking. See Plausible’s privacy policy.
Advertising pixels
When active, we may load retargeting pixels from Reddit, X (Twitter), and TikTok to measure the effectiveness of advertising campaigns. These pixels are only loaded when configured by us and operate under each platform’s own privacy policies. They allow those platforms to associate your visit with their ad audiences if you are logged into those services. You can opt out of interest-based advertising through each platform’s settings or via the Digital Advertising Alliance opt-out.
How we use your information
- To display relevant dispensaries and prices for your area
- To improve the product by understanding which features are used
- To measure advertising campaign effectiveness (attribution data)
- To notify coverage request submitters if we expand to their area
- To enforce the 21+ age requirement
We do not use session or attribution data to build individual user profiles, make credit or employment decisions, or infer sensitive characteristics.
Sharing with third parties
We do not sell your personal information. We share data only as follows:
- Infrastructure providers — Vercel (hosting, analytics, edge network) and Supabase (database). Data is processed under their respective data processing agreements.
- Ad platforms — Reddit, X, TikTok receive pixel event data when retargeting is active (see “Advertising pixels” above).
- Legal requirements — we may disclose information if required by law or to protect the rights and safety of our users or others.
Data retention
- Session events (
consumer_events) — retained for up to 12 months, then purged. - Attribution cookie (
sl_attr) — expires after 30 days. - Coverage request emails — retained until you request deletion or three years after we notify you of coverage launch, whichever comes first.
- LocalStorage data — persists until you clear your browser data or the stored value expires per its own TTL.
California resident rights (CCPA)
If you are a California resident, you have the following rights under the California Consumer Privacy Act:
- Right to know — request disclosure of the categories and specific pieces of personal information we have collected about you.
- Right to delete — request deletion of your personal information, subject to certain exceptions.
- Right to opt out of sale — we do not sell personal information.
- Right to non-discrimination — we will not discriminate against you for exercising any CCPA right.
Because consumer browsing is anonymous, we generally cannot link session data to a specific individual. If you submitted the coverage request form, you can email us to have your address removed.
Children’s privacy
Strainline is strictly for adults 21 and older. We do not knowingly collect information from anyone under 21. If you believe a minor has submitted information, please contact us and we will delete it promptly.
Changes to this policy
We may update this policy as the product evolves. The effective date at the top reflects the most recent revision. Material changes will be noted on the site.
Contact
For privacy questions, data deletion requests, or to exercise your CCPA rights, email us at privacy@strainline.app.