The Chart Maker

Privacy Policy

Last updated: August 16, 2026

This policy describes exactly what The Chart Maker stores, why, for how long, and who else sees it. It is written against what the site actually does, not from a template.

1. The short version

  • You can use the whole site without an account and without giving a name.
  • Drafts stay in your browser until you save or publish. Published charts and their images are public.
  • Anonymous visitors get one random identifier in a cookie. It is used for hearts, view counting, rate limits, and bans. It is not linked to a name, an email, or an advertising profile.
  • If you sign in, we store what Google or Reddit tells us about your account: name, avatar, and (for Google) email address.
  • Our analytics are self-hosted and first-party. Our ads come from Google, which does set its own cookies; in the EEA and the UK you get a consent choice before personalized ads are used.
  • We never sell your data, and we do not use your charts to train AI models.

2. Who we are

The Chart Maker (thechartmaker.com) is operated by [LEGAL ENTITY NAME], which is the data controller for the personal data described here.

[LEGAL ENTITY NAME][POSTAL ADDRESS]Privacy contact: [email protected]

3. What we collect and why

3.1 Charts, images, and the things you type

While you are building a chart, it is saved in your own browser (see section 5). When you save or publish, the chart document is stored on our servers: its type, title, description, the contents you put in it (labels, item names, colours, layout, links to your images), timestamps, and, once published, the public page id, a preview image, a social sharing image, and counters for views, hearts, and remixes. We keep a frozen snapshot of the document each time you publish, which is what other people see and what remixes copy.

Images you upload are stored on our image storage (Cloudflare R2) under a key derived from the file contents, and served from img.thechartmaker.com. For each upload we record the storage key, the content hash, the file size, the content type, who uploaded it (your account id, or the anonymous identifier below), the moderation scan result, and the time. Identical files are stored once and reused, which is why re-uploading a popular image can be instant.

Anything you publish is public: the chart, its images, its title and description, the creator name shown on the page, and the fact that it was remixed from, or into, another chart. Do not put private information into a chart you publish.

3.2 Account data, if you sign in

Signing in is optional. We use Google and Reddit sign-in, and we never see or store a password.

  • Google: we receive and store your name, email address, whether the email is verified, and your profile picture URL.
  • Reddit: we request the "identity" scope only, and receive your Reddit user id, username, and avatar image URL. Reddit does not give us an email address. Our sign-in library requires an email field, so for Reddit accounts we generate a placeholder address at a non-routable internal domain. It is never used to contact you and no mail can reach it.
  • For both: we store the provider name, your account id at that provider, and the access and refresh tokens the provider issues, which is how sign-in stays valid.
  • Sessions: each sign-in creates a session record holding a session token, its expiry, and the IP address and browser user agent of the sign-in, which we keep for security (spotting stolen sessions).
  • Your profile on the site: a public handle derived from your provider name, a display name, and an avatar URL.

3.3 The anonymous identifier

The first time you do something that needs to be attributed (create, upload, heart, report, or view a chart), the site generates a random identifier and stores it in a first-party cookie named tcm_anon. The cookie is httpOnly (JavaScript on the page cannot read it), SameSite=Lax, and lasts one year.

It is a random string. It is not derived from your device, browser, screen, fonts, or IP address, and it is not shared with anyone. We use it only to:

  • attach the charts and uploads you made without an account to the same visitor;
  • count one heart per visitor per chart;
  • count one view per visitor per chart per hour, so counters are not trivially inflated;
  • apply rate limits (for example uploads per hour, hearts per hour, reports per day) so one visitor cannot flood the site;
  • enforce a ban when we have had to block a source of abuse.

If you clear cookies, you get a new identifier and the old one is orphaned. See section 11 for what that means for your rights.

3.4 Hearts, reports, and views

  • A heart stores the chart, the time, and either your account id or your anonymous identifier.
  • A report stores the chart, the reason you picked, the optional detail text you write, the time, its status in our moderation queue, and either your account id or your anonymous identifier. Please do not include personal details in the detail box that we do not need in order to act.
  • Views are counted in aggregate only. We keep a short-lived key ("this visitor has already been counted for this chart this hour") and then increment per-chart totals and a per-chart, per-day number. We do not keep a record of which charts a visitor looked at.

