Legal
Cookies and Browser Storage
Everything StreetShape puts on your device, what each thing is for, and which of it you can refuse without losing the service.
1. The short version
- Nothing optional is written before you accept it.
- Refusing analytics does not restrict the service.
- Refusing does not stop every third-party connection — authentication, hosting, maps and checkout still happen, because the service does not work without them.
- There is no advertising, no tracking pixel, no third-party analytics script in your browser and no cross-site profiling.
3. Strictly necessary
| Name | Set by | What it is for | How long |
|---|---|---|---|
__session | Clerk | The signed-in session. Without it every page load signs you out | [the session cookie's lifetime in production, and how it refreshes — a provider default is not an inventory] |
__client_uat | Clerk | Tells the server whether a signed-in session exists, so a page can render as signed in without a round trip | [the `__client_uat` cookie's lifetime in production — the same question as the session cookie above, and the same answer is not safe to assume] |
These are set by Clerk, which runs sign-in. Without them a signed in session does not survive a page load. They are not optional and there is nothing to accept or refuse.
The lifetimes are marked outstanding rather than stated. They are a provider default that a production configuration can change, and a cookie policy quoting a default it has not checked is describing somebody else’s deployment.
4. Only with your permission
| Name | Set by | What it is for | How long |
|---|---|---|---|
streetshape_consent | StreetShape | Whether you accepted or declined the banner. Without it we would ask you again on every page | 180 days |
streetshape_attribution | StreetShape | The page you arrived on, the site that linked you and any campaign tags in the address — so a signup weeks later is still credited to what brought you. Written only if you accepted, never sent anywhere else, and read once if you make an account | 90 days, or until you sign up, or until you withdraw consent |
The first row is the record of your choice. It is what stops us asking again on every page, and it is written whichever way you answered — including when you decline, because a decline that is not remembered is not honored.
The second is attribution: the page you arrived on, the site that linked you and any campaign tags in the address. If you make an account later, it is read once and attached to the signup, and then removed.
What the same consent also enables
Accepting does not only write a cookie. It also turns on the named product events our servers send to PostHog, with your account id attached when you are signed in. The banner’s own wording centers on attribution and under-describes that, which is one of the things listed as outstanding at the top of this page. There is no PostHog script in your browser: no session replay, no heatmaps, and nothing that records what you type.
We also keep aggregate counts of how many people reached each step. The totals are designed not to identify anybody. The requests they are counted from still reach our servers, and whether collecting them needs asking first is an open question rather than a settled exemption.
5. Preferences kept on your device
| Name | Set by | What it is for | How long |
|---|---|---|---|
streetshape:draft:v1 | StreetShape | A plan drawn before signing up. It is the only copy — it stays on this device until you make an account and it is saved, and clearing your site data loses it | Until claimed or cleared |
streetshape:view-type | StreetShape | Which basemap a new plan opens with | Until cleared |
streetshape:buildings | StreetShape | Whether buildings are drawn on the map | Until cleared |
streetshape:plans-sort | StreetShape | How your plans are sorted in the dashboard | Until cleared |
streetshape:plans-view | StreetShape | Grid or list, in the dashboard | Until cleared |
The first row is not a preference
streetshape:draft:v1 holds a plan somebody drew before signing up, and it is the only copy. It is not backed up anywhere, it does not exist on your other devices, and clearing your site data deletes it for good. Holding it is the service that was asked for, which is also why it is not treated as optional.
Whether the other four need consent: [whether the preference keys are exempt as part of a service you expressly requested, or have to be gated by consent]
This page used to treat them as exempt without saying why. Remembering which basemap you chose is a plausible reading of “necessary for a service you expressly requested” and it is not an obvious one, so it is marked as a decision rather than presented as a conclusion.
6. Third parties
- Clerk sets the two session cookies above.
- MapTiler receives map requests from your browser.
- Paddle may use cookies and similar technologies inside checkout, for payment and fraud prevention, under its own cookie notice.
A provider’s own notice does not stand in for consent we have to obtain ourselves for anything non-essential loaded through our pages.
The complete production inventory: [a production cookie and storage inventory — signed out, signed in, on the map and through checkout. The lists on this page come from the code, which cannot see what a provider sets]
7. What we do not set
No advertising cookies. No tracking pixels. No third-party analytics script running in your browser. No cross-site profiling. No data sold to anybody.
That list is about what is absent, and it is worth being precise about what it does not claim: it does not claim that nothing reaches any provider when you decline. Signing in, loading a page, looking at a map and paying all involve the companies on the subprocessor page, whatever you answered.
9. Changes to this policy
When something is added or removed, this page changes with it and the date at the top moves. A new optional technology is asked about before it is used, not announced afterwards.
Daniel Halabi · hello@streetshape.org