On this page

Legal

Privacy Policy

This policy says what personal data ReuseForge holds about you, why, who else touches it and what you can do about it. It describes what the code does today. Where something is planned rather than built, we say so.

Early draft. This policy is an early draft written for a platform in beta. It has not been reviewed by a lawyer. It will be updated as the product changes, and before real payments go live.

In plain words

  • If you only read the website, we set no cookies and need no account. The planner on the home page runs in your browser and your goal text stays there.
  • If you sign up, we store your email, handle, profile, a password hash (or your GitHub identity), your sessions and a log of security events with IP address and browser string.
  • Your profile, public listings, reviews and discussions are public by design. Deleting your account removes your email, password and profile details, but not everything: section 8.2 lists what stays.
  • We run on Cloudflare. We use GitHub for sign-in. We show no ads, sell no data and use no third-party trackers. Cloudflare may count page views with its own cookie-free analytics.
  • Email delivery is not switched on yet. When it is, we will email you only for verification, password reset, security notices and organisation invitations.
  • You can see your sessions and security log, export your data and delete your account in Settings. For anything else, ask us.

1. Who is responsible

1.1

The operator of ReuseForge decides why and how personal data is processed, and is the "controller" under laws such as the EU and UK GDPR. The operator is the maintainer of the open-source project at github.com/Longfordjames/Claude-1. A legal entity and postal address will be added here before paid features launch. How to reach us is in section 14.

1.2

This policy covers reuseforge.com, the web app, the API and the MCP endpoint. It does not cover sites we link to, GitHub, or a self-hosted ReuseForge node run by someone else. The operator of such a node is responsible for it.

2. What we collect and why

2.1

The table lists each kind of data, why we need it and where it comes from. The legal bases we rely on are in section 7. "You" means data you give us. "Automatic" means data created when you use the Service.

Personal data we collect
DataWhySource
Account: handle, display name, bio, website, location, profile links, avatar (the image itself, if you upload one, is kept in our KV storage)To run your profile and attribute your listings. Public unless you leave the field empty.You, or GitHub
Preferences (theme, language, which notification groups are muted), time the account was created, time of last sign-inTo apply your choices on any device and to let administrators see whether an account is active.You, automatic
Email address, whether it is verifiedTo sign you in, send verification and reset messages once email is on, and contact you about your account. Never shown publicly. Administrators can see it (section 5.4).You, or GitHub
Password hashTo check your password. We store a salted PBKDF2-SHA256 hash, made with a secret value (a pepper) that is kept outside the database, never the password itself.You
GitHub identity: numeric id, login, verified primary email. If you sign up with GitHub, also your name and avatar addressTo sign you in with GitHub, link the account and fill in your profile. GitHub's access token is used once during sign-in and is not stored.GitHub
Two-factor data: TOTP secret and hashes of recovery codesTo protect your account, only if you turn on two-factor sign-in. The secret is stored as it is, because the server must read it to check codes. It is erased when you turn two-factor off or delete your account.You
Sessions: hashed session id, created, last seen and expiry times, IP address, browser user-agent (first 200 characters)To keep you signed in, show you where you are signed in, and spot misuse.Automatic
API tokens: name, prefix, hash, scopes, spending limit, created, last used, expiry, revoked timeTo authenticate API, CLI and MCP calls you set up. The full token is shown once and only its hash is kept.You
Security log: action (sign-in, token created, password or email changed, administrator actions and similar), target, time, IP address, user-agent, and a few details such as the old and new email address after a changeTo protect accounts, investigate abuse and show you your last 50 security events.Automatic
One-time email tokens (verify email, change email, reset password): a hash of the token and the email address it was issued forTo complete those flows. They expire and work once.Automatic
Organisation invitations: invited handle or email address, role, who invited, state and expiryTo run organisations. An invitation to an email address is stored even if no account exists for it.You (the inviter)
Content: listings, files, versions, reviews, discussions, comments, collections, stars, follows, organisation membershipTo provide the registry and marketplace. Public or private as you set it.You
Reports you file about content or accounts, and our moderation records (decision, note, suspension reason, who decided)To moderate. Visible to administrators. The reporter sees the outcome and a short note.You, staff
Notifications and activity feed entriesTo tell you about follows, stars, reviews, invitations and moderation outcomes, and to show a public activity feed. Notifications are shown in the app and are not sent by email.Automatic
Usage counters per listing: views, downloads, stars by day. To count a view or download once per person per day, we keep a truncated one-way hash of your account id or IP address for about 25 hoursTo show sellers how their listings do and to rank trending items. They are counts, not profiles of visitors.Automatic
Orders and payments, once those features are switched on (test mode only for now): items, amounts, rail, order state, wallet or payout addresses, transaction references, dispute textTo run escrow, pay sellers, refund buyers, settle disputes and keep accounts. Nothing of this kind is stored while ordering is off.You, automatic
Rate-limit counters, keyed by IP address (for IPv6, the network prefix), account id, token id or a hash of the sign-in identifierTo slow down password guessing and abuse. Short-lived.Automatic
Messages you send us on GitHub (issues, advisories)To answer you and keep a record. They live on GitHub, under GitHub's terms.You
2.2

