Privacy Policy

Last updated: [[PLACEHOLDER: effective date, set at launch]]

Draft — not legal advice. This page was generated from the codebase to describe real data flows as accurately as possible. It has not been reviewed by a lawyer and must not be treated as a finished policy until it is.

This policy explains what Floorplan → 3D (the “Service”) collects, why, and who it is shared with. It was written by reading the Service’s own source code, not by copying a template — every third party named below is one this codebase actually calls. Where a detail could not be confirmed in code, it is marked [[VERIFY: like this]] rather than asserted. This document describes practices; it does not claim compliance with any specific law or certification (e.g. GDPR, CCPA, SOC 2) — that determination is for [[PLACEHOLDER: counsel]] to make before launch.

Who we are

Floorplan → 3D is operated by [[PLACEHOLDER: legal entity name]], [[PLACEHOLDER: registered address]]. If you have questions about this policy or your data, contact [[PLACEHOLDER: privacy contact email]].

The short version

Information we process, and who it goes to

Account & project data — Supabase

If you sign in, authentication and cloud storage are handled by Supabase (Supabase, Inc.). Specifically:

Supabase session cookies are how you stay signed in between visits; see “Cookies” below.

Realtime collaboration — Liveblocks

When you turn a project “live” or open a share link, the live editing session is powered by Liveblocks (Liveblocks, Inc.). While you are in a live room:

AI processing — none

The Service does not send your floor plans, images, or any other content to an AI provider. An earlier “Understand rooms” feature did transmit plan images to a third-party model to guess room types; it was retired on 23 August 2026 and the code paths that sent that data were removed. Room types are now determined entirely by a rule engine that runs locally, on your own device.

Hosting — Vercel

The Service is hosted on Vercel, which serves every page and API route and necessarily processes standard connection data (such as IP address) to do so, as any web host does. [[VERIFY: Vercel’s own log retention window and whether any request logs are retained beyond what’s operationally necessary]].

Static asset hosting — Vercel Blob

Furniture and material assets you can add to a design (3D models, textures) are served from Vercel Blob. This is a one-way, read-only content library assembled ahead of time — nothing you create or upload is sent to or stored in Vercel Blob.

Fonts

The Service uses two Google Fonts (Manrope, IBM Plex Mono). They are self-hosted at build time via Next.js’s font system, not loaded from Google’s servers at runtime — your browser does not make a request to Google when these fonts load.

What’s stored where

Locally, in your browser (IndexedDB):every project you create is saved to your browser’s local storage automatically, whether or not you are signed in. This includes the project’s geometry, the imported plan image, and a gallery thumbnail. This data does not leave your device unless you sign in and it syncs, or you explicitly go live and share it.

In the cloud (only if you sign in): the same project data is mirrored to Supabase so it follows you to another device. It remains private to your account — restricted by row-level security so that no other account can read or write it, even though it lives in a shared database.

What a share link exposes

Turning a project “live” and sharing its link gives whoever has that link access to a live collaborative session of that project — not to your Supabase account or your other projects. The role you choose for the link (view / decorate / build) controls what a recipient can do in that session. Anyone with a valid link, including someone without an account, can join the session and see the live 3D scene and who else is currently viewing it. Treat a share link like you would any editable document link: anyone who has it can use it until it expires or you revoke access.

Cookies & local storage

The Service sets strictly-necessarycookies only — used by Supabase to keep you signed in between visits. We do not use analytics cookies, advertising cookies, or any third-party tracking script. Separately (not a cookie), your browser’s IndexedDB and localStorage are used to save your project data locally and to remember small preferences (like light/dark theme and whether you’ve dismissed the cookie notice) — this data stays on your device and is never transmitted anywhere on its own.

Data retention & deletion

Deleting a project removes it from your local browser storage and marks it deleted in the cloud (if signed in), so it disappears from your other devices too. The precise end-to-end account- and data-deletion mechanism (including how to request deletion of your account and all associated cloud data) is [[PENDING: delete flow]] — this section will be filled in once that ships.

Children’s privacy

The Service is not directed at children, and we do not knowingly collect personal information from children under [[PLACEHOLDER: minimum age, per applicable law]].

International data transfers

Our processors (Supabase, Liveblocks, Vercel) may process data in countries other than your own. [[PLACEHOLDER: specific transfer safeguards / legal basis, per counsel]].

Your choices

You can use the Service without an account, in which case nothing described above under “Supabase” or “Liveblocks” applies unless you separately trigger a live share. You can sign out at any time, and can ask us to delete your account and data (see “Data retention & deletion” above).

Changes to this policy

We may update this policy as the Service changes. Material changes will be reflected in the “Last updated” date above.

Contact

Questions about this policy: [[PLACEHOLDER: privacy contact email]].