Privacy Policy
1.0 Local-First Architecture & Client-Side Storage Posture
Opifico is engineered from the ground up on a privacy-by-architecture (local-first) computing model. We recognize that cabinetmakers, carpenters, metal fabricators, CNC job shops, and independent artisans handle sensitive commercial data: proprietary stock dimensions, wholesale material costs, supplier references, project cut lists, and client assembly specifications. Opifico does not operate a centralized user tracking database, behavioral profiling system, or advertising data warehouse.
The primary and default datastore for all user-generated information is your local web browser's persistent storage (window.localStorage). When you input material lists, standard sheet dimensions, linear lumber profiles, or workshop projects into Opifico, that information is serialized as structured JSON and written exclusively to your local device.
- inventoryData: Linear timber profiles, sheet stock dimensions (length, width, thickness), round/square tubing specifications, purchasing unit costs, grain direction flags, and current shop stock quantities.
- knownMaterials: Custom timber species (e.g., Baltic Birch, Hard Maple, Walnut), metals, alloys, densities, and workshop material classifications.
- projectTree: Project directory hierarchies, assemblies, workpiece cut lists, target dimensions, quantities, and edge banding parameters.
- userSettings: Active measurement units (mm, cm, m, in, ft), currency symbol ($/€/£), shop floor offcut salvage thresholds, and enabled stock types.
- woodapp_solution_cache_1d / woodapp_solution_cache_2d: Local LRU caches of solved cutting stock layouts stored on your machine to prevent duplicate compute deductions when reviewing recent solves.
- theme / ui-scale / opifico_cookie_consent: UI appearance preferences (light/dark, text size) and consent banner status.
Without an account, your inventory and project files stay exclusively in your browser localStorage and are never uploaded. When you sign in, they sync only to your private cloud workspace.
2.0 Ephemeral Backend Solver Processing & Stateless Endpoint Retention
Opifico provides algorithmic cutting stock optimization via high-performance linear programming (LP), mixed-integer programming (MILP), and constraint satisfaction engines powered by Google OR-Tools. Complex 1D linear bin-packing (/api/solve) and 2D guillotine sheet nesting (/api/solve2d) require dedicated server-side computational resources.
- Encrypted HTTPS Ingestion: The client application packages the minimum mathematical parameters—raw stock lengths, requested cut dimensions, quantities, and saw blade kerf—transmitting them via TLS 1.3 encryption.
- In-Memory (RAM) Execution: The FastAPI backend ingests dimensional vectors strictly into volatile system RAM. The optimization algorithm formulates constraint matrices and calculates optimal cutting patterns purely in memory.
- Immediate Streaming Delivery: Upon reaching optimality or the computational time limit, cutting coordinates, pattern sequences, and yield metrics are streamed directly back to your browser as JSON.
- Instant Deallocation: The moment the HTTP transmission terminates, all in-memory computation matrices and buffers are immediately marked for garbage collection and purged from volatile RAM.
Stateless Endpoint Retention Guarantee: For the stateless optimization endpoints (/api/solveand/api/solve2d) Opifico backend servers operate in an ephemeral, diskless mode regarding your problem parameters. For those endpoints we do not write, persist, cache, index, or store cut lists or workpiece dimensions to hard disks, solid-state drives, databases, or temporary scratch files.
Agent Mode Solutions Are Persisted: The paid Agent Mode API is different. When you run a solve through Agent Mode, the returned solution (including its cut list and dimensions) and the generated PDF are stored in a server-side SQLite database (agent_sessions.db) so that the solution and downloadable PDF can be retrieved at/api/agent/pdf/<solution_id>. This storage is tied to the wallet or access pass you purchased, persists across requests, and is not automatically purged when the pass or wallet balance expires. You can have these records erased by written request (see Section 5.0).
Operational Logging: Web server logs record technical transmission metadata (timestamp, HTTP status code, client IP, byte count). In addition, the 2D solver logs each requested part at INFO level, which includes the part identifier and its requested dimensions. Part identifiers are the labels you enter in the application, so user-supplied text and dimensions may appear in operational solver logs. Logs are rotated and retained under our standard operational retention policy and are not used for profiling.
User data is never used to train machine learning models or artificial intelligence datasets.
3.0 Payment Data & Stripe PCI-DSS Compliance
Opifico sells prepaid balance top-ups ($5.00, $10.00, $25.00) that pay for solves.
All credit card, debit card, Apple Pay, and Google Pay transactions are processed directly and exclusively by Stripe, Inc. (“Stripe”), an audited and certified PCI Service Provider Level 1—the most rigorous security standard recognized in the global payments industry.
Card entry fields are rendered in sandboxed iframes hosted directly by Stripe (Stripe Elements). Opifico servers, infrastructure, and staff never touch, collect, transmit, process, or store Primary Account Numbers (PANs), cardholder names, expiration dates, or CVV/CVC verification codes. Stripe communicates only cryptographically signed reference tokens (pi_...) and webhook status confirmations to activate your passes.
All prepaid balance top-ups are settled in US dollars via Stripe Checkout, with automatic local-currency conversion at checkout.
4.0 Opt-In Cloud Synchronization
Opt-In Cloud Sync (Supabase): By default, Opifico operates locally in your browser without requiring an account. When you sign in, your workshop inventory, supplier catalog, preferences, and project library synchronize securely to your private cloud account via Supabase over TLS.
Account & Cloud Data Control: You can work offline or signed out at any time, and you can permanently delete your cloud account and all synchronized data from Settings → Account.
5.0 GDPR, CCPA & Global User Rights
Opifico complies with the principles of the European Union General Data Protection Regulation ( EU GDPR Regulation 2016/679), the UK Data Protection Act ( UK-GDPR), the California Consumer Privacy Act as amended by the California Privacy Rights Act ( CCPA/CPRA), and international data protection standards.
Direct Autonomy & Instant Enforcement
Because Opifico stores data locally in your browser and processes solves ephemerally in RAM, you can exercise your statutory rights instantly and directly without administrative delay:
- Right of Access & Portability (GDPR Art. 15, 20; CCPA § 1798.100): Export your complete workshop inventory to standard CSV, panel saw cut lists to universal CSV manifests, project structures to JSON, and layout drawings to CAD/CAM DXF and vector PDF cut sheets at any time.
- Right to Erasure / Instant Local Purge (GDPR Art. 17; CCPA § 1798.105): Under Settings → Danger zone → Reset all data, executing the reset action immediately invokes
localStorage.clear()in your browser. This instantly and permanently deletes all inventory items, project folders, custom materials, solver caches, and preferences from your device. This action is client-side only: it cannot reach server-side records. Server-side Agent Mode records (the email associated with a pass or wallet, the wallet record, and any stored Agent Mode solutions) are not removed by the local purge and are erased on written request to [email protected], within the response window described below. - Right to Rectification (GDPR Art. 16): Directly modify, correct, or adjust any dimension, part label, or material definition directly in the application interface.
Affirmative CCPA / Statutory Disclosures
- No Sale of Personal Information: Opifico does NOT sell, rent, lease, barter, or trade user data, inventory lists, or usage metrics to data brokers, ad networks, or commercial third parties.
- No Cross-Context Behavioral Advertising: Opifico does not share personal information for behavioral advertising.
- Non-Discrimination: We will never deny services, adjust pass rates, or degrade algorithm optimization quality for users exercising their privacy rights.
- Privacy Inquiries: Direct inquiries to our Data Protection Officer at [email protected]. We acknowledge all requests within 5 business days and resolve formal inquiries within 30 calendar days.