We do not ask for your real name, phone number, government ID or date of birth. We do not collect payment card data, because the Service does not take cards. We do not run KYC checks in the beta; we may have to add them before real payments start, and we will update this policy then.

2.3

The planner. The planner on the home page and the demo run entirely in your browser; the goal and budget you type there are not sent to us. The planner in the app (/app/plan) also computes in your browser, but to find candidate listings it sends our search API the capability names and up to two matched keywords per need, not your whole goal. It remembers your last goal and budget in your browser, and puts them in the page address so you can share a plan. When you load or share such an address, the address, goal text included, reaches our servers and Cloudflare's request logs like any other web address. Do not put secrets in a goal. If we add a planner that runs on our servers, we will say so where you type and update this policy.

2.4

Email. We use your email address only for messages about your account and organisations: email verification, password reset, security notices (for example when your password, email address or two-factor setting changes, or your account is deleted) and organisation invitations. In-app notifications are not sent by email. We send no marketing email.

2.5

Email delivery is not switched on yet. The Service has no email sending configured, so today it sends no email at all. Verification and password-reset links cannot be delivered, a forgotten password cannot be reset by email, and a changed email address stays unverified. Accounts created with GitHub arrive with GitHub's verified email already marked verified. We will update this policy when email is switched on.

3. What we do not do

3.1
  • We show no advertising and we do not sell or rent your personal data.
  • We do not use third-party advertising, social or tracking scripts, tracking pixels or third-party fonts. Scripts, styles and fonts come from our own domain. The one outside script our security policy allows is Cloudflare's Web Analytics (section 4.3).
  • We do not build advertising profiles and we do not make decisions about you by solely automated means that have legal or similarly significant effects.
  • We do not use your private listings or files to train AI models.

4. Cookies and local storage

4.1

The Service sets at most two cookies. Both are first party and strictly necessary, and they are set only when you sign in, sign up or start a GitHub sign-in. They do not need consent under the ePrivacy rules, so there is no cookie banner. If you only read the website, no cookie is set.

Cookie and storage inventory
NameKindPurposeLifetime
__Host-rf_sidCookie, first partyYour signed-in session. HttpOnly, Secure, SameSite=Lax, bound to our domain. It holds a random value; we store only its hash.30 days. 10 minutes while a two-factor code is pending. Removed on sign out.
__Host-rf_oauthCookie, first partySet only while you sign in with GitHub or connect GitHub. HttpOnly, Secure, SameSite=Lax. It holds a random value that ties the sign-in to your browser and protects it from forged requests.10 minutes. Removed when the sign-in finishes.
rf-themelocalStorageYour light or dark choice, so the page does not flash the wrong theme. If you are signed in, the choice is also saved on your account so a new device can use it.Until you clear site data.
rf-langlocalStorageYour language choice (English or Chinese), so we can offer the right version.Until you clear site data.
rf-explore-viewlocalStorageWhether Explore shows a grid or a list.Until you clear site data.
rf-plan-lastlocalStorageThe last goal and budget you ran in the app's planner.Until you clear site data.
rf-publish-draft:v1:<your account id>localStorageAn unsent draft of a listing you are writing (its text fields and file names), so a reload does not lose it.Removed when you publish or discard the draft.
rf.dash.onboard.off.<id>, rf.dash.payout.<id>localStorageWhether you hid the dashboard checklist, and whether you marked its payout step as done.Until you clear site data.
rb_user_blocks, rb_demo_loglocalStorageThe blocks and log of the demo simulator.Until you clear site data or reset the demo.
4.2

