Summary: BlockWerk is engineered as a client-first, zero-knowledge architecture. Your block diagrams, simulation models, and parameter configurations are processed entirely inside your web browser via WebAssembly (WASM). Your proprietary engineering data is stored in your local browser storage (IndexedDB) and is never automatically uploaded to our servers.
1. Client-Side Simulation Architecture
BlockWerk runs its numerical simulation engine (compiled from Rust to WebAssembly) locally on your device. When you run a simulation, build a diagram, or analyze signals:
- All differential equations, parameters, and matrix operations execute within your browser tab.
- No simulation data or diagram topographies are sent to external cloud servers during standard operation.
- Project files remain saved strictly within your browser's IndexedDB storage.
2. Diagram Sharing & LZ Compression
If you choose to share a diagram using the "Share" feature, BlockWerk generates a self-contained, LZ-compressed URL containing the diagram payload. The data is encoded directly into the URL fragment. Clicking a share link reconstructs the diagram client-side in the target browser, without requiring server-side storage or database persistence.
3. Analytics & Telemetry
To measure application performance, detect solver errors (such as algebraic loops or numerical divergence), and optimize feature workflows without invading user privacy, BlockWerk uses two privacy-conscious telemetry layers:
- PostHog EU Cloud (Product Telemetry): Anonymous in-app event tracking hosted in the European Union (Germany). Measures feature adoption (e.g. C++ code export, Bode stability analysis) and captures simulation error codes without collecting personal identifiers or model files.
- Netlify (Hosting & Server Logs): Our application is hosted on Netlify. For security, DDoS protection, and basic network analytics, Netlify automatically collects standard server logs which may include IP addresses. These are kept for a limited time (typically under 30 days) as part of essential infrastructure operations.
- EU Consent & Opt-Out Control: Under European ePrivacy and GDPR regulations, product telemetry (PostHog and anonymous client-side identifiers) requires prior consent via our Telemetry Consent Banner before any identifier is stored or events are transmitted. You can grant, decline, or modify this choice at any time via the in-app Privacy Settings toggle (accessible via the toolbar or footer).
- Crash Reports: With telemetry consent, an application crash sends the error message, stack trace and a diagram summary (block count, connection count and block types) to PostHog. Parameter values and model contents are not included.
- Diagnostic Bug Reports: If you use the in-app feedback dialog to report a bug, including an anonymized diagram structure is strictly opt-in and strips all sensitive parameter strings.
4. AI Assistant, MCP Server & Collaboration
Some optional features do leave your browser. Each is used only when you invoke it:
- In-app AI Assistant: your chat messages and the diagram context the assistant needs are sent through our server function (hosted on Netlify) to Google's Gemini API to generate a reply. We do not store these conversations; Google processes them under its Gemini API terms.
- Remote MCP server (
blockwerk-mcp-worker.blockwerk.workers.dev, hosted on Cloudflare Workers in Cloudflare's global network): when an external AI assistant such as Claude or ChatGPT connects to BlockWerk, it sends the tool calls it makes — diagram structure, block parameters and simulation settings. We use no account, name or email address for this.
- Without pairing, the server keeps a scratch diagram for that connection in Cloudflare storage. It is identified by the connector id in the URL, or otherwise by a salted hash of your IP address and browser user agent; the raw IP address is not stored. The scratch diagram is deleted automatically after 24 hours without a call.
- With pairing (the Connect AI panel), tool calls are forwarded end-to-end encrypted through our relay (PartyKit, on Cloudflare) to your own open BlockWerk tab and executed there. The relay cannot read them. To route them, a pairing record linking your device token to your session is kept on Netlify for up to 2 hours. You can revoke the token from the same panel at any time.
- Cloudflare keeps short-lived request logs for operating and debugging the server.
- Your AI provider: what you type into Claude, ChatGPT or another assistant, and what our tools return to it, is handled under that provider's own privacy policy.
- Real-time collaboration: when you start or join a shared session, diagram changes are relayed between participants through our PartyKit server (on Cloudflare).
- Local Agent API: commands sent through the in-page scripting API execute in your browser only.
5. Data Retention & User Rights
Because your data is saved locally in your browser's IndexedDB:
- You have complete control over your files. Clearing your browser cache or IndexedDB deletes local projects.
- MCP scratch diagrams are deleted after 24 idle hours and pairing records after 2 hours, as described in section 4. We sell no data and share none with third parties beyond the service providers named on this page.
- To have server-side data removed sooner, or for any other privacy request, email the address in section 6.
- You can export and import your projects anytime as standard JSON files via the
exportJson() / loadJson() functions.
6. Security Contact
If you discover a potential vulnerability or have security/privacy concerns, please contact our team at blockwerk.tech@outlook.com or refer to our security.txt.