3.5 Analytics

We use Umami, an analytics tool we host ourselves on our own server. Nothing about our analytics goes to a third-party analytics company, and it does not track you across other websites.

It records page views and a small set of product events, each with the type of chart involved: starting a chart, publishing, exporting a PNG, copying a share link, remixing, using a template, and hearting. Alongside each event it stores the page URL, the referring URL, and coarse information derived from the request (browser, operating system, device type, country, language). To recognise repeat page views within a visit it uses a rotating hash computed from request data rather than a cookie, and it does not store your IP address.

3.6 Server logs

Our web server and application keep operational logs, which can include the IP address, the time, the URL requested, the response status, and the user agent. We use them to keep the site running, to debug errors, and to investigate abuse. Cloudflare, which sits in front of the site, processes the same request data to provide caching, TLS, and protection against attacks.

4. What we do not collect or do

  • We do not store passwords. Sign-in is handled by Google or Reddit.
  • We do not take payments, so we hold no payment or card data.
  • We do not collect precise location, contacts, phone numbers, or anything from your device beyond the ordinary contents of a web request.
  • We do not read your Reddit account beyond the identity scope (id, username, avatar), we do not see your posts or messages, and we never post anything to Reddit for you.
  • We do not sell personal data, and we do not share it with data brokers.
  • We do not use your charts, drafts, or uploaded images to train AI models, and we do not license them to anyone else for that purpose.
  • We do not send marketing email. If you gave us an email address through sign-in, we use it for account and service messages only.
  • We do not build advertising profiles ourselves. Advertising cookies come from Google (see section 7).

5. Cookies and storage on your device

Cookies we set

  • tcm_anon: the anonymous identifier described in section 3.3. First-party, httpOnly, SameSite=Lax, one year. Strictly necessary for hearts, abuse prevention, and keeping anonymous work attached to you.
  • Sign-in cookies: when you sign in, our authentication library sets a first-party session cookie, plus short-lived cookies during the sign-in redirect. Signing out ends the session.

Storage that stays on your device

These are stored by your browser and are not sent to us unless you save or publish:

  • Drafts: every chart you work on is autosaved into an IndexedDB database named tcm-drafts, so a reload or a dropped connection does not lose your work. Drafts stay on the device until you save them to the site or delete them. Clearing site data deletes them, and we cannot recover them.
  • Edit tokens: keys beginning tcm-edit-token: in localStorage hold the secret that proves a chart made without an account is yours. We store only a hash of that token on the server, so the copy in your browser is the one that matters. Treat an edit link like a password.
  • Heart markers: keys beginning tcm-hearted: in localStorage remember which charts you hearted so the button shows the right state immediately.

Third-party cookies

Google's advertising scripts may set cookies and read similar storage on pages that show ads. Where the law requires consent, those cookies are only used for personalized advertising after you have given it (section 7). Ads are not shown on this page or on the other legal pages.

You can delete cookies and site data at any time in your browser settings. Deleting tcm_anon resets your anonymous identity; deleting localStorage or IndexedDB data removes your local drafts and your edit tokens.

6. Who else processes your data

We keep the list short on purpose. Each of these acts for us, under contract, and only for the purpose named.

  • Hetzner (hosting): runs the servers holding the application, the database, and our analytics. Everything in section 3 that is stored on our servers sits there. Privacy policy.
  • Cloudflare (CDN, TLS, security, and R2 image storage): processes requests to the site and stores uploaded and generated images. Privacy policy.
  • Amazon Web Services (Rekognition): when a chart is published, the images it uses are sent to the Rekognition content moderation API, which returns labels telling us whether an image is likely to contain explicit or graphically violent material. Only the image is sent, with no information about who uploaded it. Privacy notice.
  • Google (AdSense advertising, and Google sign-in if you use it): receives what is described in section 7 for advertising, and, if you sign in with Google, the fact that you signed in. Privacy policy.
  • Reddit (Reddit sign-in, if you use it): receives the fact that you authorised our app and gives us your id, username, and avatar. Privacy policy.

