Privacy
What this site collects
No account. No cookies unless you say yes. No tracking between sites. And whatever you type into a calculator never leaves your browser, because there is nowhere for it to go. This site is static files: there is no application server, no database, and no logging of your inputs anywhere, by anyone — consent or no consent, that part never changes.
The whole of what does happen is on this page. It is short because there is little to say. Last updated 9 August 2026.
The part people actually care about
A calculator page loads once and then runs entirely on your machine. Sheet sizes, wind loads, spans, glass build-ups, the cutting list you paste in — all of it is computed in JavaScript in your browser and none of it is transmitted. You can prove this to yourself: open your browser's network panel, fill a tool in and press everything. Two small beacons go out — one saying a page was opened, one saying a tool was used — and you can inspect both. Neither carries a single value from the form. That is not a policy promise we are asking you to trust; it is a property of how the site is built, and it is visible.
The same holds for the specification sheet. It is generated and printed by your browser. We never see a copy.
Cookies, and the one question we ask
By default, none. Nothing is stored on your device until you say yes. The one thing that would set cookies is Google Analytics, and it is loaded with every consent signal denied, so before you touch the banner it runs without storing any identifier at all.
If you press Allow, Google Analytics sets its cookies and can then recognise a return visit. If you press No, thanks, or simply ignore the banner, it stays in the denied state for good on that browser and we see only anonymous, unlinked pings.
There is no third option hidden behind a settings page, the decline button is the same size as
the accept button, and the banner does not come back to nag you. Your answer is remembered in
sf.consent.v1 in local storage — one word, on your machine.
No advertising cookies are set under any circumstance. Google's advertising signals and ad personalisation are switched off in the configuration, not merely left at their default, so consenting to analytics does not quietly enrol you in retargeting.
What is stored in your browser
At most two items, both written by this site to your own local storage:
That is the entire record. Neither is a cookie, neither is ever sent to us or to anyone else, and neither carries an identifier — the first is a flag saying "this browser has Pro", indistinguishable from anyone else's, and the second is your answer to the banner. You can delete the unlock from the unlock page, or clear this site's data to remove both, and nothing else about you exists to delete.
Analytics
These pages carry Cloudflare Web Analytics, a few hundred bytes that record that a page was viewed and how quickly it loaded. It uses no cookies, does not fingerprint your device, does not build a profile, and cannot follow you to another site. It never sees anything you type into a calculator.
What we can see from it is aggregate: how many people opened the wind-load tool this week, which country roughly, which page they arrived from, and whether the site is slow somewhere. Cloudflare's own account of how the product works is on their site.
Legal basis: our legitimate interest in knowing whether the site works and is used, which is a narrow interest served by data that does not identify you.
Google Analytics, and exactly what it records
Alongside that, the site loads Google Analytics 4, subject to the choice described above. It answers a question Cloudflare's tool cannot: not just which pages were opened, but what people did on them.
Four events are recorded, and this is the whole list:
Each carries the page path and nothing else. No event carries a value you typed. We record that the cutting optimiser was used; we do not record the sheet size, the cutting list, the customer, or any number on the screen. That is not a setting we could turn on later and forget to tell you about — those values are never passed to the tracker in the first place, and you can read the four lines of code that do it in /assets/js/analytics.js.
Google receives, as it does on any site using its tag, your IP address (truncated — IP anonymisation is on), your approximate location derived from it, your device and browser, and the referring page. Google acts as our processor for this; their terms apply, and the data goes to servers that may be outside the EEA under the transfer arrangements described below.
Legal basis: your consent, which you can withdraw at any time by clearing this site's data in your browser — after which the banner will ask again.
There is still no tag manager, no advertising pixel, no session recorder, no heatmap, no chat widget, no third-party fonts and no A/B testing tool.
Hosting
The site is served by Cloudflare Pages. Like every web server in existence, Cloudflare's edge processes the IP address of the request in order to deliver the page, and keeps short-lived operational logs for security and abuse prevention. We do not have access to a per-visitor log and we do not export one. Cloudflare acts as our processor; their privacy policy governs what they do at their layer.
Legal basis: legitimate interest in serving and protecting the site.
If you pay
The €29 payment is handled end to end by Stripe on Stripe's own pages. We never see your card number — it does not pass through this site at any point.
What we do receive from Stripe afterwards, and hold in Stripe's dashboard rather than on any system of ours: your name, your email address, your billing address, your VAT number if you gave one, the amount, the date and the last four digits of the card. We use it for exactly three things — issuing your invoice, answering you if you write to support, and meeting Spanish tax record-keeping duties. We do not add you to a mailing list. We do not sell or share it, and there is no marketing use of it at all.
Legal basis: performance of the contract for the invoice and support, and legal obligation for the tax records, which is also why we cannot delete an invoice on request — Spanish law requires those to be kept, generally for several years, and that duty overrides an erasure request for that specific document.
Stripe is an independent controller for the payment itself; see Stripe's privacy policy.
Transfers outside the EU
Cloudflare and Stripe are US-headquartered and operate globally, so some processing happens outside the European Economic Area. Both rely on the European Commission's standard contractual clauses and their published transfer frameworks for this. We have no separate arrangement of our own, and we send nothing to anyone else.
Who the controller is
For the analytics, the hosting and the customer records described above, the controller is Elam Uceda Herrero, trading as SyntaxFlow, Calle Fresnedillas 25, 28035 Madrid, Spain, reachable at soporte@huingenieros.com. The terms page carries the full trading identification.
Your rights
Under the GDPR you can ask us for a copy of what we hold about you, to correct it, to erase it, to restrict or object to its use, and to receive it in a portable form. Write to the support address and we will answer within a month; usually the same week.
Realistically, for most visitors the honest answer to a request will be that we hold nothing at all, because we do not. If you have bought Pro, what we hold is the Stripe record described above, minus the invoice we are obliged to keep.
If you think we have handled your data badly, you are entitled to complain to your national supervisory authority — in Spain, the Agencia Española de Protección de Datos. We would prefer to fix it first.
Children
This is a professional tool for the glass and construction trades. It is not directed at children and we do not knowingly collect anything from them.
Changes
If this page changes, the date at the top changes with it. If a change is ever material — if we started collecting something we do not collect today — it would be said plainly at the top rather than buried in a clause.
tool_used event, and not one
request carrying a number you entered. That is the policy, and it is checkable rather than
promised.