Privacy Policy
Last updated: 2026-10-14
This Privacy Policy explains how JAMDEV LTDA ("Nexframe", "we", "us") collects, uses, and protects your information when you use Nexframe (the "Service"). We are the data controller. We follow Brazil's LGPD (Lei Geral de Protecao de Dados) and apply equivalent protections to users elsewhere.
1. What we collect
Account data. When you sign in with Google, we receive your name, email address, and Google account identifier. We use these to create and identify your account.
Email sign-in. If you sign in with a link sent to your email instead of Google, we store your email address to create and identify your account. Until the link is used, we also keep a hash of the one-time link (never the link itself), which expires in 15 minutes, together with the campaign fields and referral code of the browser that asked for it. That record is deleted when the link is used, and expired ones are deleted the next time anyone asks for or uses a sign-in link. The email is delivered by Resend.
Checkout reminder. If you open the checkout for the monthly plan and it expires without a payment, we keep a record of it with your account (the checkout id and when it expired). We may send you one email about it, never more than one, and never if you have subscribed. Every such email has an unsubscribe link, and we keep the date you used it so we don't write to you again.
Product emails. We may send occasional emails about your account and the product to the address you signed up with (legitimate interest). Every such email has a one-click unsubscribe link, and we keep a record of which of these emails we sent you and the date you unsubscribed, so we don't write to you again.
Free sample. When you receive the free sample thumbnail, we store with your sample record a salted, truncated hash of your IP address (never the IP itself). It is only compared with the samples other accounts received in the previous 7 days, so the same device or network cannot claim the sample again under a new account. It is deleted with your account.
Invite a friend. Your account gets a random invite code the first time you open the Studio. If you created your account through a friend's link, that friend's code is stored with your account, and when you receive your free sample or make your first paid purchase we record which reward it gave to whom. To stop people from inviting themselves, the salted IP hash kept with free samples (above) is compared between the two accounts. Your friend sees only counts (friends who joined, made their free thumbnail, bought), never who you are.
Linking Discord. When you link your Discord account with a code from the Studio, we store your Discord user ID and username with your Nexframe account (so the bot can generate for you and the Studio can show the link), and a hashed copy of each link code, which works once and expires. Your Discord account's creation date is read from its user ID to check bonus eligibility; it is not stored.
Thumbnail tester. The quick check on the thumbnail tester page runs in your browser and sends nothing to us. If you ask for the full report or a comparison, a reduced copy of your image (at most 768x432 pixels) is sent to our server and to Google (Gemini API, on our key) to read it, and we do not store the image. With your account we store a fingerprint of the copy (a SHA-256 hash), what was read from it (where the subject, faces and text are, the text written on the image and short descriptions), the pixel measurements and the date - so the same image gets the same result and the daily limit can be counted. If you sign in from the tester, your image waits in this browser's own storage, not on our servers, for up to an hour until the report runs.
Payment data. Subscriptions and one-time purchases are processed by Stripe. We do not receive or store your full card number. We store a Stripe customer reference and your subscription status so we can grant access; for the Nexframe Credits plan we also store your level, your remaining monthly credits and your renewal date.
Your Gemini API key (BYOK).
- On the website, your key is used only in the moment of a request to relay it to Google's API. It is not stored, not logged, and not persisted on our servers.
- On the Discord bot, only if you explicitly opt in by connecting your key, we store it encrypted at rest (AES-256-GCM) so the bot can generate on your behalf. The encryption key is held separately from the database. You can delete your stored key at any time with
/desconectar, which removes it immediately.
Discord data. If you use the Discord bot, we process your Discord user ID and server-membership status to verify eligibility and apply your quota. We do not store the content of your messages.
Generation and usage data. We store your credit balance, subscription status, loyalty tier (months accumulated), and quota counters. We do not retain the thumbnails you generate on the website, except images you explicitly opt in to the public showcase.
Showcase images. A generated image becomes visible in the public showcase only when you opt that specific image in and we approve it. Until both happen, it is not published.
2. Why we use it (legal bases)
- To provide the Service - create your account, run generation, grant access, apply quotas (performance of a contract).
- To process payments and prevent fraud (contract and legitimate interest).
- To operate the community and showcase with your consent for any published image (consent).
- To secure the Service and comply with legal obligations.
We do not sell your personal data, and we do not use your API key or generated content to train models or for any purpose other than delivering the Service.
3. Who we share it with (subprocessors)
We share data only as needed to run the Service, with:
- Google (Gemini API) - image generation, via your key.
- Stripe - payment processing.
- Discord - the community and the bot.
- Our hosting provider - to run the servers.
- Cloudflare - serves the site and routes email to our contact address.
- Resend - delivers the sign-in link emails, the checkout reminder and our occasional product emails (your email address and the message).
- Google Ads - advertising measurement only.
- Meta (Facebook and Instagram) - advertising measurement only.
Each processes data under its own terms.
3b. Cookies we set ourselves
These are first-party cookies, set by our own site. We do not send them to third parties. The one exception is the Google click identifier, for visitors who allowed advertising measurement (section 3c).
nex_utm(90 days) - set when you arrive from a link or an advertisement, with the campaign fields present in the URL -utm_source,utm_medium,utm_campaign,utm_content- and the click identifiers the platforms append (gclid,fbclid,twclid).nex_ref(60 days) - the partner or friend invite codes (at most 3, in the order you arrived), when you arrive through a partner or invite link. When your account is created, the first code that belongs to an active partner or to a Nexframe account is stored with it, so that partner can be paid a commission on your payments, or your friend and you can receive invite credits. They see only totals, never who you are.nex_entrada(30 days) - set when you first open one of our guide pages, such as the Roblox thumbnail maker or size guide, and holds only the path of that page, so we can count which guides lead people to their first thumbnail.nex_visita(until midnight UTC) - set when you view the guide page that first brought you here; it holds only the date, so that visit is counted once per day in our own funnel, without your identity.nex_fuga(1 day) - set when you leave an in-app browser (such as Instagram's or Facebook's) through our "Open in Chrome" or "Open in Safari" button; it holds only the platform (androidorios) and is deleted when you then sign in with Google, so we can count, without your identity, whether that button works.nx_chat(24 hours) - set when you open the sales assistant chat; it holds only the value1, so a chat opened is counted once per browser per day in our own funnel, without your identity.nx_cadastro(15 minutes) - set when your account is created; it holds only our internal account identifier (a random code, not your email), so the page can send the "account created" event once (section 3c); the page deletes it once that event is sent, or it expires. It is readable by the page's own script.nx_anuncio(1 day) - holds only "sim" or "nao": whether the advertising tools of section 3c may run in this browser (your banner choice, or your 'Do Not Sell or Share' choice). It is read when your account is created and stored with it, and it decides whether the upload described in section 3c may include you. It is readable by the page's own script.nex_amostra(1 year) - holds only the value1, set when this browser receives the free sample, so the sample is given once per browser.nex_link(15 minutes) - holds the one-time sign-in token between opening the email link and tapping the sign-in button; it is deleted when you tap it.
nex_utm and nex_ref exist to answer one question - which link or advertisement brought you - and they are copied into your account record only at the moment the account is created, never rewritten afterwards. The guide-page, visit, in-app-browser, and chat cookies are never copied into your account: they are only counted, without your identity, in our own funnel. Every cookie in this list is SameSite=Lax, and all of them except nx_cadastro and nx_anuncio are HttpOnly, so no script on the page can read them. Signing in also sets the session cookies of our sign-in library, which keep you signed in.
3c. Advertising and analytics
We advertise, and we use the measurement tools of the platforms below to learn which advertisement brought someone here:
- Google Ads
- Meta (Facebook and Instagram)
They receive only the events this site fires: a page view, and - when they happen - an account created, a free trial started (your first image delivered), a checkout started, and a subscription purchased, with the amount charged and the currency. No other events are sent by the page (for Google Ads, see also the upload described below). On Meta, automatic event collection (button clicks and form fields) is switched off in the platform settings. The Google tag is set up without enhanced conversions and without any user-provided data. When you arrive from a Google ad, Google's tag may also keep that ad's click identifier in a cookie on Google's own domain that is partitioned to this site (it cannot be read on other sites).
Each event also carries what the platform's tag attaches on its own: the address and title of the page (and, for Meta, its description and your time zone), the page you came from, your screen size, and a random browser identifier kept in a first-party cookie (for Meta: _fbp, and _fbc when you arrive from one of its ads; for Google: _gcl_au, and _gcl_aw when you arrive from one of its ads). As with any web request, your IP address and browser type reach the platform too. That is why, where the law requires consent, the tag waits for yours.
They do not receive your email address, your name, or your phone number, hashed or otherwise: we do not use advanced matching or enhanced conversions.
Consent before measurement. If you are in the EU, the UK, the EEA, or Switzerland, these tools start denied and nothing is sent until you accept in the banner.
Click identifier uploaded to Google Ads. If you arrived from a Google ad and advertising measurement was allowed in your browser when your account was created (in the EU, the UK, the EEA, and Switzerland, only if you had accepted in the banner; anywhere, never after 'Do Not Sell or Share'), we may upload to Google Ads ourselves the Google click identifier (gclid) of that ad click, with the time your account was created and, for your first purchase only, its time and amount. Nothing else goes with it: no email, name, or account number.
We do not sell your personal information for money. Some advertising measurement may count as 'sharing' under California law; you can opt out at any time with the 'Do Not Sell or Share My Personal Information' link in the footer.
4. International transfers
We operate from Brazil, and our subprocessors may process data in other countries. Where personal data is transferred internationally, we rely on the safeguards permitted by the LGPD and, where applicable, equivalent mechanisms.
5. Retention
We keep account, subscription, and balance data for as long as your account exists and as required to meet legal and accounting obligations. Your stored Discord key is kept only until you disconnect it. Showcase images are kept until you or we remove them. When you delete your account, we delete or anonymize your personal data except what we must retain by law.
6. Your rights
Under the LGPD (and comparable laws), you may request to: confirm whether we process your data; access it; correct it; delete it; port it; withdraw consent; and object to certain processing. To exercise these rights, contact us at contato@nexframe.art. You may also disconnect your stored key at any time via the bot, and cancel your subscription at any time in the Service.
7. Security
We protect your data with encryption in transit, encryption at rest for stored keys (AES-256-GCM with a separately held encryption key), access controls, and the principle of never storing what we do not need - most importantly, your website API key, which is never persisted. No system is perfectly secure, but we design to minimize what could be exposed.
8. Children
The Service is not directed to children under 13 (or the minimum age of digital consent in your country). We do not knowingly collect their data. If you believe a child has provided us data, contact us and we will delete it.
9. Changes
We may update this Policy. Material changes are reflected by the "Last updated" date and announced where appropriate. Continued use after changes means you accept the updated Policy.
10. Contact
Questions or data-rights requests: contato@nexframe.art - JAMDEV LTDA, data controller.