Let the people whose writing is in the index sell it - #4
Merged
Conversation
The board says who pays for this data and who is refused. Nothing said how the people whose work is being sold get any of it, and the blog post pitching exactly that had nowhere to send anyone: no signup, no onboarding, no payout. /sell is that. Prove you own a site (DNS TXT or one file under /.well-known, both automated, no 'email us' path), say which of our collections you publish into, add a USDC address, and take a share of what a crawler pays for access. The rate starts at 20% and climbs 5 points per verified property and per niche to a cap of 80%, using the same ladder the public board displays, so a partner is never shown two different numbers for the same thing. Attribution is ours because only this side knows whose rows were in the crawl that got paid for: every partner with a verified property and sources in the index shares each sale, pro-rata by items contributed, each at their own rate. The credit ref is the sale ref plus the partner id, so a settlement delivered twice pays once. It runs after the sale is booked and can never fail it: the money has already moved, and a split we can retry beats a 500 to a customer. @profullstack/partners owns none of the auth. It asks who is here and we answer from the session cookie the rest of the site already uses. Without PARTNER_VERIFY_SECRET the module refuses to start, which is correct (a guessable token pays the wrong person) but must not take the site down, so it is caught and /sell simply does not exist until the secret does. The pitch is in openPaths: charging a crawler to read our own recruiting page would be an odd way to run a marketplace. Verified against a throwaway Postgres, driving the real app: signed out gets the pitch and a redirect, apply lands on the dashboard, a property shows its real token, a verified property plus one niche reads 30%, a $10 sale splits to 300 cents, the same sale replayed adds nothing, and GPTBot reads /sell at 200 while / still answers 402. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0144uEVbZK3jdaQkwcLYTXPE
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The board now says who pays for this data and who gets refused. Nothing said how the people whose work is being sold get any of it, and the post pitching exactly that had nowhere to send anyone: no signup, no onboarding, no payout.
/sellis that.What a publisher walks through
/sell, public, showing the ladder and what they need./.well-known. Both automated; there is no "email us to get verified" path, because a manual step is a step nobody takes at 2am.The rate starts at 20% and climbs 5 points per verified property and per niche to a cap of 80%, using the same
commissionLadderthe public board displays, so a partner is never shown two different numbers for the same thing.Attribution
Only this side knows whose rows were in the crawl that got paid for, so the split lives here rather than in the module. Every partner with a verified property and sources in the index shares each sale, pro-rata by items contributed, each at their own rate.
The credit
refis the sale ref plus the partner id, so a settlement delivered twice pays once. The split runs after the sale is booked and can never fail it: the money has already moved, and a split we can retry is worth more than a 500 to a paying customer.Two decisions worth reviewing
/sellinstead of crashing the site. The module refuses to construct withoutPARTNER_VERIFY_SECRET, which is right (a guessable verification token pays the wrong person for someone else's work), but that refusal must not take the whole site down on a deploy where the variable was forgotten.openPaths. Charging a crawler to read our own recruiting page would be an odd way to run a marketplace. The data itself stays paywalled.The three tables arrive as migration
0006, matching the package's own schema, rather than running at boot, so they exist whether or not the program is switched on.Verified against a throwaway Postgres, driving the real app
GPTBotreads/sellat 200 and still gets 402 on/Deploy needs
PARTNER_VERIFY_SECRETset on the service. Until it is,/sell404s and everything else is unchanged.🤖 Generated with Claude Code
https://claude.ai/code/session_0144uEVbZK3jdaQkwcLYTXPE