Skip to content

Let the people whose writing is in the index sell it - #4

Merged
ralyodio merged 1 commit into
mainfrom
worktree-partners
Sep 6, 2026
Merged

Let the people whose writing is in the index sell it#4
ralyodio merged 1 commit into
mainfrom
worktree-partners

Conversation

@ralyodio

@ralyodio ralyodio commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

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.

/sell is that.

What a publisher walks through

  1. The pitch at /sell, public, showing the ladder and what they need.
  2. Prove they own a site. A DNS TXT record, or one file under /.well-known. Both automated; there is no "email us to get verified" path, because a manual step is a step nobody takes at 2am.
  3. Pick niches from our own public collections, resolved per request, so a collection added today is claimable today. A free-text field would collect forty spellings of "machine learning".
  4. Add a USDC address.
  5. Get paid a share of what crawlers pay 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 commissionLadder the 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 ref is 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

  • A missing secret disables /sell instead of crashing the site. The module refuses to construct without PARTNER_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.
  • The pitch is in 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

  • signed out: the pitch renders with a sign-in call to action, the dashboard redirects to login
  • apply lands on the dashboard; applying twice does not make a second account
  • a property shows its real verification token and instructions
  • a verified property plus one niche reads 30%
  • a $10 sale splits to 300 cents; the same sale replayed adds nothing
  • GPTBot reads /sell at 200 and still gets 402 on /

Deploy needs PARTNER_VERIFY_SECRET set on the service. Until it is, /sell 404s and everything else is unchanged.

🤖 Generated with Claude Code

https://claude.ai/code/session_0144uEVbZK3jdaQkwcLYTXPE

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
@socket-security

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Added@​profullstack/​partners@​0.2.07610010088100

View full report

@ralyodio
ralyodio merged commit 77ddcb1 into main Sep 6, 2026
3 checks passed
@ralyodio
ralyodio deleted the worktree-partners branch September 6, 2026 04:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant