Legal

Privacy Policy

Last updated: October 2026

Devino Solutions Inc. ("Marka", "we") operates joinmarka.com. This policy describes what personal information we collect, how we use it, and your rights under applicable Canadian privacy law (PIPEDA and applicable provincial legislation). It describes what the product actually does today, not what it may do later.

1. Information we collect

Account information: name, email address, and authentication credentials when you register. If you sign in with Google or Apple, we store the identifier those providers return, not your password.

Seller information: identity verification data and banking information are collected and stored by Stripe, not Marka. We receive a confirmation status from Stripe (verified / unverified) and your Stripe account identifier.

Listing data: item descriptions, photos, prices, and location information you provide when creating listings.

Transaction data: order records, payment status (never card numbers), and, for shipped orders, the delivery address and contact details you enter at checkout.

Messages and support requests: the messages you send to other Marka users, and anything you write in a support or feedback form.

AI assistant conversations: what you type to the Marka assistant, the drafts it produces, and the tools it calls on your behalf.

Usage data: pages visited, search queries, and feature interactions. Section 3 sets out exactly how this is collected and when.

Technical identifiers: your IP address and browser user agent are stored with each signed-in session. Your IP address is also stored on the record of each shipping action you take (requesting rates, buying or voiding a label, checking tracking), because those records are evidence in a shipping dispute. When you submit the support form we read your IP address to rate-limit the form, but we do not store it with your report. Our analytics also derives an approximate location from your IP address — see section 3.

2. How we use your information

  • To operate and provide the Marka marketplace.
  • To process and record transactions between buyers and sellers.
  • To send transactional emails (order confirmations, shipping updates).
  • To detect and prevent fraud and policy violations.
  • To diagnose errors and improve Marka's features.

We do not sell your personal information to third parties.

3. Analytics and error reporting

Product analytics (PostHog). We run our own PostHog instance on infrastructure we operate, rather than sending your activity to a third-party analytics vendor. It loads only after you accept analytics in the cookie banner. When it does, it records page views, page exits, and automatic interaction events (clicks and form submissions). If you are signed in, those events are linked to your internal Marka user identifier — never your email address or name — together with your subscription tier. PostHog does see the IP address each event arrives from, and derives an approximate location (country, region and city) from it, which is stored on the event.

Session replay (PostHog and Sentry). Only after you accept analytics, and only for a small sample of visits (PostHog and Sentry each record no more than one visit in ten, chosen independently of each other), we record a replay: a reconstruction of the page's layout and of your clicks, scrolling and navigation, which we use to see where people get stuck. Our Sentry instance also records the visits on which an error occurs, so that the error arrives with what led to it. In both, all text on the page and every form field is masked, so neither what you read nor what you type is recorded. Sentry also blocks images and other media; PostHog does not, so photos on the page (listing photos, profile pictures) can appear in its replays. Link addresses and image descriptions are not masked. The content of sign-in, sign-up and password pages, checkout and subscription pages, messages, settings, orders, the Marka assistant page, seller onboarding and our internal back-office pages is never recorded, although the address of the page can appear in a replay. Recording stops on the page where you withdraw your consent. Replays are stored in our own PostHog and Sentry instances. Our PostHog instance is set to keep replays for 5 years. Sentry keeps its replays for 90 days.

Events recorded by our servers. A small number of events are recorded server-side and are not covered by the cookie banner, because they record something that happened on our systems rather than in your browser: when you submit a support or feedback form (which includes the first 500 characters of your message, and the first 500 characters of what you told us you were hoping would happen, so that we can act on it), and when your subscription status changes. Likewise when you create an account or an API key, or an AI client calls our MCP endpoint with one of your keys; these are recorded against your internal user identifier, with no email, name or key. Declining analytics stops browser tracking; it does not stop us recording that you contacted support.

Error reporting (Sentry). We run our own Sentry instance, also on infrastructure we operate. When something fails, it receives the error, the page it happened on, your internal Marka user identifier, and a technical stack trace. It is configured not to attach personal data automatically. Error reporting is not gated by the cookie banner: without it we cannot tell that a checkout or a payout is broken. Its session replay, described above, is. It is also where a browser sends a report when our Content-Security-Policy blocks something.

AI assistant. Your assistant messages are sent to OpenRouter, which routes them to the language model that answers them. A trace of each assistant turn — including the prompts and the model's replies — is also recorded in our own PostHog instance so we can diagnose bad answers. Photo analysis is an exception: the images and their analysis are stripped from the trace before it is stored.

Google Analytics. When enabled, Marka loads Google Analytics. Like PostHog, it loads only after you accept analytics. Declining, or withdrawing your consent later, turns Google's tag off and removes its cookies.

4. Cookies and browser storage

Marka sets a session cookie for authentication and a small cookie remembering your language. Both are strictly necessary and are not gated by consent. In production both are marked Secure, and the session cookie is HttpOnly, so it cannot be read by scripts.

If you choose a light or dark appearance, Marka stores that choice in a marka-theme cookie for one year, so the page can be rendered in the right colours before it reaches you. It holds one word — system, light or dark — is readable by scripts on the page (the theme switch has to read it back), is marked Secure in production, and is never used to identify or track you. It is only set once you pick a theme; leaving the default follows your device setting and writes nothing.

Your analytics choice is stored in your browser's local storage, not in a cookie, and never leaves your device. You can change it at any time from the "Cookie preferences" link in the footer. We do not use advertising cookies, and Marka does not run ads.

5. Third-party services

  • Stripe: processes all card payments and handles seller identity verification. Stripe's Privacy Policy applies to payment data.
  • RevenueCat: manages seller subscriptions. It receives your internal Marka user identifier and your subscription state. We do not send it your email address; if you enter one on RevenueCat's own checkout page for your receipt, it goes to RevenueCat directly.
  • Easyship: processes shipping label requests. Generating a rate or a label sends Easyship both ends of the shipment — the seller's pickup address and the buyer's delivery address, each with the contact name, email address and phone number attached to it — plus the parcel and order details.
  • eBay and Shopify: if you connect a sales channel, the listings you choose to publish there are sent to that platform.
  • Backblaze B2: stores listing photos and media. Your browser, or the Marka extension, uploads directly to it.
  • OpenRouter: routes AI assistant requests to a language model provider.
  • Notifly: powers the in-app notification inbox and push notifications. While you are signed in it receives your internal Marka user identifier, your email address and your name, so a notification can be addressed to you.
  • Our email provider: delivers transactional email. It receives your email address and the contents of the message we send you.
  • Google Analytics: web analytics, loaded only with your consent (section 3).

PostHog and Sentry are named in section 3 rather than here because we host them ourselves: your analytics and error data stay on infrastructure we run, and are not shared with those companies.

The Marka app for Shopify

If you install the Marka app from the Shopify App Store, this is what it holds about your store. It keeps your store's myshopify.com address, the display name and currency Shopify reports for it, the permissions you granted, and the access credentials Shopify issued to the app; the credentials are stored encrypted. When something sells, Shopify tells Marka which order and which line items were affected, and Marka keeps those order and line-item identifiers and the quantity changes, so one sale never reduces your stock twice. Marka does not store your customers' names, email addresses, phone numbers or addresses: the order notifications it receives are stripped of those fields before anything is saved. We use this data only to publish the listings you choose and keep stock in step between Marka and your store, and we do not sell it or share it with anyone for their own use.

When you uninstall the app Marka drops its credentials. Shopify then tells us, 48 hours later, to erase the store's data, and we delete the store's connection, its stock records and its delivery log. Shopify also forwards a customer's request to access or erase their data; Marka holds no customer record to export, and it scrubs any stored delivery that mentions the customer. To ask us anything about this, email privacy@joinmarka.com.

6. The Marka browser extension

Marka publishes a browser extension with one purpose: to turn a marketplace listing you are looking at into a draft in your own Marka account. It is a separate program from this website, installed by you on one device, so what it holds and what it sends are set out separately here. It registers no content script and watches nothing in the background: it reads a page only on the tab where you invoke it, and only when you invoke it.