Local storage stays in your browser. The one value that also reaches us is your theme, and only if you are signed in and choose it in Settings. Local storage is written only when you use the feature that needs it. We set no analytics or advertising cookies and no third-party cookies. Cloudflare, our host, may set its own security cookies in some cases, for example when it challenges a suspicious request; those are not ours.

4.3

Hosting analytics. We add no analytics code to our pages, but Cloudflare can inject its Web Analytics script into pages it serves, and our security policy lets that script and its endpoint load. When it is switched on, Cloudflare counts page views and performance for us (page address, referrer, browser type, country and load timings). Cloudflare says it does not use cookies or local storage for this and does not track people across sites. We use it only for aggregate numbers. We use no other analytics. If this changes, we will list the change here.

5. What is public, and what cannot be erased

5.1

These are public by design: your handle, display name, bio, avatar, website, location and profile links; your public listings, versions and files; your reviews, discussions and comments, shown with your handle; who you follow and who follows you; the organisations you belong to; your public collections; and star counts on listings. Actions such as publishing, starring or reviewing a public listing can appear in your public activity feed. Do not put anything in these that you want kept private. Unlisted listings are not shown in lists or search, but anyone with the link can open them. Private listings are visible only to you, your organisation's members and our administrators.

5.2

Append-only records in the open-source protocol. In the ReuseForge protocol, nodes record listings, orders, deliveries and votes as signed events in a hash-linked, append-only log and copy that log to each other. Events are signed with a public key, not your name, but your handle or key may be linked to them. If you sign events with the ReuseForge command-line tool or run a node, an event that has been copied to another node cannot be recalled by anyone, including us. The hosted service at reuseforge.com keeps accounts, listings, reviews and discussions in its own database today and does not publish them to that log. What happens to that data when you delete it is described in section 8.2.

5.3

Blockchains. A payment on USDC, USDT or Bitcoin is a public transaction on a public ledger that nobody can delete. Addresses and amounts are visible to anyone. Do not use an address that you have linked to your identity if you want the payment to be unlinked from you. In test mode no such transaction is made.

5.4

Staff access. ReuseForge administrators can see account details, including email addresses, status and last sign-in time; every listing in any state, including private and removed ones; reports; and the audit log with IP addresses and browser strings. They use this to handle reports, abuse and security problems. Nobody becomes an administrator by signing up. Administrator actions are written to the audit log, and administrator tools need a sign-in from the last 12 hours.

6. Who receives your data

6.1

We use a small number of service providers (processors) that handle data on our behalf, and we deal with a few other parties as part of the product.

Who receives personal data
WhoWhat forWhat they see
Cloudflare, Inc.Hosting and delivery: the Workers runtime, static asset hosting, the D1 database, KV storage (avatars, counters, short-lived records), DNS and CDN, request logs and Workers Logs, and optional Web Analytics. Cloudflare Email Service will send our emails once email is switched on.All data we store, IP addresses and request metadata, and, once email is on, the content of the emails we send.
GitHub, Inc. (Microsoft)Sign in with GitHub (we ask for the read:user and user:email scopes), importing public repositories, and loading avatar images from avatars.githubusercontent.com.For sign-in: GitHub sees that you are signing in to ReuseForge. When your browser loads a GitHub avatar, GitHub sees your IP address. Imports read public repository data from GitHub's API.
The other party in an orderTo complete the sale, once ordering is switched on.Your public handle, the order and delivery details, and for payouts the address you gave.
Payment networks and chainsTo move money on real rails, when they are switched on.Public transaction data (section 5.3).
Authorities and advisersWhen the law requires it, to enforce our terms, or to protect people from harm. We tell you first when the law allows.Only what is needed.
6.2

