Privacy Policy
Last updated: 1 August 2026
Niffler is a personal link and note keeper. It is built and run by one person — Mario Canas, an individual in Spain, not a company — so wherever this policy says "we", it means him. He is the data controller, and his details are at the bottom of this page. Being one person rather than a company does not reduce his obligations to you: every right described below applies in full. We designed Niffler to collect only what is necessary to provide the service.
Information We Collect
- Account data: your email address and a unique user ID via Supabase authentication, together with the profile details the app keeps beside them — a profile picture if you set one, the avatar and accent colours assigned to your account, when the account was created, and the date and version of the Terms and of this policy that you accepted. If you sign in with Google or Apple instead of a password, we receive your email address from them. We never see your Google or Apple password.
- Content you add: bookmarks, notes, categories, tags, cover images.
- Device and server logs: Technical logs kept to troubleshoot and operate the service. These include errors and warnings, and also routine request records — for example your search query text and a partial user identifier are written to our server logs each time you search. Your IP address appears in the request records our hosting, file-storage and rate-limiting providers keep; it is what makes it possible to deliver a page to you at all, and it is what our rate limiting counts against. We do not operate a log store of our own — these records live in our providers' systems and expire under their retention, which is measured in days. See Data Retention.
- Recent searches: your last few search queries (currently four) are saved to your account, not just to the device you typed them on, so that the search box can offer them again wherever you sign in. They are readable only by you, they are included in your data export, and the Clear button in the search panel removes them from every device.
- PWA data: offline cache and localStorage to improve performance and reliability.
- Browser extension data: if you install the Niffler extension for Chrome, it reads the address, title and any text you have selected on a page only at the moment you ask it to save that page, and sends them to your Niffler account. See The Browser Extension below.
- Google Calendar data: When you choose to connect your Google Calendar, we access calendar names, event titles, descriptions, locations, and date/time information from calendars you select for syncing.
- AI Assistant interactions: When you use the AI assistant (Mr. Niffs), your message and relevant content from your account are sent to OpenAI to generate a reply. We do not store your conversations — the transcript exists in the app on your device until you close it, and is not written to our database. The assistant accesses your existing bookmarks, notes, tasks, events, and categories to answer your queries.
- AI-derived data about your content: To power search, we automatically generate and store additional data about the items you save — a numerical representation of their meaning (an "embedding"), and for saved links and images a summary, key points, topics, keywords, an estimated reading time, and any text visible in an image. For a saved link we also store an extract of the page's own text (up to roughly 10,000 characters) so it can be searched. See Automatic AI Processing below.
- Waitlist entries: If you ask to be invited to Niffler, we store the email address you give us, the time you submitted it, and which app you submitted it from (the website, the iOS app, or the browser extension). Nothing else is collected at that point — joining the waitlist does not create an account. See Waitlist and Invitations below.
- Leaderboard entries: If you play the game on our website and submit a score, we store the display name you type and your score. This is optional, requires no account, and the resulting leaderboard is public.
How We Use Information
We process your information based on the following legal bases:
- Performance of Contract: Authenticate you, maintain your session, and store your bookmarks, notes, and related content to provide the core service you signed up for. This is also the basis on which your content is sent to OpenAI to be indexed and summarised, because search is one of the things Niffler is for and it does not function without that step. We would rather be plain about the consequence than bury it: because the basis is contract rather than consent, there is no consent for you to withdraw here, and the only way to stop this processing is to stop saving things to Niffler. See Automatic AI Processing.
- Legitimate Interest: Provide features like offline access, share target, and real-time sync; keep server-side error and diagnostic logs so we can find and fix faults; protect the service against abuse through rate limiting. We do not run any analytics, advertising, or behavioural-tracking software.
- Consent: Add you to the waitlist if you ask to be invited, and connect your Google Calendar if you choose to. You can withdraw either at any time — see Waitlist and Invitations and Google Calendar Integration.
- Compliance with Legal Obligations: Retain certain data as required by law for security and accountability purposes.
Waitlist and Invitations
Niffler is currently invite-only. Two small records exist because of that, and neither of them is an account:
- If you join the waitlist, we store your email address, when you submitted it, which app it came from, and whether we have invited you yet. The legal basis is your consent, given by submitting the form. We use it for exactly one purpose: to contact you if and when a place becomes available. We do not use it for marketing, we do not sell or share it, and submitting the same address twice does not create a second record.
- If we invite you, your email address is added to an invitation list so that sign-up recognises it. The legal basis is our legitimate interest in controlling who can create an account while the service is closed. That record holds the address, when it was added, an optional private note for our own reference, and — once you sign up — which account used the invitation.
Neither list is reachable through the app or its public API. Both are held in a part of our database that is not published to the internet and can be read only by the operator.
Removing yourself. Because there is no account involved, there is nothing to log in to and delete. Email mario@mariocanas.com and we will erase your entry from either list. We keep waitlist entries until we invite you, until you ask to be removed, or until we stop operating a waitlist — whichever comes first. If we stop running the waitlist, we erase the outstanding entries rather than keeping them.
Data Storage and Security
- Infrastructure: We use Supabase (hosted on AWS) for authentication and the database. Our Supabase project runs in Supabase's West EU (London) region, so your account and your saved content are stored in the United Kingdom. Since 30 July 2026 the files you upload are held separately, with Cloudflare rather than Supabase — see How Your Files Are Stored and Served below. Several of our other providers operate in the United States — see International Data Transfers below.
- Security Measures: Every connection uses HTTPS. Access rules are enforced as row-level security policies inside the database rather than as checks in the app. Uploaded files sit in a private bucket, partitioned per account, that cannot be listed or browsed, and every request for one is authorised before any file is released. Two kinds of file are deliberately an exception, because they have to be readable by people who are not signed in as you: a file attached to a category you have chosen to make public, and your profile picture, which is served without a token so that it can appear to the people you share a space with. Both are reachable only at their own unguessable address. Sensitive operations are rate limited. We do not claim a formal audit programme, penetration testing or certifications — Niffler is one person's side project and has none of those. What we do have is described in detail on our Security page.
- Access Controls: Row-level security policies restrict data access to authorized users only. Files are released only after that same check: a private file requires your session on every single request, a file attached to a category you have chosen to make public is served to anyone holding its link, profile pictures are served without a token by design, and actions like copy-link or opening a PDF mint a signed link that expires.
- Limitations: While we take reasonable measures to protect your data, no method of transmission or storage is 100% secure. You use the service at your own risk.
How Your Files Are Stored and Served
The files you upload — images, PDFs and other attachments, the small preview thumbnails we generate from them, and your profile picture — are stored with Cloudflare, in a private storage bucket located in Cloudflare's Western Europe region. Everything else, including your account and the bookmarks and notes themselves, stays in the Supabase database described above. Files moved from Supabase to Cloudflare on 30 July 2026; the Western Europe setting is where Cloudflare places the bucket, which is a placement preference rather than a contractual guarantee that no copy is ever held elsewhere.
During the changeover, a second copy exists. Files uploaded before 30 July 2026 were copied to Cloudflare rather than moved, and the originals are still held in Supabase's storage in the United Kingdom while we satisfy ourselves that nothing was lost in the transfer. Those originals are not what the app serves you any more, and they are deleted along with everything else if you delete your account. They will be removed once that check is finished.
The bucket is private and cannot be listed or browsed. Every request for a file goes first to a small program of ours running on Cloudflare's network, which decides whether you may have it:
- What Cloudflare receives: the file itself; the storage path, which contains your account's user ID and the file's name; your IP address and the usual request details; and the session token your app presents, which that program verifies in order to make the decision.
- Authorisation happens first, on every request: a private file is never released on the strength of having been fetched before. Your session is checked each time, and only then is the file's content looked up.
- Copies are cached around the world: so that files load quickly wherever you are, Cloudflare keeps a copy of a file's bytes in the data centre that served the request. The main stored copy stays in Western Europe, but these temporary copies exist wherever your files are actually viewed from. They sit behind the same check — a cached copy of a private file cannot be reached without your session.
- Deleting a file: deleting an item removes the file from the bucket straight away and tells the cache to drop it. That instruction reaches the data centre handling the request; a copy sitting in a different data centre expires by itself rather than being purged, so for a period afterwards a cached copy may still exist. It is addressable only at that file's own unguessable URL, and for a private file, still only with your session.
- Logs: Cloudflare keeps short-term request logs for this service — time, path, response status, IP address — which we use to diagnose faults.
- Storage limits: the same program checks an upload against your account's storage allowance before writing it, which is why an upload can be refused when you are out of space.
Cloudflare acts as our processor here: it holds and delivers these files on our instructions and does not use them for its own purposes. Cloudflare, Inc. is established in the United States — see International Data Transfers below.
Two things this does not change. Your bookmarks, notes, tasks and calendar entries are not sent to Cloudflare — only the files attached to them. And the site icon shown next to a saved link still comes from Google or DuckDuckGo, fetched by your own device, exactly as described under Data Sharing.
Local Data
We use localStorage for preferences (e.g., language), offline actions, and share-target data; and service worker caches for faster loads. You can clear this via your browser settings.
Data Sharing
We do not sell your data. We never have and never will. We share data only with our infrastructure and service providers to operate the service:
- Supabase: For authentication and the database that holds your account and your saved content.
- Cloudflare: Stores the files you upload — images, attachments, thumbnails and profile pictures — and serves them through its global network, checking your session before releasing a private one. It receives the file contents, the storage path (which includes your user ID), and your IP address. See How Your Files Are Stored and Served above.
- Google and Apple (sign-in): If you choose to sign in with Google or with Apple rather than with a password, that provider authenticates you and tells us your email address. The exchange happens on their sign-in page, so they know you signed in to Niffler and when. We never receive your password. If you use Apple's Hide My Email, we only ever see the relay address, which works normally.
- Google Calendar API: When you connect your Google account, we access your calendar data through Google's API to sync events to Niffler.
- OpenAI: Content you save is sent to OpenAI's API to power search, link enrichment, and the AI assistant — this happens automatically for items you save, not only when you use the assistant. See Automatic AI Processing below for exactly what is sent and when. See also OpenAI's Privacy Policy.
- Vercel: Hosts and serves the web application. Vercel processes standard request data, including your IP address, in order to deliver the site.
- RevenueCat: Used by the iOS app to resolve which plan an account is on. Niffler is free and sells nothing, so no purchase or payment data exists — but the RevenueCat SDK still runs when you open the iOS app and identifies your device and user ID to them. See RevenueCat's Privacy Policy.
- Resend: Delivers transactional email — sign-in and verification links, sharing invitations, and notices about changes to these policies. Receives your email address and the contents of the message.
- Upstash: Provides the rate-limiting store that protects our link-preview and image-proxy endpoints from abuse. It receives your IP address, which is used as the rate-limit key.
- Google (fonts and site icons): One display typeface is served from Google's font CDN. Separately, the small site icon shown next to a saved link is fetched by your own device directly from Google's favicon service — that request reveals your IP address and the domain of the link you saved to Google. Where Google has no icon we fall back to DuckDuckGo's icon service, which receives the same information.
- jsDelivr: Serves the emoji artwork used for space icons. Your device fetches these directly, revealing your IP address to that CDN.
The last two entries are worth understanding, because they work differently from the rest: Google, DuckDuckGo and jsDelivr are not servers we send your data to. They are resources your own browser or phone fetches directly while the app is running. We cannot see those requests, but the third party can, and in the case of site icons the request necessarily discloses which domain you saved.
Sharing a Space With Someone
Niffler lets you invite another person into a space so you can both work in it. Doing that discloses things about you, so it is worth stating exactly what:
- They can see your profile. Anyone you share a space with — and anyone with an open invitation to or from you — can see your email address, your profile picture and your avatar colour. This is how a collaborator list shows who is in a space. It works in both directions: you see theirs, they see yours.
- Nobody else can. A signed-in stranger cannot read your profile and cannot enumerate accounts. Visibility is limited to people you actually share a space with or have an invitation open with, and it is enforced by the database rather than by the app.
- Inviting by email tells you whether an address is registered. When you type an email into the invite form, we check whether it already belongs to an account so we can either add the person directly or send them an invitation. That check returns nothing but a yes or no.
- Content in a shared space is visible to everyone in it, including items either of you adds afterwards. Removing someone ends their access from that point on.
If you would rather not disclose your email address to a collaborator, do not accept or send an invitation — there is currently no way to be in a shared space anonymously.
The Browser Extension
Niffler has an extension for Chrome that saves the page you are on. It is worth being precise about what it can and cannot see, because browser extensions are an area where people are right to be suspicious.
- It reads a page only when you act. The extension holds the
activeTab permission, which grants it access to a tab only at the moment you invoke it — by clicking the toolbar button, using the keyboard shortcut, or picking Niffler from the right-click menu. It has no permission to read pages in the background, and it does not run a script on every site you visit.
- What it sends: when you do save a page, it sends that page's address, its title, and any text you had selected, to your Niffler account. Saving a link then goes through the same enrichment described under Automatic AI Processing.
- Signing in: you sign in to the extension with your email address, which we send you a one-time code to confirm, or by pasting an API key you generated on the web app. While you are waiting for that code your email address is held in the browser's session storage so the form still knows who you are if you close the popup; it is discarded when you enter the code, when you cancel, or when you quit the browser.
- What it stores on your machine: your Niffler sign-in session, or an API key if you chose that instead, kept in the browser's extension storage on that device only. It is not synced to your other browsers. Signing out clears it. So that the session does not lapse while you are not using it, the extension refreshes it against Supabase in the background about every 45 minutes; that request carries your session and nothing about the pages you are browsing.
- Where it sends it: to Niffler and nowhere else. The extension talks to our Supabase backend and to no other server, contains no analytics and no advertising code, and we do not sell or transfer what it collects.
For a complete list of our service providers and how they handle your data, see our Subprocessors page.
Who Can See Your Data
Leaving aside anyone you have deliberately shared with — collaborators in a shared space, or anyone holding the link to something you made public, both covered under Sharing a Space With Someone — Niffler has no employees, and the only human who can reach your content is the one person who runs it. He has technical access to the database because somebody has to be able to fix things when they break. His commitment is not to look. He does not access your bookmarks, notes, or other stored content except:
- When required to provide support that you have explicitly requested
- When required by law or valid legal process
- To investigate potential Terms of Service violations when we have reasonable evidence of abuse
- To protect the safety and security of our users or the public
Google Calendar Integration
Niffler offers optional Google Calendar integration to help you manage your schedule alongside your bookmarks and notes. Here's how it works:
- What Niffler is: Niffler is a personal bookmark and note management application that helps you organize links, notes, tasks, and calendar events in one place.
- Authentication: We use Google's secure OAuth 2.0 protocol to authenticate your account. You will be redirected to Google to grant permission.
- Read-only access: We request read-only access to your Google Calendar (
calendar.readonly scope). We cannot modify, create, or delete events in your Google Calendar.
- Data we access: Calendar names, event titles, descriptions, locations, start/end times, and whether events are all-day events.
- How we use your data: Calendar events are converted to bookmarks within the app, allowing you to view and organize your schedule alongside your other content. This data is used solely to provide you with the calendar sync feature you requested.
- Token storage: We store a refresh token so we can fetch updated calendar data without asking you to re-authenticate each time. It is held in a dedicated table that no client application can read — only our server-side calendar functions can reach it — and is encrypted at rest by our database provider. It is deleted when you disconnect Google Calendar or delete your account.
- Disconnecting: You can disconnect Google Calendar at any time from the app settings. Disconnecting will delete all synced calendar events from your Niffler account. You can also revoke access from your Google Account permissions.
Limited Use Disclosure: Niffler'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:
- We only use Google Calendar data to provide and improve the calendar sync feature
- We do not transfer Google Calendar data to third parties except as necessary to provide the service
- We do not use Google Calendar data for advertising purposes
- We do not allow humans to read Google Calendar data except with your explicit consent, for security purposes, or to comply with applicable law
Automatic AI Processing
This section is important, so we want to be plain about it: some of your content is sent to OpenAI automatically as part of saving it, whether or not you ever use the AI assistant. This is what makes search work. Specifically:
- Everything you save is indexed for search: when you create or edit a bookmark, note, or space, its text is sent to OpenAI's embeddings API (
text-embedding-3-small) to produce a numerical representation of its meaning. We store that representation so you can search by meaning rather than by exact words.
- Saved links are read and summarised: when you save a link, our server fetches that page and sends its text to OpenAI (
gpt-4o-mini) to generate a summary, key points, topics and keywords. We store those alongside the bookmark, together with an extract of the page's own text, so the item can be found by searching its contents rather than just its title.
- Saved images are described: when you save an image, it is sent to OpenAI's vision model to generate a caption and to read any text visible in it, so that images are searchable too.
- Your search queries: when you search, your query is sent to OpenAI's embeddings API so it can be compared against the index described above.
- Training: OpenAI states that data submitted through their API is not used to train their models. See their API data usage policy.
- There is currently no way to opt out of this processing while continuing to use Niffler, because search depends on it. If that matters to you, please tell us — and please take it into account before saving something you would not want a third-party processor to handle.
Separately, the Niffler iOS Share Extension uses an on-device Apple model to suggest which space to file something into. That suggestion is computed entirely on your device; nothing about it is sent to us or to OpenAI.
AI Assistant (Mr. Niffs)
In addition to the automatic processing above, Niffler includes an optional AI assistant called Mr. Niffs. Here's how your data is handled when you use it:
- What data is sent to AI: When you send a message, your query and relevant content from your account (bookmarks, notes, tasks, events, categories) are sent to OpenAI's API for processing. Only content necessary to answer your query is included.
- Third-party processing: AI responses are generated by OpenAI's GPT-4o-mini model. OpenAI processes this data under their API data usage policy, which states that data sent via the API is not used to train their models.
- Actions on your behalf: The AI assistant can create, edit, and delete bookmarks, notes, tasks, events, and dividers in your account when you instruct it to, and it can create new spaces. These actions modify your stored data.
- Conversation data: We do not store your conversations with the assistant. Your messages are held only for as long as the request needed to generate a reply, and the transcript lives in the app on your device until you close it. We do not retain it and we do not use it to improve the service.
- No advertising use: We do not use your AI assistant interactions for advertising or profiling purposes.
- Opting out: Talking to the assistant is entirely optional — you can use Niffler without ever opening Mr. Niffs, and nothing you have not asked about is sent to it. Note that this is separate from the automatic processing described above, which applies regardless.
Public Content
If you mark a category or item as public, its content becomes accessible to anyone with the link. Keep this in mind when sharing.
Leaderboard Game
Our website includes a small game. If you finish a round you may optionally submit a score, which stores the display name you type together with your score. No account is required and we do not attach the entry to your Niffler account, but the resulting leaderboard is readable by anyone, so please do not enter your real name or any other personal detail unless you are happy for it to be public. To have an entry removed, email us at mario@mariocanas.com.
Your Rights
Under applicable data protection laws (including GDPR and CCPA), you have the following rights:
- Right to Access: Request a copy of all personal data we hold about you.
- Right to Rectification: Correct any inaccurate or incomplete personal data.
- Right to Erasure: Request deletion of your account and all associated personal data (subject to legal retention requirements).
- Right to Data Portability: Export your bookmarks and content in a structured, machine-readable format.
- Right to Object: Object to processing of your personal data where we rely on legitimate interest.
- Right to Withdraw Consent: Withdraw consent at any time where processing is based on consent.
- Right to Lodge a Complaint: File a complaint with your local data protection authority (for EU users: Spanish Data Protection Agency - AEPD).
- Right to Disconnect Third-Party Services: Disconnect Google Calendar or other third-party integrations at any time from the app settings, which will remove all associated synced data from your account.
To exercise these rights, email mario@mariocanas.com. We will answer within one month, which is the deadline data protection law sets. If a request is genuinely complex the law allows that to be extended by up to two further months; if that ever happens we will tell you within the first month and explain why.
Cookies and Tracking
Niffler does not set any cookies. Your sign-in session is held in your browser's own localStorage rather than in a cookie, and localStorage and sessionStorage are also what hold your app preferences and the offline cache. Signing out clears them.
This is why you have never seen a cookie banner on Niffler, and it is not an oversight: there are no analytics, advertising or tracking cookies to ask you about, and storage that is strictly necessary to deliver a service you asked for does not require consent. If you sign in with Google or Apple, those providers may set cookies on their own sign-in pages, under their policies rather than ours.
Data Retention
We retain your data for as long as your account is active. When you delete your account, your profile, bookmarks, notes, and associated content are erased from our live systems immediately — this is a real deletion, not a flag or a grace period. Your uploaded files are deleted from Cloudflare's storage in the same operation, along with your profile picture. Encrypted backups taken before that point roll off within 30 days, after which no copy of your content remains. Cached copies of your files held in Cloudflare's network are dropped where we can reach them and expire on their own where we cannot, as described in How Your Files Are Stored and Served. Synced Google Calendar events are removed when you disconnect the integration, and the stored token with them.
Logs. Niffler does not run a logging system of its own — there is no log database we own and no archive we keep. What exists are the operational logs of the providers who run the infrastructure: Supabase for the database and edge functions, Vercel for the website, Cloudflare for file delivery, Upstash for rate limiting. Each expires those on its own schedule, which is measured in days rather than months, and none of them is a place we go to read your content. A leaderboard entry, being tied to no account, stays until you ask us to remove it.
Waitlist and invitation entries are held separately from accounts and are not covered by account deletion, because they exist before — and independently of — any account. Their retention is described in Waitlist and Invitations above.
Children's Privacy
Niffler is not intended for children under 14, the minimum age under Spanish law (Ley Orgánica 3/2018, art. 7) at which a person can consent to the processing of their own personal data. We do not knowingly collect personal information from children under 14. If we become aware that a child under 14 has provided us with personal information, we delete it without undue delay once we know. Parents who believe their child has provided information should contact us.
International Data Transfers
Niffler is operated from Spain. Your account and your saved content are stored in the United Kingdom, in Supabase's West EU (London) region. Your uploaded files are stored with Cloudflare in its Western Europe region, and cached copies of them are held temporarily in whichever Cloudflare data centres serve them — which, depending on where they are viewed from, can be anywhere in the world. That is explained in How Your Files Are Stored and Served above. Other providers we rely on — including OpenAI, Vercel, RevenueCat, Resend and Upstash, and Cloudflare itself, which is a United States company — process data in the United States, so some of your data does leave the European Economic Area. Where a transfer requires it, we rely on appropriate safeguards, including:
- Standard Contractual Clauses (SCCs) approved by the European Commission
- Service providers with adequate data protection certifications
- Contractual commitments to protect your data according to GDPR standards
Data Breach Notification
In the event of a data breach that poses a risk to your rights and freedoms, we will:
- Notify the relevant supervisory authority within 72 hours of becoming aware of the breach, as required by GDPR
- Notify affected users via email without undue delay if the breach poses a high risk to your rights and freedoms
- Provide clear information about the nature of the breach, the data affected, likely consequences, and measures being taken to address it
- Offer guidance on steps you can take to protect yourself
One honest note about how that works in practice. Niffler is run by one person, with no monitoring desk and no on-call rota. The 72-hour clock above runs from the moment we become aware of a breach, which is what the law requires — but in most cases we would learn of one from a provider's notification or from a user, not from our own alerting. We would rather tell you that than imply a watch that does not exist.
Changes to This Policy
We may update this Privacy Policy from time to time. When we make significant changes, we will notify you via email and/or through an in-app notification. The updated policy will include the new "Last updated" date at the top. Your continued use of Niffler after changes constitutes acceptance of the updated policy.
California Privacy Rights (CCPA)
California residents have additional rights under the California Consumer Privacy Act (CCPA):
- Right to Know: Request disclosure of personal information collected, used, shared, or sold in the past 12 months.
- Right to Delete: Request deletion of personal information we have collected from you.
- Right to Opt-Out: We do not sell your personal information. We do not share personal information for cross-context behavioral advertising.
- Right to Non-Discrimination: We will not discriminate against you for exercising your CCPA rights.
To exercise these rights, contact us at mario@mariocanas.com with "California Privacy Request" in the subject line.
Under the CCPA we act as a "business" rather than a "service provider", because we decide how and why personal information is processed. We have never sold or shared personal information, and there is no revenue stream to tempt us to: Niffler is free, sells nothing, and takes no payment of any kind. We only use your personal information to provide the service as described in this policy.
In the interest of not overstating our own obligations: Niffler is one person's free side project and almost certainly falls below every revenue and volume threshold that makes the CCPA binding. We set out these rights because they are the right ones to offer, not because we have determined that the statute applies to us. If you are a California resident, ask and we will honour them either way.
Tracking and Do Not Track Signals
Niffler does not run analytics, advertising, or behavioural-tracking software. There is no tracking pixel, no advertising network, and no third-party analytics script in the product, so there is nothing for a "Do Not Track" (DNT) browser signal to switch off — we do not track you across sites whether or not you send one. We do keep server-side error and request logs, which are necessary to operate and debug the service.
Contact & Data Controller Information
The data controller responsible for your personal information is Mario Canas, an individual established in Spain who builds and runs Niffler as a personal side project. There is no company — the controller is one person, and you can reach him directly at mario@mariocanas.com. See Who Runs Niffler in our Terms for what that means in practice. Being an individual rather than a company does not reduce his obligations to you under data protection law, and every right described above applies in full.
For privacy inquiries, data requests, or to exercise your rights, contact us at:
- Email: mario@mariocanas.com
We will respond within one month, as data protection law requires.