What it reads from the page. When you invoke it, the extension reads the listing on that tab: the title, the description, the price and currency, the condition, the category, the country the item is in, the brand, and the addresses of the photos. It shows you what it read before any of it is sent to Marka, and you can edit it. It also reads the address of the tab you invoked it on, only to recognise Kijiji or Facebook Marketplace and to show you the site name. That address is not sent to Marka or to anyone else and is not stored; the draft carries no link back to the page it came from.

What it sends to Marka. When you press Create, the extension sends your account the fields you confirmed — title, description, price, currency, condition, category and country — and creates a draft listing. The draft is created first, and the photos are uploaded afterwards and attached to it. The brand is shown to you but is not sent. Nothing is published: the draft is an ordinary listing in your account, covered by "Listing data" in section 1, and it stays a draft until you publish it on Marka. The extension talks to Marka and to Backblaze B2 only over HTTPS; a release build refuses any other address.

Your Marka API key is stored unencrypted in that browser profile's local storage, so the extension can create drafts in your account. It is kept deliberately out of Chrome's synced storage, so it is not copied to your other machines, and it is sent to nowhere but Marka, as the credential on your own requests. Anyone with access to that browser profile can read it. The extension says so beside the field where you paste it.

Photos are downloaded and re-hosted. When you create a draft, the extension downloads that listing's photos and uploads them to Marka's storage, so your draft holds its own copy instead of pointing at someone else's server. It fetches them without cookies and without a referrer, so the image host receives neither your cookies nor the address of the page you came from (it does see your IP address, as any site you load an image from would). On Kijiji and Facebook Marketplace it can fetch photos from those sites' photo hosts, once you allow it (below); on any other site it requests each photo address the page listed, and the browser lets it read only photos served from the page's own address or from hosts that allow other sites to read them; any other photo is skipped. At most eight are taken, and one that will not download is skipped rather than failing your draft. The photos are uploaded straight from your browser to Backblaze B2, Marka's storage provider (section 5); to get an upload address, Marka is sent each photo's file name (taken from its address), type and size, and nothing else about the page is.

Permission for the photo hosts is requested when you create the draft, not at install and not at capture. The extension is installed with access to two places only: joinmarka.com, and the Backblaze B2 address that photo uploads are sent to. Access to the Kijiji and Facebook photo hosts is asked for when you create the draft, and only for the hosts that listing's photos are on, so the extension can ask for nothing else. Chrome keeps a permission you grant until you remove it on the extension's page. It never asks for access to every site you visit. Refusing is not fatal: the draft is created without the photos it was not allowed to fetch. Reading the page itself is allowed by Chrome's "active tab" permission, which covers only the tab you invoked the extension on.

Your default country. The extension keeps a default country in the same local storage, first set from your browser's language and editable in the extension. It is used only to fill in the country of a draft when the page does not say where the item is, and it is not sent anywhere except as part of a draft you create.

Usage events are off until you switch them on. If your version of the extension offers the switch and you turn it on, it can send anonymous usage events to the same self-hosted PostHog instance described in section 3. The setting is off by default and nothing is sent while it is off. There are five events — a capture starting, succeeding or failing, and a draft being created or failing — and they carry a fixed set of properties: which of three buckets the page was recognised as (Kijiji, Facebook, or "generic" for everything else), which extraction strategy produced the result, how many photos were found, uploaded or dropped, the names of any fields that could not be read, a short code for any warning or error, and the extension's version number.

What those events leave out is the point of the design: no page content, no page address, no listing title, no price, no photos, and never your API key. The event is assembled by naming each permitted property one at a time rather than by copying whatever it was handed, so a value nobody listed cannot leave — and the extension's tests read the raw bytes on the wire and assert that a listing title, a page address and an API key appear in none of the five events. You are identified to that instance only by a random identifier the extension generates on first run, which is not derived from your account and is deliberately not joined to the identifier this website uses. As with any request, our analytics server sees the IP address an event arrives from and derives an approximate location from it, as described in section 3.

Sending an event can never delay or break a capture. The extension answers you first and sends afterwards, and a send that the analytics endpoint has not answered within three seconds is abandoned and the request cancelled.

