Privacy
Privacy policy
What UpFork keeps about you and why, who else handles it, how long it's kept, and how to have it corrected or removed.
Last updated
Who we are
UpFork (upfork.dev) is run by Ramin Valadan. For anything about your data, write to support@upfork.dev.
What we keep
- Your account: your e-mail address, your name, and your password as a one-way hash, never the password itself. If you sign in with Google, your Google account’s identifier and the address Google confirmed. If you turn on two-step sign-in, its secret (encrypted) and your recovery codes (as hashes).
- Your profile: what you choose to add: a photo, a headline, a bio, where you are, skills, experience, projects (with their pictures), languages and links. A developer’s profile is public, and so is a contact address they add to it. A phone number is shown only to whom you choose (no one, your PDF résumé, signed-in members or everyone), and never written into your page: a visitor asks for it, a few times a minute at most.
- PDF résumés: each one a developer issues, as it was: the file, its fingerprint (SHA-256), what it printed, and the photo it printed. Anyone with its number or QR code sees its verification page: your name and that photo, what UpFork checked, and what the résumé says about you (its phone number only masked, until a visitor asks for it). You can withdraw one at any time; its page then says only that it was withdrawn.
- Selling: a developer’s application (the links they proved are theirs, a résumé if they added one, and what they wrote), their products and releases, and the wallet addresses they’re paid at.
- AI summaries: a product’s AI summary (what an AI assistant reads first), who wrote it (a person, or Claude from a draft) and whether its developer reviewed it, what UpFork’s summary check found when it read it against the code, and the drafts Claude wrote for it: their text, who accepted, edited or discarded each and when. For each call to Claude we keep only numbers: the tokens and what it cost, never the text sent (see Who else handles it).
- Notes on lessons: what UpFork’s lesson check and Claude said of each version of a lesson (its part, what’s wrong and a line to write instead), when, why it was checked (a publish, a review, your “Check my lessons”) and who sees them (you and the admin, or the admin only). Not the text sent, which is your article.
- Orders and payments: what was ordered and for how much, the transaction IDs you enter, and the transfers we find for them on the TRON blockchain. Transactions on TRON are public by nature.
- Downloads and installs: each download link we make (for which file, when, how often it’s used, and the IP address it was made from), and the names of your CLI tokens. The tokens themselves are kept only as hashes.
- What you have and watch: the products you have (bought, downloaded, installed with your CLI token, or whose AI prompt you copied), the version you last took and when, and the products you chose to watch or stop watching, so we can tell you of their updates. Their developers see how many people have a product, never who.
- Sign-ins: for each session, when it started and was last used, its IP address and the browser’s user agent, to keep accounts safe. For each sign-in, also how you signed in (password, Google, a code), its IP address and country and the kind of device and browser, kept a year, so you and UpFork’s admin account can tell a stranger’s sign-in from yours.
- E-mails we send you: the address, subject and text of each message, so none goes out twice. Messages with a one-time link (confirming your address, resetting your password) lose their text once they’re sent.
- Notifications: what we told you on the site (an order paid, a sale, a release approved), whether you’ve read it, and which kinds you want on the site or by e-mail.
- Support tickets: each ticket you open (its subject, the order or product it’s about), every message in it either way, the files on it (pictures, PDFs and ZIPs), and whether you said it helped. Only you and UpFork’s admin account, which answers tickets, read it; if it’s about a developer’s product and UpFork brings that developer in, they read that ticket too (never the admin’s notes), and you see that they’re in. A file uploaded but never sent is deleted after a day. If you can’t sign in and use the support form, we keep the address you gave, what you wrote and your IP address for a day, and send a code only if an account uses that address. When UpFork drafts replies with AI, we also keep the reply Claude drafted for a message of yours, its note to our admins, what it cost, and what came of it (used, changed, discarded): only UpFork’s admins see drafts, never you or a developer brought in, and every reply you get is sent by a person.
- Mail to info@ or support@: the message as it arrived (its sender, subject, text and files) and our replies, so UpFork’s admin account can answer it from the site, with what the admins use to keep it in order: answers still being written (drafts, with their files), and labels, stars and reminders on a conversation. Pictures in a message aren’t loaded until the admin asks for them. Cloudflare Email Routing receives the message first and hands it to a small Cloudflare Worker, which passes it to our server; a copy is also forwarded to the founder’s own mailbox, which is a Gmail one (Google).
- Reviews and bug reports: a review you write of a product you have is public, with your name, photo and the version you had. A bug you report shows its title, version and state in public; its details, your browser and system and its screenshots are only for the product’s developer and UpFork. We also keep the bugs you say happen to you too, and the reviews you report as abuse (only UpFork sees who reported them). If you sell products, how soon you answer the bugs reported on them and how many you fix is public once five were reported, on your products, your profile and the résumés you ask for.
- Likes: which products you liked.
- Searches of the catalog and of lessons: the words searched for, when, and how many products or lessons they found, and your account if you were signed in, never your IP address. Searches an AI assistant makes through the MCP server are in here too (see below). They show us what people look for that UpFork doesn’t have yet.
- AI assistants: an assistant’s search of products or lessons is kept like any search: the words, when, how many results, and your account if it was signed in, for 180 days, never your IP address. The one exception: when a member of a team searches lessons, the search is not logged, because its words may name the team’s own code. Besides that, a log of tool calls keeps which tool was used, when, whether it worked, how long it took, your account and the app, but no arguments: not what the assistant asked or sent. Preflight (the project’s packages and a sentence about the task) is used to answer and then dropped: it is not stored. For each app you connect by signing in: its name, where it’s from, what you allowed it, when you connected it and when it was last used. Its keys are kept only as hashes.
- Lessons and drafts: a lesson draft, written by you or by an assistant through your account, is private until its developer publishes it. A published lesson is public, with your name or your team’s, and so are its parts. Confirmations and disputes of a lesson record the account that made them, and show the AI model, the app and the versions used, never the account’s name.
- Articles, comments and ratings: an article you publish is public with your name. You can take it off the site, but not delete it, and its lessons are never deleted; only an article you never published can be deleted. A comment you write is public with your name; a like and a rating are kept with your account and shown as totals.
- The ledger: every published lesson and article version, and every confirmation or dispute, is written into a signed, public chain that can’t be changed (how it works). Since 2026-10-30 an entry names its author, and a confirmation or dispute its member, by an account number alone (a_ and 20 hex digits that say nothing else about them), never an e-mail or a name. The author’s page handle is shown beside it from the account, for as long as the account is open. Entries written before that also hold the handle the author had then, and keep it: a signed entry can’t be changed. Because the chain can’t be changed, an entry stays after its account is closed; it is then shown as “a former member”, and its signed record keeps only the number, or, in an older entry, the number and the handle it was written with.
- Teams: a team’s name and slug, its members and their roles, the invitations (an e-mail address, or a link, good for a week), and its private lessons. Only the team’s members can read them. They are never in public search, the sitemap, llms.txt, the ledger or the analytics, and its members’ searches of lessons are not logged. UpFork opens one only for security, abuse or a legal requirement. Deleting a team deletes all of it for good; UpFork keeps only a note that a team was deleted, with counts and no name or content.
What we don't do
- No advertising, and nothing that follows you from site to site: we count visits without cookies (see Counting visits).
- We don’t sell or rent your data to anyone.
- We never see card or bank details: payments are USDT transfers on the TRON blockchain.
Counting visits
To learn which pages people read, how they found them and how fast the pages load, the site uses Cloudflare Web Analytics. It sets no cookies, keeps nothing in your browser, and doesn’t fingerprint you or follow you to other sites.
For each page you open, Cloudflare records its address without the query (the part after “?”), the site that linked to it, your browser, operating system, kind of device and country, and how long the page took to load. We see only totals, never who you are.
It starts when you open one of the site’s public pages, and from there counts the pages you go on to. Opening a sign-in, account, order, payment or download page directly doesn’t start it. Blocking it changes nothing on the site.
UpFork also counts the views of each product’s page, each developer’s page and each article, which their developers see, and where the visitor came from (the catalog, a search, another site). For an article, also the name of the site that sent you (dev.to, say), the word a shared link carries (?ref=x), how far down the article you read (a quarter, half, three quarters, the end) and whether you copied its install command, kept only as totals by day. A view counts once a day: to know it’s the same visitor, we keep a scrambled code (a hash) made from your account, or, if you’re not signed in, from your IP address and browser, with a secret that changes every day. Neither is kept as it is, and the codes and the day’s secret are deleted after two days, after which no view can be traced to anyone. Only the totals stay.
UpFork counts the pages people open on the site too, in the same way: the page’s address without the query, the site that sent you, your country, the kind of device, browser and operating system, and the same daily scrambled code, never your IP address. If you’re signed in, the pages you open are linked to your account, which UpFork’s admin account sees when it helps you. These records are deleted after 180 days. Search engines and AI crawlers are counted from our server’s log by name only (which crawler, which page, when), and the log itself is kept a week.
Who else handles it
- Cloudflare carries every request to the site, to protect it and make it faster, so it sees your IP address and browser. It also counts visits for us (above), and its Email Routing and a Worker of ours receive the mail sent to info@ and support@ (above).
- Our server, in France, holds the site, its database and the files developers upload.
- Resend delivers the e-mails we send you.
- Anthropic, the company that makes Claude, when UpFork drafts a product’s AI summary: we send it the product’s title, its one-line summary, its code (the files UpFork delivers, or the text files of its release ZIP) and the titles of its published lessons, and it sends back the summary. Nothing about your account goes with it: no e-mail address, order, payment or message. Anthropic handles it as our processor, under its Data Processing Addendum; its commercial terms forbid it to train its models on what we send, and it deletes what we send and what it answers within 30 days, unless its safety systems flag them (then up to two years) or the law requires longer. A developer turns this off for a product (Developer panel → the product → Details: “Let Claude draft this summary”), and UpFork’s admin can turn it off for everyone.
- Anthropic again, when UpFork checks lessons: we send it the lesson’s text, the article’s title, summary and the text before the lesson, the product’s name, what UpFork’s own rules found, and the titles, rules and fixes of the published lessons most like it; it sends back notes. Nothing about your account goes with it. It happens when you publish an article or send it for review (once for each new or changed lesson) and when you press “Check my lessons”; once, when it started, over every published lesson, for UpFork’s admin only. The same terms apply as for summaries: our processor, no training on it, deleted within 30 days. To keep a draft from being sent, don’t press the button before you publish; what’s published is checked unless UpFork’s admin has the lesson check turned off.
- Anthropic again, when UpFork drafts a reply to a support ticket for its admins: we send it the ticket’s topic and subject, the messages in it that you see (yours, UpFork’s replies and a developer’s it brought in, never the admins’ notes or the files), the name, kind, price and one-line summary of the product it’s about or the title of the article, and UpFork’s own help (its docs, questions, terms, this policy and the saved replies its admins use); it sends back the draft. No account data goes with it: no e-mail address (not even a guest ticket’s), and no name, order, payment or file from your account; an e-mail address, transaction ID or wallet address you type in a message is blanked before it’s sent. It happens each time you open a ticket or write to one, while it waits for UpFork’s answer. The same terms apply: our processor, no training on it, deleted within 30 days. UpFork’s admin can turn it off for everyone; to keep a message from it, write to support@upfork.dev by e-mail instead, which no AI drafts a reply to.
- Cloudflare, Resend and Anthropic are not in France: they handle your data in other countries too.
- Google, if you choose to sign in with it: it tells us your account’s identifier, name and confirmed e-mail address. Google also holds the founder’s Gmail mailbox, where a copy of the mail sent to info@ and support@ arrives.
- TronGrid, whose API we ask about a payment’s transaction on the TRON blockchain. It gets the transaction, not who you are.
- GitHub, and a developer’s own website, when they prove a link is theirs: we fetch the gist or file from there.
How long we keep it
- Your account and what belongs to it stay until you ask us to close it.
- A lesson, or an article, that has been published is kept for good: nobody can delete it on UpFork, not even you. You can take an article off the site, and a draft or an article that was never published can be deleted.
- Closing an account (UpFork’s admin does it, when you ask) deletes your e-mail address (it can open a new account afterwards), password, two-step key, Google link, sessions, tokens, connected apps, photo, profile, proved links, résumés, drafts, notifications and settings, saves, likes, follows and team memberships. What stays, under “a former member” and with no page: the lessons and articles you published, your comments, reviews and ratings, and your confirmations of lessons. Orders, payments and support tickets stay on record under your account number, with no name or address on the account. The TRON wallet addresses on the account stay with its orders and payments; they are public on the blockchain anyway. What was written in a ticket, and mail you sent to info@ or support@, stays as written. A product you sold is hidden from the store, not deleted, and its buyers keep their downloads.
- Sessions end when you sign out, or after a week.
- Searches of the catalog and of lessons, and AI assistants’ uses of the MCP server, are deleted after 180 days; closing an account cuts them from it at once.
- Lesson drafts stay private until they are published or dropped, and are deleted when your account is closed. A team’s private lessons stay until its owner deletes them or the team. A team invitation works for a week.
- The ledger is permanent: it can’t be changed, so its entries stay after an account is closed. Those written from 2026-10-30 hold only the account number; older ones also hold the handle they were written with, which can’t be taken out. Wherever the ledger shows who wrote an entry, a closed account is “a former member”. Published lessons and articles stay too, under the same name, as the terms say.
- Notifications are deleted after 180 days.
- A product’s AI summary drafts stay with the product, and are deleted with it. The cost of each call to Claude is kept as numbers only.
- A lesson’s notes stay with its article (or the lesson), and are deleted with it.
- Support tickets stay with your account, like your orders; once it is closed they stay on record under its number.
- A ticket’s AI reply drafts stay with the ticket, and are deleted with it.
- The codes that tell whether a view was already counted today are deleted after two days; the views stay as totals.
- A connected app stays until you disconnect it, or until it goes unused for 60 days.
- Nightly backups are kept for 14 days, so what closing an account deleted is gone from them after that.
Your choices and rights
You can see and change your name, e-mail address, password, two-step sign-in and profile on your account pages. For a copy of your data, a correction you can’t make yourself, or to have your account closed and your data deleted, write to support@upfork.dev from your account’s address. We answer within 30 days.
Children
UpFork isn’t meant for anyone under 16, and we don’t knowingly keep their data.
Changes to this policy
When this policy changes, the date at the top of the page changes with it.