We do not share your data with data brokers. If the project is transferred to another operator, your data may move with it, and we will tell you before it does if this changes how your data is handled.

7. Why we may process your data

7.1

Where the GDPR or UK GDPR applies, we rely on these legal bases:

  • Contract (Art. 6(1)(b)): to create and run your account, show your listings and, once ordering is on, take orders, hold escrow and pay out.
  • Legitimate interests (Art. 6(1)(f)): to keep the Service secure (sessions, security log, rate limits), prevent fraud and abuse, moderate content, measure usage in aggregate and fix bugs. You can object (section 10).
  • Legal obligation (Art. 6(1)(c)): to keep records, answer lawful requests and, once real payments start, meet financial rules.
  • Consent (Art. 6(1)(a)): not used today. If we add an optional feature that needs it, such as marketing email, we will ask first and you can withdraw it at any time.

8. How long we keep it, and what deleting does

8.1
Retention periods
DataHow long
SessionsValid for 30 days at most (10 minutes while two-factor is pending). Ended when you sign out or revoke them. Changing your password signs out your other sessions, and a password reset or a suspension signs out all of them. An account holds at most 20 sessions; the oldest are dropped. A daily housekeeping job deletes expired sessions.
One-time email tokensExpire after 1 hour (password reset) or 24 hours (email verification and email change) and work once. The daily housekeeping job deletes expired and used tokens.
API tokensUntil you revoke them or they expire (at most 365 days). The record of a revoked or expired token stays (name, prefix, hash and scopes); it cannot be used.
Security logWe do not delete entries automatically yet. They stay while your account exists, and they stay after you delete it. We aim to delete entries after 12 months once automatic clean-up is built.
NotificationsRead ones are deleted after 90 days and unread ones after 180 days, by a daily job. Deleting your account deletes them at once.
Account, profile and contentWhile your account exists. Section 8.2 says what deletion removes and what stays. Deleting a listing hides it; it does not erase its files or version history.
Daily usage totals per listingAbout 13 months. They hold counts and no personal data.
Orders, payments and disputesNothing is stored while ordering is off. Once it is on: as long as needed for the order, for dispute handling and for accounting. Expect at least the period in which a dispute or tax question could arise; we will fix a number before real payments start.
Short-lived technical recordsRate-limit counters, the hashes used to count a view or download once a day (about 25 hours), GitHub sign-in state (10 minutes) and similar records expire on their own, from minutes to about two days. Sign-in attempt counters in the database are deleted by the daily job after a day.
Provider logs at CloudflareSet by Cloudflare under its own retention rules and our plan. Workers Logs is switched on for debugging. Our code is written not to log passwords, tokens or message bodies. We do not control provider logs beyond configuration.
BackupsCloudflare keeps D1 point-in-time history for a limited time; deleted data ages out with it.
8.2

Deleting your account (Settings, Account; you confirm with your password, or by typing your handle if you have no password). You cannot do it while you are the only owner of an organisation: transfer or delete the organisation first. It cannot be undone from the app. Deleting:

  • signs you out everywhere and revokes your API tokens;
  • replaces your email address with a placeholder and erases your password hash, two-factor secret, recovery codes and notification settings;
  • clears your display name, bio, avatar (the image file is deleted), website, location and profile links, and removes your verified badge, so your profile is no longer shown;
  • removes your linked GitHub sign-in, your notifications, your follows and followers, your organisation memberships and any pending email links, and cancels invitations sent to you;
  • archives your listings, which hides them from lists and search; and
  • keeps your handle reserved, so nobody else can take it and pose as you.

