Privacy Policy
This Privacy Policy explains how OpenQR Studio processes the information and files you enter when generating, customizing, and exporting QR codes, based directly on the verified source code of the application.
A. Introduction
OpenQR Studio is an open-source web application designed with a privacy-conscious architecture. Because QR codes frequently contain personal or sensitive details—such as vCard contact cards, Wi-Fi network passwords, phone numbers, or private links—the application is engineered to perform QR payload generation, visual styling, logo embedding, and file export operations directly within your web browser rather than on an application backend server.
This policy describes what information the application processes in your browser, how uploaded logos and browser storage mechanisms are handled, and the distinction between client-side application logic and standard web hosting infrastructure.
B. Information We Process
Depending on which QR code type and design options you choose, you may enter or select the following categories of information in the OpenQR Studio interface:
- QR Payload Content: Website URLs and multiline plain text in any UTF-8 language.
- vCard Contact Information: Names, organization, job title, phone numbers, email address, website, physical address, and notes.
- Wi-Fi Network Details: Network SSID, encryption type (WPA, WEP, or Open), Wi-Fi password, and hidden network status.
- Email, Phone & SMS Data: Recipient email addresses, subjects, telephone numbers, WhatsApp numbers, and pre-filled message bodies.
- Location & Calendar Data: Geographic coordinates (latitude, longitude, location label) and iCalendar event titles, dates, times, locations, and descriptions.
- Social, Custom & Logo Inputs: Social media profile handles/URLs, raw custom payload strings, and uploaded logo image files.
In the verified application code, all of the information listed above is held in active in-memory React component state (React.useState) while you interact with the page so the application can validate your input, render the live QR preview, and generate your requested export files.
C. Local Processing
The following operations execute client-side inside your web browser:
- QR Payload Generation & Validation: Formatting your input into URL, vCard 3.0, Wi-Fi, mailto, tel, sms, geo, WhatsApp, social, iCalendar, or custom strings and checking field validity.
- Live Rendering & Design Customization: Applying module patterns, solid colours, linear and radial gradients, corner finder styles, quiet-zone margins, and error correction levels via client-side SVG DOM generation.
- Scanability Analysis: Calculating relative luminance contrast ratios, quiet-zone compliance, and estimated QR version capacity.
- Export & Clipboard Generation: Serializing standalone SVG vector files, rasterizing PNG and JPEG images via the browser's HTML5
<canvas>API, and copying PNG blobs or payload strings to your system clipboard when you click the copy buttons.
Important Scope Clarification: Client-side processing applies to how OpenQR Studio generates and exports QR codes in your browser. It does not govern the external websites, platforms (such as WhatsApp, Google Maps, or social networks), or mail/phone services that a user's device connects to after scanning a QR code you have created.
D. Uploaded Logo Files
When you select a logo image (PNG, JPEG, WebP, or SVG up to 2 MB) in the Logo tab:
- The file is read locally in browser memory using the browser
FileReaderAPI (readAsTextfor SVG files;readAsDataURLfor raster images). - Uploaded SVG files are parsed and sanitized locally in your browser, then encoded as an in-memory base64
data:image/svg+xml;base64,...URI. Raster images are held as in-memory base64data:image/...;base64,...URIs. - Uploaded logo files are not uploaded or transmitted to an OpenQR Studio server.
- The in-memory logo data URI is retained only for the duration of your active page session and is discarded immediately when you click Remove Logo, click Reset Design, refresh the page, or close the browser tab.
E. Browser Storage
Based on inspection of the OpenQR Studio codebase and runtime dependencies, browser storage mechanisms are used as follows:
- • localStorage: OpenQR Studio does not save your QR payloads, form inputs, design customizations, or uploaded logos in
localStorage. The application uses thenext-themesprovider solely to store your interface appearance preference ("light","dark", or"system") under thethemekey inlocalStorage. - • sessionStorage: Not used by the application code.
- • IndexedDB: Not used by the application code.
- • Cookies: OpenQR Studio's application code does not set or read cookies.
- • Cache Storage & Service Workers: OpenQR Studio does not register a service worker or write user payloads to the browser Cache Storage API.
Browser & System Note: Your web browser, operating system, browser extensions, autofill features, download history, or system clipboard (when you explicitly use Copy QR Image or Copy Payload) operate independently of OpenQR Studio and may cache assets or retain data according to your device and browser settings.
F. Network Requests and Third Parties
To provide an accurate technical picture, this policy distinguishes between three separate layers of operation:
1. Local Application Processing of QR Content and Uploaded Logos
Once the OpenQR Studio web application has loaded in your browser, entering QR payload data, uploading a logo image, customizing design settings, and exporting PNG, JPEG, or SVG files occur locally in your browser memory. The application includes no third-party analytics scripts, advertising pixels, or telemetry SDKs, and makes no application network requests carrying your QR payloads or uploaded logos to any external service. Application typography (Geist Sans and Geist Mono) is bundled locally at build time rather than requested from an external font CDN at runtime.
2. Ordinary Network Communication Required to Load the Hosted Website
When you navigate to a hosted deployment of OpenQR Studio in your browser, your device performs standard HTTP/HTTPS network requests to download the website's static HTML pages, CSS stylesheets, JavaScript bundles, web app manifest, and bundled font files so the application can run in your browser. Similarly, if you click an external link on the site (such as a link to https://github.com/milindajay/OPEN_QR), your browser connects directly to that external destination.
3. Potential Connection Metadata Processing by Hosting Providers, CDNs, or Other Infrastructure
During the ordinary HTTP/HTTPS requests required to load the hosted website, the underlying web hosting provider, Content Delivery Network (CDN), DNS resolver, or network infrastructure necessarily receives standard connection metadata—such as your IP address, requested page URL, timestamp, and browser user-agent header—to route and deliver the site's files.
Infrastructure Verification Limitation: Because OpenQR Studio is an open-source software project that can be self-hosted or deployed on third-party hosting platforms configured outside this source repository, the application source code cannot verify or control how a specific hosting provider or CDN configures server access logs, IP address logging, log retention periods, or infrastructure-level privacy terms. We do not make unverified claims regarding hosting-provider log retention or infrastructure-level anonymity.
G. Data Retention
OpenQR Studio does not maintain a backend database and does not retain your QR payloads or uploaded logo files after your browser session ends:
- Temporary In-Memory State: Entered form values and logo data URIs exist only in browser memory while the tab is open and are cleared when you reset the form, refresh the page, or close the tab.
- Temporary Download Blobs & Canvas Buffers: When you download a PNG, JPEG, or SVG file, the application creates a temporary local
Blobobject URL (URL.createObjectURL) and revokes it automatically (URL.revokeObjectURLafter 250 milliseconds). Temporary offscreen HTML5<canvas>elements used during raster export have their dimensions reset to0×0immediately upon completion. - Downloaded Files & Clipboard: Any PNG, JPEG, or SVG files you download to your device and any images or text you copy to your clipboard remain stored locally on your device until you delete or overwrite them.
H. Security
OpenQR Studio implements defensive client-side security controls in its codebase:
- SVG Logo Sanitization: Uploaded SVG files are checked for XML entity declarations (
<!ENTITY/<!DOCTYPE), parsed viaDOMParser("image/svg+xml"), inspected to reject forbidden elements (<script>,<foreignObject>,<iframe>, SMIL animation tags), inlineon*event handlers, external URLs, and unsafe CSS rules, sanitized withDOMPurify, and encoded as a base64 data URI so raw uploaded SVG markup is never injected directly into the page DOM. - Scheme & Input Validation: Website and social URL fields validate protocols and block executable schemes such as
javascript:anddata:. - Export Verification: Generated PNG, JPEG, and SVG files are inspected before download to verify binary headers, pixel dimensions, and absence of unsafe script or external URL constructs.
Responsible Use Reminder: No software or browser environment can guarantee absolute security. Because static QR codes can be read by anyone with a camera, avoid placing QR codes that contain sensitive passwords or private personal data in public areas, and ensure your own device and browser extensions are trustworthy.
I. Children's Privacy
OpenQR Studio is a general-audience utility tool that does not offer user accounts, community profiles, or data collection forms, and does not knowingly collect or store personal information from anyone, including children.
J. Policy Changes
This Privacy Policy may be updated if the functionality or technical behaviour of OpenQR Studio changes. Any updates will be published on this page and committed to the public source repository with an updated revision date.
K. Contact and Project Information
OpenQR Studio is an open-source project maintained on GitHub. If you have questions about this Privacy Policy, wish to inspect the source code, or want to report a technical or privacy issue, please visit the official GitHub repository:
L. Last Updated
This Privacy Policy was last updated on November 7, 2026.