We also disclose data when the law requires it (a valid legal request, or a claim we must answer), when we need it to investigate abuse or protect people, and, if the site is ever sold or transferred, to the buyer, who would be bound by this policy or a successor to it. We would announce that on the site before it took effect.

7. Advertising, personalization, and consent

The site is free and is paid for by advertising. We use Google AdSense. Ad units appear on public pages such as the home page, browse pages, and chart pages, and on wide desktop screens beside the editor. There are no ads on this page or on the other legal pages, and there are no ads in the editor on phones and tablets.

Google, as a third-party vendor, uses cookies and similar technologies to serve ads. It may use information about your visits to this and other sites to show ads relevant to you.

Your consent choice in the EEA, the UK, and Switzerland

If you are in a region where consent is required, Google's consent message appears before personalized advertising cookies are used, and you can accept, reject, or configure purposes. We do not run a separate consent script of our own: the choice you make in that message is what governs the ad stack.

You can change your choice later. The consent message can be reopened from the privacy controls the ad frame provides, and clearing the site's cookies makes it appear again on your next visit.

Opting out more broadly

If you are in the European Economic Area or the United Kingdom, we rely on these legal bases:

  • Performance of a contract (Article 6(1)(b)): running the editor, storing and displaying the charts you save or publish, maintaining your account and sessions.
  • Legitimate interests (Article 6(1)(f)): keeping the site available and secure, preventing abuse and spam (the anonymous identifier, rate limits, bans), moderating published images, counting views and hearts, understanding aggregate usage through our own analytics, and promoting the service with published charts. We have weighed these against your interests; each one is narrow, uses the least data that works, and none of it builds a profile of you.
  • Consent (Article 6(1)(a)): personalized advertising cookies where consent is required. You can withdraw it at any time (section 7).
  • Legal obligation (Article 6(1)(c)): responding to copyright notices and other lawful requests, and keeping the records needed to do so.

9. How long we keep things

  • Drafts in your browser: until you delete them or clear site data. They are on your device, not ours.
  • Charts you saved or published: until you delete them. A published chart stays online indefinitely unless you delete it, we remove it under our Terms, or the site shuts down. Deleting a chart takes it off the site immediately; residual copies can remain in encrypted backups for up to 30 days.
  • Published snapshots: kept with the chart, and deleted with it.
  • Uploaded images: kept while a chart references them. An upload that no chart references is deleted in routine cleanup after 90 days, and an upload that was never completed is deleted sooner. Because identical files are stored once, an image that another chart also uses stays until no chart uses it.
  • Per-day view numbers: deleted after 14 days. The running total per chart is kept as part of the chart.
  • Hearts: until the chart is deleted or you remove the heart.
  • Reports: kept while the moderation queue needs them and afterwards as the record of a decision, so that repeat problems can be recognised.
  • Moderation scan results: kept with the upload record for as long as the image exists.
  • Account, sessions, and profile: until you delete your account. A sign-in session expires on its own after a period of inactivity (currently 7 days) or when you sign out.
  • Anonymous identifier: one year in the cookie, renewed as you keep using the site. The copies stored beside your charts, hearts, uploads, and reports live as long as those records do.
  • Server and CDN logs: kept short term for security and debugging, normally no longer than 30 days.
  • Analytics: aggregate page and event statistics, kept without a link to an identifiable person.

10. Your rights and how to use them

Depending on where you live, you have some or all of these rights:

  • access: a copy of the personal data we hold about you;
  • correction of data that is wrong;
  • deletion of your data (subject to the exceptions in our Terms, section 7);
  • portability: your charts in a machine-readable form. You can already export any chart as an image at any time, and we can provide the underlying chart documents on request;
  • objection to processing based on legitimate interests, and restriction of processing while an objection is considered;
  • withdrawal of consent, for anything we do on the basis of consent;
  • a complaint to your data protection authority. In the EEA that is the authority of your country of residence; in the UK it is the Information Commissioner's Office.