When you install the extension, it opens a Marka welcome page in a new tab, and when you remove it, your browser opens a Marka goodbye page. Each page's address carries the extension's version and a random code created at install, which links only those two visits to each other. Marka records each visit on its own server, including when you have not accepted analytics, with that version, that code and whether you were signed in. The extension itself sends nothing.

How we use and share extension data. What the extension reads and sends is used only to create the draft you asked for and, if you switched usage events on, to understand whether the extension works. We do not sell it, we do not use it for advertising, and we do not use it to judge your creditworthiness or for lending. It is shared only with the services that make the extension work, which are named in this policy: Backblaze B2 stores your photos, and our own PostHog instance receives usage events if you turned them on. Nothing the extension reads from a page is used for any purpose unrelated to creating your draft. Our use and transfer of information received through the Marka extension adheres to the Chrome Web Store User Data Policy, including its Limited Use requirements. Accordingly, our staff do not read what the extension reads or sends, including your drafts before you publish them, except where you ask us to (for example in a support request), where it is needed to investigate abuse or a security problem, where the law requires it, or in aggregated and anonymised form.

Keeping and removing it. Everything the extension stores on your device — your API key, your default country, the usage-events setting, the random identifier and the install code described above — stays there until you uninstall the extension, which removes it. The key is also removed if Marka rejects it, and you can replace it at any time. The random identifier is not shown to you and is not linked to your account, so we cannot tell which usage events are yours and cannot remove them one by one; uninstalling discards it and no later event can be joined to it. Usage events are kept until we delete them; we have not set an automatic deletion schedule for them, and they hold no page content, listing data or account details. The drafts the extension creates are ordinary listings: you can remove one from its page in your Marka account. Removing a draft, or deleting your account, detaches its photos from you but does not yet delete the photo files from storage (section 8). To have anything the extension created removed, including those files, email privacy@joinmarka.com and we will act on your request within 30 days.

7. Data retention

Account, listing and transaction data is retained while your account exists, and transaction records are retained after deletion for as long as tax and chargeback obligations require (section 8).

Some operational records are deleted automatically on a schedule, counted from the day the record is written: internal audit logs after 365 days and reliability logs after 365 days; payment-provider webhook records from Stripe and RevenueCat after 90 days, and eBay notification records after 90 days, in each case only once we have finished processing them; shipping action logs after 730 days, the longest window, because they are the evidence for a shipping dispute; and internal event-delivery records after 30 days, counted from the day delivery succeeded — a record of an event we have not yet managed to deliver is kept until it is resolved.

8. Deleting your account

You can delete your account yourself, from Settings → Account. You will be asked to confirm by typing your email address.

Deletion removes your name, email address, profile photo and delivery addresses; your saved listings, saved searches and assistant history; your API keys and every signed-in session; your connections to eBay, Shopify and shipping carriers; and any listing nobody has ordered, together with its photos.

Orders, payments, refunds and chargeback records are kept, because sellers are the merchant of record and both sides of a completed trade need that record — and because we must be able to settle a chargeback raised after the fact and meet tax obligations. Your personal details are removed from them: your account is replaced by an anonymous placeholder, the text of your messages is replaced (the messages stay in the conversation so the other person keeps their record of it), and the written part of any review you left is removed while the rating stands. If you never traded on Marka — no orders on either side, no messages sent and no seller payment account — nothing needs to be retained, and your account record is deleted outright rather than anonymised.

Two honest limitations. Deletion is refused — and tells you exactly which record is blocking it — while an order is in progress, a refund is still settling, or someone is checking out one of your listings; finish or cancel those first. And photo files already uploaded to storage are detached from your account but are not yet purged from the storage bucket; email us at privacy@joinmarka.com if you need those removed too.

9. Your rights

Under PIPEDA you have the right to access the personal information we hold about you, request corrections, and withdraw consent where applicable. To exercise these rights, email privacy@joinmarka.com.

10. Changes to this policy

We will notify registered users of material changes by email. Continued use of Marka after changes constitutes acceptance of the updated policy.

Privacy inquiries: privacy@joinmarka.com