Deleting does not erase everything. These stay:

  • Archived listings are hidden, not erased. Their files and version history stay in our database.
  • Reviews, discussion posts, comments, stars, activity records and reports you filed stay, and reviews, posts and comments may still appear under your handle. You can delete your own reviews before you close your account. For anything else, contact us and we will remove it where we can.
  • Security log entries about your account, with their IP addresses and user agents, and the record of your revoked API tokens. We do not delete them on a schedule yet.
  • Records we must keep by law, such as payment records once payments are live, and copies in backups until they age out.

9. How we protect it

9.1

Traffic uses HTTPS with HSTS. Passwords are hashed with PBKDF2-SHA256, a per-password salt and a secret pepper. Session and API token values are stored only as SHA-256 hashes. The session cookie is HttpOnly, Secure and SameSite. A strict Content-Security-Policy blocks inline scripts and scripts from other sites, apart from Cloudflare's analytics script. All database queries use bound parameters. Details, and what is not yet done, are on the Security page.

9.2

No system is perfectly secure. If a breach puts your personal data at risk, we will tell affected users and, where the law requires, the regulator, without undue delay.

10. Your rights

10.1

Whatever law applies to you, we will try to honour these requests. Under the GDPR, UK GDPR and similar laws you have the right to:

  • Access a copy of the personal data we hold about you.
  • Correct data that is wrong. You can edit your profile, email and password in Settings.
  • Erase your data, subject to section 5 and section 8.2.
  • Export your data in a common format. Settings, Your data, downloads one JSON file with your profile and preferences, linked sign-ins, active sessions, API token details, your security log, organisation memberships, your listings and version records, stars, reviews, discussions and comments, collections, follows and followers, notifications, activity and the reports you filed. It never contains your password hash, API token secrets or recovery codes. It does not contain the files inside your listings (download those from each listing). You can export 3 times an hour, and very large accounts are cut off at fixed limits, for example 1,000 listings and 2,000 security-log entries; ask us for the rest.
  • Object to processing based on legitimate interests, and ask us to restrict processing while we look at a complaint.
  • Withdraw consent where we rely on it.
  • Not be subject to a decision based only on automated processing with legal effects. We make none.
10.2

Settings lets you see your sessions and your last 50 security events and sign out other devices (Security), turn on two-factor sign-in (Security), revoke API tokens (API tokens), choose which notifications you get (Notifications), export your data (Your data) and delete your account (Account). If a control is not available when you read this, ask us and we will do it by hand.

10.3

To use a right that Settings does not cover, contact us (section 14). We may need to check it is you. We aim to answer within 30 days, which is the usual legal limit, and will say so if we need more time. Requests are free unless they are plainly unfounded or excessive.

10.4

California and some other US states give residents similar rights to know, delete and correct, and to opt out of the sale or sharing of personal data. We do not sell or share personal data for advertising.

10.5

You can complain to your data protection authority. In the EU you may choose the authority where you live or work. In the UK it is the Information Commissioner's Office. We would like the chance to fix the problem first.

11. International transfers

11.1

Cloudflare runs a global network, and requests may be handled in many countries. We have not committed to keeping your data in a particular region. GitHub also processes data in the United States and elsewhere. When personal data from the EEA, the UK or Switzerland is transferred to a country without an adequacy decision, we rely on the safeguards in our providers' data processing terms, which include the European Commission's Standard Contractual Clauses and, where the provider is certified, the Data Privacy Framework.

11.2

Public content and append-only records can be read from anywhere in the world.

12. Children

12.1

The Service is for people aged 18 and over. We do not knowingly collect data from anyone younger. If you think a child has given us data, tell us and we will delete it.

13. Changes to this policy

13.1

We will update this page when what we collect or who we share it with changes, and change the effective date at the top. Where we can, we will tell you in the app or on the site before a change that reduces your protection, and at least 14 days before it applies to you where the law or fairness calls for it. The source of this page is in our public repository, so its history is visible.

14. Contact

14.1

For privacy questions and requests, open an issue in the project repository that says only "privacy request" and no personal details. We will move to a private channel with you. Do not post your email address, account data or other personal information in a public issue. A dedicated privacy email address will be added here when it exists. For security vulnerabilities, use the private advisory process.

Last updated: