Privacy policy
Last updated 21 October 2026
ContentFactory (contentfactory.today) is an operator tool: a workspace generates articles from its own sources and publishes them to channels it connects — a website, a Facebook Page, a LinkedIn profile, a Telegram channel. This page describes what we store to do that, and only that.
Who this covers
Operators sign in to a workspace and connect channels. Readers visit a workspace's website. Commenters reply to a workspace's posts on a connected platform. Each group is treated separately below.
Operators: your account
- Your email address, used to sign in (with a password or an emailed link) and for notifications. With Google sign-in we also receive the name and avatar Google shares.
- If you set a password, Supabase stores only a one-way hash of it; nobody at ContentFactory can read it.
- Which version of the Terms of Service you accepted, and when.
- Your workspace memberships and role, and an audit log of the actions taken in the workspace (who approved, edited, published or deleted what).
- If a workspace is paid for: the payment records (amount, method, the transfer's code, who declared and who confirmed it). Card details go to Stripe, never to us.
- A hash of your email address (not the address itself), so that each person gets one free trial.
- When you tell us you have paid by bank transfer, we email the ContentFactory operator the workspace's name, the term and your email address, so the transfer can be matched.
Operators: connected channels
When you connect a channel we store what that platform needs to act on your behalf, and nothing more:
- Facebook Page: the Page id and name, your Facebook user id, a one-way hash of that id (so we can tell when two channels share your Facebook account), and a Page access token.
- LinkedIn: your member id and display name, and an access token that expires after 60 days.
- Telegram: the bot token and channel handle you paste in.
Tokens are encrypted at rest with AES-256-GCM under a key that lives outside the database. They are used solely to publish, edit and delete the posts you approve, and, where the platform offers it, to read the comments on those posts and the post-level metrics it reports (impressions, clicks, reactions). We never post without an approved post in your queue, never read your personal feed or messages, and never use the tokens for any other channel or workspace.
Disconnecting a channel deletes its tokens immediately. See Data deletion.
Commenters on a connected platform
For each comment on a post the workspace published, we store the comment text, the time it was posted, the commenter's display name and the platform's id for them. This lets the operator read and reply from one inbox. Comments are ranked by an AI model for tone (praise, question, critical, spam) to order the inbox; this is the only automated processing of commenter data, and it produces no decision about the commenter. We do not follow, message or profile commenters, and we do not combine this data across workspaces.
Readers of a workspace website
- Page views are counted with a salted, daily-rotating hash of your IP address and browser user agent. The raw IP address is not stored, and the hash cannot be reversed or matched across days. Links from this site's social posts carry a short code that tells us which post a visit came from, never who you are.
- The referring site's hostname (not the full URL) is recorded and shown to the workspace as a top-referrers list for 7 days, then deleted.
- If you comment on an article we store the name and text you enter, and a hash of your IP address used only to rate-limit submissions.
- Workspace staff who preview their own site receive a cookie that marks their visits as internal. Readers receive no cookies.
Newsletter subscribers
A workspace can offer a newsletter on its website. If you sign up:
- What we store: your email address, when and on which page you gave it, and when you confirmed it.
- Basis: your consent, given by double opt-in: you count as a subscriber only after you confirm from the email we send.
- Leaving: unsubscribe from any email at any time.
- What an issue contains: Issues are written from the site's published articles. They contain no tracking pixels or tracked links, and every issue has a one-click unsubscribe.
- Processor: Resend sends the emails.
Where the data lives and who processes it
- Supabase hosts the database, authentication and file storage.
- Cloudflare Turnstile checks that a sign-up, sign-in, password reset or newsletter sign-up comes from a person. On a workspace's website it loads only when you select or start typing in the newsletter email field. It sees your IP address and your browser's signals for that check; ContentFactory only learns whether it passed.
- Fly.io hosts the application and worker.
- AI providers (Anthropic, OpenAI and others the platform chooses) receive article sources and drafts for generation, and comment text for tone ranking. They do not receive tokens or account data.
- Resend sends sign-in, notification and newsletter emails.
- Stripe processes card payments for workspace subscriptions. It receives the workspace owner's email address and the workspace's name and the workspace's internal id, and holds the card details; ContentFactory never sees a card number.
We do not sell data, show advertising, or share data with anyone else except when the law requires it.
Retention
- Your account (email, password hash, Terms acceptances): until you delete it from the Account page, which removes them at once.
- A log of when you created workspaces (your account id, the workspace id and the time), used to limit new workspaces to 2 a day: kept until you delete your account; entries older than 30 days are also removed when you next create a workspace.
- Channel tokens: until you disconnect the channel, or until the workspace's data is erased (7 days after an owner deletes it).
- Posts and comments on your website: as long as the workspace exists. Deleting a post in ContentFactory also removes it from every channel it was published to.
- Metrics for a published post: every reading for 7 days, one per day until 90 days, then the latest reading for as long as the workspace exists.
- Earlier versions of a post: 180 days.
- Comments and replies from social channels: 180 days after the comment was posted.
- A summary of each commenter on a connected platform (display name, platform id, comment count, average and most recent tone, and when they last commented): 180 days after they last commented.
- Source articles fetched from feeds: 180 days after their story was last updated, unless a post was made from that story.
- Website view hashes: rotated daily, kept for 7 days, then only as aggregate counts, which are kept for 180 days.
- Audit log: 180 days.
- Newsletter addresses: until the reader leaves (unsubscribes, or the address bounces or a complaint is made). The address is then erased and only a one-way hash is kept, so a bounced or complaining address is never emailed again; that hash is kept indefinitely.
- Unconfirmed newsletter sign-ups: deleted after 7 days.
- Sent newsletter issues: as long as the workspace exists (public in the site's archive unless hidden).
- Which subscriber received which issue: 30 days after the issue is sent, then only the totals.
- Payment records (amount, method, the transfer's code, who declared and who confirmed it): as long as the workspace exists (the operator's own log of confirmed and rejected transfers keeps the transfer's code, amount and term).
- A hash of your email address (not the address itself), kept to allow one free trial per person: kept indefinitely, also after you delete your account.
- A workspace that is not paid for: deleted 30 days after it paused, or 90 days if it was ever paid for.
- When an owner deletes a workspace, its data is kept for 7 days so the owner can restore it, then erased.
Your rights and how to reach us
You can delete your account yourself on the Account page in the app (your email at the bottom of the sidebar). You can also ask for a copy of the data we hold about you, ask us to correct it, or ask us to delete it. Email contentfactory.today@gmail.com. We answer within 30 days. If you are a commenter or reader, tell us the workspace website or Page the comment appeared on so we can find it.
Changes
When this policy changes, the date at the top changes with it. Material changes are announced to operators by email.