What we know about you, and what we can't.
This page is the accounting. It says which parts of your profile stay on your device, which small set of facts our server keeps, and who else touches your data along the way. The argument for why we built it this way is on the about page; this one is just the facts.
The short version
Newsful needs to know what you care about in order to filter the news for you. It does not need to know that on our server. So it doesn't.
The specifics — the city you live in, the issues you follow, anything you told us about yourself in your own words — stay on your device, in your browser. When you ask for your feed, your device turns those specifics into a long list of numbers called a preference vector, sends that vector and your city for the length of a single request, and we discard both as soon as we've sent your articles back.
What we keep on our server is deliberately boring: your account, your state, how involved you said you want to be, and enough structural shape to help you set things up again on a new device. Not enough to reconstruct what you care about.
Why we can't just promise not to look
Every service says it respects your privacy. The trouble with a promise is that it lasts exactly as long as the company that made it. Policies get rewritten. Companies get acquired. Databases get subpoenaed, or breached.
So we tried to arrange things so the promise isn't load-bearing. Data we never receive can't be sold when priorities change, and can't appear in a breach we haven't had yet. That isn't a claim about our character. It's a claim about our architecture, and it's the one you should hold us to.
It costs us something. We can't tune your feed by studying your behavior, and we can't tell you much about how people use Newsful, because we don't know. We think that's the right trade.
Where honesty requires a footnote
One part of this deserves a caveat we'd rather state plainly than bury. Turning your interests into a preference vector takes a machine-learning model far too large to ship into a web browser, so your device calls Google's Vertex AI to do it.
That means the text describing your interests does leave your device — it goes to Google, not to us. We never receive it, never store it, and never see it. But “nothing ever leaves your device” would be false, so we aren't going to say it.
We'd rather show you where the seams are than sell you a version of this that's tidier than the truth.
What stays on your device
Held in your browser's local storage and never written to our database. If you clear your browser data this is gone, and we'll walk you through setting it up again — because we can't restore it for you.
- The city you live in
location_city - Sent with a feed request so we can find stories near you, then discarded. Never written down.
- The issues you follow
issue_areas - The specific topics you picked during onboarding.
- Anything you shared about yourself
demographic_context - Optional and skippable. Used only to shape which stories match you.
- Other places you watch
additional_locations - Anywhere else you asked us to keep an eye on.
- What you wrote in your own words
raw_intake_text - The free-text box during onboarding. Used to build your profile, then never persisted.
- Your preference vector
preference_vector - The numeric fingerprint of your interests, computed fresh for every feed request and discarded after it.
What our server stores
Held in our database, tied to your account, until you delete it. Nothing here reveals what you care about.
- Your account ID
user_id - The identifier your sign-in provider gives us.
- Your state or region
location_state - State level only. We store “Texas”, never “Austin”.
- Your country
location_country - A two-letter country code.
- How involved you want to be
engagement_level - Passive, moderate, or active. Adjusts how much weight we give to stories you can act on.
- Your quality filters
quality_thresholds - The cutoffs you set for sensationalism, bias, and depth.
- Setup hints for a new device
re_onboard_hints - Shape only — that you follow eight issues across two categories, never which ones.
- When you signed up
created_at - A timestamp.
The details
Information we collect
What Newsful handles falls into three buckets. Stored on your device: the six fields listed above, which live in your browser and never reach our database. Stored on our server: the seven fields listed above, tied to your account. Passed through and discarded: your preference vector and your city, which accompany each feed request and are dropped as soon as the response is sent — our matching service keeps no state between requests.
We also keep ordinary server logs so we can find and fix failures. Those logs are written to exclude every field in the on-device list, and that rule is enforced in our codebase rather than left to the judgment of whoever writes the next feature.
How we use it
To choose which articles to show you, and for nothing else. Your preference vector is compared against articles we have already gathered and analyzed; your state and city narrow that to your area; your engagement level and quality filters decide what clears the bar.
We don't build advertising profiles, we don't sell or rent data, and we don't run recommendation experiments on you. There is no behavioral model of you here, because we don't collect the behavior that would feed one.
Services we rely on
Newsful runs on Google Cloud Platform, which hosts our services and our database. Sign-in is handled by Firebase Authentication, which holds your email address and login credentials on our behalf.
Your preference vector is computed by Google's Vertex AI. As described above, your device sends the text of your interests to that service directly; Google processes it and returns the vector. Newsful never receives that text.
We also use Google's Gemini model to analyze news articles — assessing bias, sensationalism, depth, and whether a story is actionable. That analysis runs over published journalism, never over anything about you.
Cookies and analytics
Newsful sets no advertising, marketing, or A/B testing cookies. When you sign in we set a strictly necessary session cookie to keep you signed in, and that is the whole list. It is also why you don't see a cookie banner — there is nothing to ask you to consent to.
Any analytics we use is cookieless and collects no personal data: aggregate page counts, nothing tied to you or your profile. If that ever changes, this section changes with it, and a consent banner arrives alongside.
How long we keep things
The fields on your device stay there until you delete them or clear your browser storage. The fields on our server stay until you delete your account, at which point the record is removed. Feed request inputs — your vector and your city — are discarded within the request that carried them; nothing about them survives the response.
Server logs are kept on a rolling basis for troubleshooting and never contain the on-device fields.
Your rights and choices
Wherever you live, you can ask what we hold about you, get a copy of it, correct it, or have it deleted — email privacy@newsful.org and we will do it. Self-serve pages for all four are being built; when they land, this section will point at them instead.
Some places grant additional privacy rights — the EU's GDPR and California's CCPA among them. Where those laws apply to you, we honor them as written.
Children's privacy
Newsful isn't directed at children, and we don't knowingly collect information from anyone under 13. If you believe a child has created an account, write to us and we'll delete it.
Changes to this policy
If we change how any of this works, we'll update this page and move the effective date at the top. For changes that meaningfully affect what we collect or who receives it, we'll tell you directly rather than relying on you to re-read this page.
Contact us
Questions, requests, or corrections: privacy@newsful.org. Newsful is an independent project, and that address reaches the people who build it.