1. Who we are and how to contact us
NOLO is an independently operated AI assistant, built and maintained by one person. It is available as a web app at nolo-app.com, a website at landing.nolo-app.com, an Android app distributed through Google Play (package app.nolo.ai), and a directly downloadable Android APK.
For the purposes of the EU General Data Protection Regulation (GDPR) and the UK GDPR, the operator of NOLO is the data controller for the processing described here.
For privacy questions, data access or deletion requests, complaints or security reports, write to nolo.ai.app@gmail.com. That is the fastest route and it reaches a real person. If you contact us, we process your email address and the content of your message in order to answer you. We have not appointed a Data Protection Officer, because NOLO's scale and processing do not meet the conditions in GDPR Art. 37.
The controller's full name and postal address are set out in section 21, at the foot of this page.
2. What this policy covers
This policy covers the NOLO website, the web app, the Android app on Google Play, the standalone APK, subscriptions, AI chat, file and image processing, voice dictation, web search, live-data widgets, exports and the optional Google Drive sync.
It does not govern the independent processing carried out by the companies named in section 7 when they act as controllers in their own right (for example Google for your Google account, Stripe for payment fraud prevention, Google Play for your purchase). Their own policies apply to that processing, and we link to each of them.
3. How NOLO is built, in one paragraph
There is no sign-up. When you first open NOLO, your browser generates a random identifier that looks like nolo_a1b2c3. That string is your entire identity: it is not derived from your device, your email or your IP address, and it means nothing outside NOLO. Your conversations are written to your browser's own storage (localStorage and IndexedDB) and stay there. When you send a message, your browser posts it to NOLO's own API, and NOLO's server, not your browser, forwards the part needed to answer to an AI provider. That relay is deliberate: it means the AI provider sees a request from a server in Vercel's pool, with no user identifier and no IP address of yours. There are three exceptions to that rule, and they are listed in section 8 rather than buried.
4. Data categories NOLO processes
| Category | What it actually is | Why |
|---|---|---|
| Anonymous app identifier | A random string such as nolo_a1b2c3, generated in your browser. Not linked to a name, email, phone number or device identifier. | Daily usage limits, plan entitlement, abuse prevention, and linking a subscription to the device that bought it. |
| Conversation content | Your messages, the recent conversation context, files and images you attach, image prompts, URLs you paste, and voice clips you record. | Producing the answer or performing the task you asked for. Relayed to AI providers in real time; never written to a NOLO database. |
| Local app data | Chat history, projects, spaces, saved memories, generated-image gallery metadata, settings and preferences. | Kept in your browser storage so your workspace survives a reload. Never uploaded to NOLO. |
| Usage counters | Per day and per anonymous ID: number of credits consumed, number of images generated, which model tier answered, and your plan. | Enforcing daily allowances and detecting cost abuse. Contains no message text. |
| Subscription state | Your plan (free / plus / pro), subscription status, Stripe customer ID (web) or Google Play purchase token and product ID (Android). | Giving you what you paid for and removing access when a subscription ends. |
| Hashed IP counters | A SHA-256 hash of your IP address, truncated to 14–16 hexadecimal characters, with a daily request count. Stored per feature (chat, transcription, feedback, account creation). | Rate limiting and abuse prevention without keeping IP addresses. See the honest caveat in section 18. |
| Feedback you send | The text you type into the feedback box, an optional 1–5 star rating, where in the app you opened it from, your plan tier and your interface language. | Improving NOLO. Stored with no identifier attached: not your anonymous ID, not your IP, not an email. |
| Optional Google account identifier | Google's opaque account identifier (the OpenID sub, a numeric string) if, and only if, you switch on Drive sync. Not your email, name or profile picture. | Deriving, in your browser, the key that encrypts your sync file. Never sent to or stored on NOLO's servers. See section 10. |
| Technical and hosting data | Handled by our host: IP address, timestamp, requested path, status code, user agent, and any runtime error output. | Serving the request, security, debugging and abuse prevention. See Vercel in section 7. |
| Payment data | Card details, billing address and tax data, handled entirely by Stripe or Google Play. NOLO's servers never see or store a card number. | Taking payment, preventing fraud, and meeting tax and accounting obligations. |
| Support email | Your email address and whatever you write to us. | Answering you. |
5. What stays on your device
Your conversation archive lives in your browser's localStorage and IndexedDB: chat history, projects, spaces, memories, gallery entries and settings. NOLO has no server-side copy of any of it and no way to reconstruct it.
- Incognito chats are not written to storage at all. They exist only in memory and disappear when the chat is closed.
- App lock can put NOLO behind your device fingerprint or PIN. This protects the app's screen; it does not encrypt the underlying browser storage.
- If you clear browser data, switch browser or device, reset the app, or uninstall it, local history is gone. We cannot recover it, because we never had it.
- Local storage is not the same as end-to-end encryption. Anyone with access to your unlocked device or browser profile, and software with access to your browser storage, can read it.
6. What NOLO's own servers store
This is the complete list. Everything below lives in one PostgreSQL database hosted by Supabase and is keyed on your anonymous ID or on a hashed IP, never on a name, email or IP address in the clear.
| Table | Every field it holds | Deleted after |
|---|---|---|
nolo_users | Anonymous ID, plan, subscription status, Stripe customer ID (web subscribers only), Google Play purchase token and product ID (Play subscribers only). | Kept while you use NOLO; deleted on request. See section 15. |
nolo_daily_usage | Anonymous ID, date, credits consumed, plan. | 30 days, by an automated nightly job. |
nolo_daily_images | Anonymous ID, date, images generated. | 30 days, by the same job. |
nolo_window_usage | Anonymous ID, time window, credits consumed. | 7 days. |
nolo_ip_limits | Truncated salted hash of an IP address, date, request count. No IP address in the clear. | 7 days. |
nolo_processed_webhooks | Payment event IDs already handled, so a repeated webhook cannot double-charge or double-grant. | Retained for billing integrity. |
| Feedback | Your message, optional star rating, where it was opened from, plan tier, interface language, timestamp. No identifier of any kind: not your anonymous ID, not an IP, not a hash. | Kept until reviewed and deleted. |
What is not in that list, and never will be: the text of your messages, the answers, your files, your images, your voice clips, your email address, your name, your IP address in readable form, or any advertising or cross-site identifier. NOLO's code has an internal rule against logging user content; console output records lengths, hashed IDs, counters and timings only.
7. Every company that receives your data
These are NOLO's processors and sub-processors. The list is exhaustive as of the date at the top of this page. "Sees your IP" means the provider receives your device's IP address rather than our server's.
AI models
| Provider | What it receives | What it keeps | Sees your IP |
|---|---|---|---|
| Groq, Inc. (United States) Privacy policy |
Your message plus the part of the conversation needed to answer, and any web-search results attached to it. Also your voice recordings when you use dictation, and short internal classification requests. Runs the open-weights models used by the Fast and Plus tiers and the Whisper speech-to-text model. | Nothing. NOLO's Groq account has Zero Data Retention enabled globally, which overrides every per-API setting, so inputs and outputs are not logged at all. Without that setting Groq would be entitled to keep them for up to 30 days for reliability and compliance, which is why we switched it on. | No |
| Fireworks AI, Inc. (United States) Privacy policy |
The same conversation content, when you use the Pro tier's large-context model, and any image you upload for the assistant to look at (all tiers use Fireworks for image understanding). | Fireworks states that it does not log or store prompt or generation data for open models without explicit opt-in, and does not use inputs to train its models without opt-in. NOLO has not opted in. | No |
| fal, Inc. ("fal.ai") (United States) Privacy policy |
The text prompt when you generate an image, and the source image when you ask for an edit. fal runs the proprietary image model on NOLO's behalf, which means the model's own operator also processes the prompt. | fal states that it collects the prompts and content submitted to it. The generated image is stored on fal's media CDN and its link expires after roughly an hour. | Yes, see section 8 |
The honest version of "zero data retention". Zero retention is a setting somebody has to switch on, not a law of physics, so here is the state of each one rather than an average. Groq: NOLO has Zero Data Retention enabled at account level, so nothing is logged. Fireworks: applied to open models by default, which is all NOLO runs there. fal: does not offer it, and states that it collects the prompts submitted to it. So for chat, web search and voice dictation the content really is discarded once the answer is delivered. For image generation it is not, and we would rather point at that single exception than let the other two carry it.
Search and live data
| Provider | What it receives | What it keeps | Sees your IP |
|---|---|---|---|
| Tavily (United States) Privacy policy |
Only the search keywords NOLO derives from your request, not your conversation. Used when you ask something that needs current information. | Tavily states it may use portions of query data to improve its own responses, and that when its index cannot answer, it may pass the query to third-party search index providers. | No |
| Open-Meteo (Germany), Finnhub (United States), CoinGecko, TheSportsDB, Photon / Komoot, Nominatim & Overpass (OpenStreetMap), Wikimedia Commons | Only the specific lookup: a city name for weather, a ticker symbol, a coin, a team, a place name, or an image filename. Requested by NOLO's server, not your browser. | Ordinary API request logs on their side, attributable to Vercel's server pool and not to you. | No |
| Google (favicon service) and DuckDuckGo (icon fallback) | The domain name of a site cited in a search answer, so a small icon can be shown next to it. Fetched by NOLO's server on purpose, because loading these directly would tell Google every site you read about. | Ordinary request logs, attributable to our server. | No |
Infrastructure
| Provider | Role | What it sees | Sees your IP |
|---|---|---|---|
| Vercel Inc. (United States) Privacy policy |
Hosting, global edge network, and the serverless functions that run every API call. | Every request to NOLO, including your IP address, timestamp, path, user agent and response status, in its platform logs. This is unavoidable for any hosted service. Vercel acts as our processor and retains these logs for the period set by its platform. | Yes |
| Cloudflare, Inc. (United States) Privacy policy |
Runs the code that lets a long answer finish after you close the app ("Keep answering when you leave", in Settings). Only used while that setting is on, and never in anonymous mode. | The content of that one chat, in the clear, for as long as the answer is being written: your message, the context sent with it, and the reply. The answer is produced on the server side, so there is no key we could keep from it. It is erased the moment your device confirms it has the answer, and self-destructs after 12 hours if nobody collects it. Turn the setting off and nothing is sent here at all. | Yes |
| Supabase Privacy policy |
The PostgreSQL database holding exactly the tables listed in section 6. | Only what is in those tables. No message content ever reaches it. | No |
Payments, distribution and optional sync
| Provider | Role | What it receives | Sees your IP |
|---|---|---|---|
| Stripe Privacy policy |
Payments for subscriptions bought on the web. | Your card details, billing information and payment history, directly. They never pass through NOLO. Stripe acts as an independent controller for fraud prevention and its legal obligations. NOLO stores only the resulting customer ID. | Yes (on Stripe's own checkout page) |
| Google Play Billing Google privacy policy |
Payments for subscriptions bought inside the Android app. | The entire purchase is handled by Google under your own Google account. NOLO receives only a purchase token and a product ID, and asks Google's servers once a day whether that subscription is still active. NOLO never sees your Google account, name, email or payment method. | Yes (Google handles the purchase) |
| Google Play (distribution) | Distributing the Android app. | Google collects its own data about the download, install and any crash reports under its own policy, and gives us aggregate, non-identifying statistics in the Play Console. We cannot see who you are from those. | Yes |
| Google Drive & Google Sign-In (optional) | The opt-in cross-device sync. | An encrypted file placed in your own Drive. See section 10 for the full detail. | Yes (your own Google account) |
We do not sell personal data, do not share it for cross-context behavioural advertising, and do not use it to build advertising profiles. There are no advertising SDKs, attribution SDKs or third-party trackers in NOLO.
8. What your browser loads directly from third parties
Almost everything is relayed through NOLO's own server so that third parties never see you. These are the exceptions, where your browser talks to another company directly and that company therefore receives your IP address and user agent. We list them because they are real, not because we are comfortable with them.
| Who | When | Why it is direct |
|---|---|---|
Google Fonts (fonts.googleapis.com, fonts.gstatic.com) | On every page load of the website and the app. | The interface typefaces are served from Google's font CDN. Google receives your IP address and user agent as a result. |
| Cloudflare cdnjs and jsDelivr | Only when you use a feature that needs a library: PDF reading, Word and Excel handling, maths rendering, charts, diagrams, maps, code highlighting, QR codes, file export. | These libraries are loaded on demand from public CDNs rather than bundled. The CDN sees your IP and which library you fetched, which loosely reveals which feature you used, though not its content. |
fal media CDN (*.fal.media) | When an image you generated is displayed. | The generated image is rendered straight from fal's CDN link. fal therefore sees your IP address at that moment. The link expires after about an hour. |
| Frankfurter (currency), Open-Meteo (sunrise and sunset), Nager.Date (public holidays), OpenStreetMap tiles (maps) | Only when one of those interactive widgets appears in a conversation and you interact with it. | These widgets refresh their own data in the browser. Each of those services sees your IP and the specific lookup: a currency pair, a coordinate, a country code, a map tile. |
You can verify all of this yourself in about thirty seconds: open NOLO, press F12, open the Network tab, and watch. Everything on this page is observable.
9. Analytics
NOLO runs Vercel Web Analytics and Vercel Speed Insights on the website and inside the app. We are naming this explicitly because "we have no analytics at all" would be untrue, and an earlier version of our transparency page said so.
- They record the page or route visited, the referring page, an approximate country, device and browser type, and page-performance timings.
- They set no cookies, create no persistent visitor identifier, and cannot follow you to other websites.
- They are served from NOLO's own domain (
/_vercel/insights/), so no request leaves for a third-party analytics domain. - They never see the content of your conversations, your anonymous ID, or anything you type.
- Vercel processes this on our behalf as our processor. Because it is aggregated, cookieless and non-identifying, we rely on legitimate interests rather than consent; if your local law requires a consent banner for it, tell us and we will add one.
NOLO's own former usage and visitor analytics have been retired and the code that wrote them has been removed.
10. Google Sign-In and Drive sync (optional)
NOLO offers an optional Google Sign-In so your chats can follow you between devices. It is entirely optional and NOLO is fully functional without it. If you never sign in, this section does not apply to you.
What NOLO asks Google for
openid, which returns Google's opaque account identifier (thesub). NOLO does not request your email, name or profile picture. If Google's standard response includes them, NOLO discards them immediately and never stores them.https://www.googleapis.com/auth/drive.appdata, which grants access restricted to NOLO's own hidden folder inside your Drive. This scope cannot read, list or modify any other file in your Drive. It is technically incapable of it.
What is stored in your Drive
A single encrypted file in that hidden folder, containing your chat sessions, settings, saved memories, projects and your anonymous ID (so your paid plan follows you across devices).
The file is encrypted in your browser with AES-GCM 256 before it is uploaded. The key is derived from your Google account identifier with PBKDF2 at 100,000 iterations, regenerated locally each session, and never transmitted to or stored on NOLO's servers. NOLO's servers never see the key, the plaintext, or even the fact that a sync file exists.
Google's Limited Use commitment
NOLO's use and transfer of information received from Google APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements. Specifically, NOLO does not transfer information received from Google APIs to third parties; does not use it for advertising, profiling or training AI models; and does not allow humans to read it, except with your explicit consent, to comply with applicable law, or as strictly necessary for security operations.
The honest caveat. Because the encryption key comes from your Google account identifier rather than a password only you know, this is strong protection but it is not zero-knowledge end-to-end encryption. If someone held both your encrypted file and your Google account identifier, they could derive the key. We cannot: we hold neither. But we will not describe this as end-to-end encryption, because it is not.
How to disconnect or delete it
- Sign out on this device: Settings → Account → Sign out. The token is revoked and syncing stops. Your encrypted file stays in your Drive so you can come back.
- Delete everything: Settings → More settings → "Delete all my data". This deletes the encrypted file from your Drive, revokes the token and wipes local data on the device.
- Revoke from Google: at any time, at myaccount.google.com/permissions. This works independently of NOLO.
11. Payments and subscriptions
On the web, payments go through Stripe. You are redirected to Stripe's own checkout; your card details are entered on Stripe's page and never reach NOLO's servers. NOLO stores the resulting Stripe customer ID against your anonymous ID so your plan can be recognised, and receives webhook events about the state of the subscription.
In the Android app from Google Play, payments go through Google Play Billing under your own Google account. NOLO receives a purchase token and a product ID and nothing else: no name, no email, no payment method. NOLO asks Google once a day whether that subscription is still active, and removes paid access when it is not. Google also sends NOLO real-time notifications when a subscription changes state.
In both cases the payment provider retains transaction and invoice records for as long as its own tax, accounting and anti-fraud obligations require. NOLO cannot delete those records on your behalf.
12. International transfers
NOLO is operated from the European Union, but most of its providers are established in the United States: Groq, Fireworks, fal, Tavily, Vercel, Cloudflare, Stripe and Google. Using NOLO therefore involves transferring data outside the European Economic Area.
These transfers rely on the European Commission's Standard Contractual Clauses and, where the provider is certified, on the EU–US Data Privacy Framework, together with the technical measures described throughout this policy, principally that your identity is not transferred at all, because there is none to transfer.
If you would rather not have your data processed in the United States, the honest answer is that NOLO is not the right tool for you today, and we would rather say so than bury it.
13. Legal bases for processing
| What we do | Legal basis (GDPR Art. 6) |
|---|---|
| Running chat, search, file and image features, and relaying your requests to AI providers | Performance of a contract, Art. 6(1)(b). |
| Usage counters, hashed-IP rate limits, abuse and fraud prevention | Legitimate interests, Art. 6(1)(f): keeping a free-to-start service financially viable and available. |
| Cookieless aggregate analytics | Legitimate interests, Art. 6(1)(f). |
| Optional Google Drive sync | Consent, Art. 6(1)(a), given by choosing to sign in. Withdrawable at any time. |
| Subscriptions, invoices, tax and accounting records | Contract, Art. 6(1)(b), and legal obligation, Art. 6(1)(c). |
| Answering support emails | Legitimate interests, Art. 6(1)(f), or contract where it concerns a paid plan. |
Where we rely on legitimate interests, you have the right to object. See section 15.
14. How long anything is kept
| Data | Retention |
|---|---|
| Your conversations | Never stored by NOLO. They live on your device until you delete them. |
| Message content at an AI provider | Not retained at Groq (Zero Data Retention is enabled on the account) and not retained at Fireworks. The exception is image prompts at fal, which does collect them. See section 7. |
| Daily usage and image counters | 30 days, deleted by an automated nightly job. |
| Rolling-window usage counters | 7 days. |
| Hashed-IP rate-limit counters | 7 days. |
| Your row in the users table (ID, plan, subscription state) | For as long as you use NOLO, then until you ask us to delete it. |
| Generated images on fal's CDN | Roughly one hour, after which the link expires. Your own copy stays in your local gallery. |
| Feedback messages | Until reviewed and deleted. They carry no identifier, so they cannot be traced back to you, which also means we cannot delete "yours" on request. |
| Encrypted sync file in your Drive | In your Drive, under your control, until you delete it. We have no copy and could not read one. |
| Hosting and error logs at Vercel | For the retention period of our hosting plan, then automatically discarded. |
| Payment and invoice records | As long as Stripe's or Google's legal, tax and accounting obligations require, typically several years, and outside our control. |
| Support emails | As long as needed to resolve the issue and keep a record of it. |
15. Your rights, and how to actually use them
Under the GDPR and comparable laws you have the right of access, rectification, erasure, restriction, objection, portability, withdrawal of consent, and the right to lodge a complaint with a supervisory authority. If you are in the EU you can complain to your national data protection authority; a list is at edpb.europa.eu.
Because NOLO holds almost nothing about you, most of these you can exercise yourself, immediately, without asking us:
- Erase your conversations, projects, memories and settings: Settings → More settings → "Delete all my data". Instant, and it also removes the encrypted Drive file if you use sync.
- Export your data: the export controls in the app produce a file from your local storage. That file is your data. There is no server copy to request.
- Erase your server record: email nolo.ai.app@gmail.com with your anonymous ID (Settings shows it) and ask us to delete it. We respond within 30 days and usually within a few days. If you have a paid subscription, cancel it first, because deleting the record ends your access.
- Object to legitimate-interest processing: write to us. In practice, opting out of usage counters means opting out of NOLO, because they are what makes daily limits possible. We will say so plainly rather than pretend otherwise.
- Withdraw sync consent: sign out in Settings, or revoke NOLO at myaccount.google.com/permissions.
There is a dedicated data-deletion page at nolo-app.com/delete-account.
The trade-off in being anonymous. Because we hold no email or name, we cannot verify that a data request comes from you. If you ask us to delete or disclose a server record, we can only act on the anonymous ID you supply. We will not hand over or delete a record belonging to an ID you cannot demonstrate is yours. That protection cuts both ways, and it is the price of not asking who you are.
If you are in California or another US state with a comparable law: NOLO does not sell or share personal information as those terms are defined, does not use it for cross-context behavioural advertising, and does not offer financial incentives for data. The rights described above apply equally, and we do not discriminate against anyone who exercises them.
16. Children
NOLO is not directed at children. You must be at least 16, or the minimum age for consent to data processing in your country if that is lower, and at least 18 to buy a subscription. We do not knowingly process data from anyone below that age. Because there is no account, we have no age verification beyond this statement and Google Play's own content rating, another limit we would rather state than imply away. If you believe a child has used NOLO and you want the associated server record removed, email us with the anonymous ID.
17. Security
- HTTPS everywhere, with HSTS and preloading.
- A strict Content Security Policy that limits which hosts the app may contact at all. Everything in sections 7 and 8 is listed there and enforced by your browser.
- Provider API keys live only in server environment variables and are never exposed to the browser.
- Cross-origin requests are restricted to NOLO's own domains.
- Rate limits on every expensive endpoint, keyed on a hashed IP.
- Sync payloads are encrypted client-side before they leave the device.
- A design rule against logging user content, applied throughout the codebase.
No internet service can promise perfect security. You remain responsible for your device, your browser profile, your exported files and any content you choose to submit. If you find a vulnerability, email nolo.ai.app@gmail.com. Reports made in good faith are welcome and will not be met with legal threats.
18. The honest limits
Every claim above has an edge. Here they are, collected in one place so you do not have to find them yourself.
- NOLO is not "zero logs". We keep pseudonymous usage counters for 30 days, and our host logs every request including your IP address. Without either, daily limits and abuse prevention would not work. "No content logs and no identity" is accurate; "zero logs" would be a lie.
- Hashing an IP is pseudonymisation, not anonymisation. Our rate-limit hashes use a fixed salt, so the same IP always produces the same hash. It cannot be reversed to an address by inspection, but someone who guessed an IP could confirm it. Those rows hold only a counter and a date, and are deleted after 7 days.
- Your IP and your anonymous ID are in the same request. When you send a message, our infrastructure necessarily sees both at once. We do not store them together and nothing writes that pairing to a database, but we cannot claim the pairing never exists.
- Drive sync is not end-to-end encrypted. Strong, yes. Zero-knowledge, no. See section 10.
- Local storage is not encrypted storage. Anyone with your unlocked device can read your chats.
- Three third parties do see your IP directly. Google Fonts, the two library CDNs, and fal's image CDN. Section 8 lists exactly when.
- We cannot audit our providers' internals. What section 7 reports is what each provider publicly commits to. We can prove what NOLO sends and to whom; we cannot prove what happens inside another company.
19. Professional, regulated and sensitive use
NOLO is useful for legal, compliance, business, medical-adjacent and research work, but it is not a law firm, lawyer, accountant, doctor, financial adviser or any regulated professional service. Using it creates no attorney-client relationship, no professional privilege and no duty of confidentiality equivalent to one owed by your own adviser.
If you intend to put client data, personal data of others, health data, trade secrets, privileged material or regulated information into NOLO, you are the controller of that data and you are responsible for confirming that doing so is lawful, authorised and compatible with your professional duties. Read section 7, decide whether that chain of providers is acceptable for your obligations, and do not paste anything you are not entitled to share with them. NOLO does not currently offer a data processing agreement or a business associate agreement; if you need one, email us before using NOLO for that work.
20. Changes to this policy
If we add, remove or replace a provider, this page changes and the date at the top changes with it. That is the commitment: the list in section 7 is meant to be complete at all times, not aspirational. Material changes will also be surfaced in the app or on the website. If you want to know what changed and when, ask us and we will tell you.
21. Legal identity
Operator of NOLO and data controller for the processing described above:
Vasile Eduardo PușcașuStr. Cireșar 14, Bragadiru
Județul Ilfov, Romania
nolo.ai.app@gmail.com
Published to satisfy the identification requirements of GDPR Art. 13, the EU Digital Services Act and EU consumer law. It is the same operator address registered with Google Play. For anything to do with NOLO, email is the right channel and will always get a faster answer than post.