To use any of them, write to [email protected] from the email address on your account, or from any address if you tell us which charts or identifiers the request is about. We answer within 30 days. We may ask for enough information to be sure the request really concerns your data, and we will not ask for more than that.

If you have an account, signing in and deleting your charts, or asking us to delete your account, is usually faster than a formal request.

11. Rights when you have no account

Most privacy policies quietly skip this. Here is the honest version.

If you never signed in, we hold no name, no email address, and nothing else that identifies you as a person. What we hold is a random identifier in your cookie, and the hash of the edit token for each chart you made. That has two consequences.

We cannot look you up. There is nothing to search by. A request that says only "delete my data" cannot be matched to any record, and we will not try to identify you from an IP address or anything else in order to answer it, because that would mean collecting more data about you, not less.

The edit link is the proof of ownership. If you send us the edit link (or the chart address plus its edit token) we will treat that as proof and delete or unpublish the chart. If you tell us the value of your tcm_anon cookie (visible in your browser's developer tools under Application, then Cookies, because the cookie is httpOnly and pages cannot read it), we can find and delete the hearts, reports, and upload records tied to it.

If you have cleared cookies and did not keep your edit links, the connection between you and those records no longer exists on either side. We cannot restore it, and we cannot act on a request about them. The practical protection is to save your edit links, or to sign in and claim your charts, which turns them into account data with the full rights in section 10.

Separately from any of this: anyone can ask us to remove content that harms them, whether they created it or not. Use the Report button on the chart, or write to [email protected]. You do not need to prove ownership to report something.

12. Children's privacy

The Chart Maker is not directed at children. You must be at least 13 years old to use it, and at least 16 in the European Economic Area and the United Kingdom (Terms, section 2).

We do not knowingly collect personal data from children below those ages. If you are a parent or guardian and believe a child has given us personal data, write to [email protected] and we will delete the account, the charts, and the related records.

13. US state privacy rights

If you live in California, Colorado, Connecticut, Virginia, or another US state with a comprehensive privacy law, you have rights to know what personal information we collect, to access and delete it, to correct it, to receive a portable copy, and not to be discriminated against for exercising those rights. Use the contact in section 10; the practical limits in section 11 apply to anonymous visitors.

The categories of personal information we collect are described in section 3: identifiers (a random cookie identifier, an account id, and an IP address in logs), internet activity (pages viewed and product events), user content (your charts and images), and, for account holders, name, email, and profile picture. We collect them for the purposes in section 3 and keep them for the periods in section 9. We do not collect sensitive personal information, and we do not use or disclose it for inferring characteristics.

We do not sell personal information. Showing advertising through Google may count as "sharing" for cross-context behavioural advertising, or as "targeted advertising", under some state laws. You can opt out through the advertising controls in section 7, or through Google's ad settings, at any time.

14. International transfers

Our servers and database are hosted in Europe. Some of the providers in section 6 (Google, Amazon Web Services, Cloudflare) are US companies that may process data outside your country. Where personal data leaves the EEA or the UK, the transfer relies on the European Commission's standard contractual clauses, the UK addendum, or an adequacy decision such as the EU-US Data Privacy Framework, as applicable to that provider.

15. Security

The site is served over HTTPS. We store no passwords. Edit tokens are stored only as a hash, so a copy of our database does not let anyone edit your anonymous charts. Access to the servers and the database is limited to the people who operate the site, and images are served from a separate domain with immutable caching.

No service can promise perfect security. If we ever discover a breach affecting your personal data, we will notify the relevant authority and, where the law requires it, you.

16. Changes to this policy

When the site changes what it stores, this page changes with it. We update the "Last updated" date at the top, and for significant changes we post a notice on the site. If a change requires your consent, we will ask for it before it takes effect.

17. Contact

Privacy questions and requests: [email protected]. Anything else: [email protected].

[LEGAL ENTITY NAME][POSTAL ADDRESS]

See also our Terms of Service and our Copyright and Takedown Policy.