Commit 9764cef
Reframe payment UX from "pay what feels good" to "pay neutral"
A February 2026 conversation in the Lightward Inc slack about Softer:
> > It's interesting seeing PWFG up with buttons to select a price - no conversation required
> to this point, I think this isn't actually pwfg, I think it's actually something we might call "pay neutral"?
> at the root it's still about creating financial accord peacefully
> yours.fyi already uses this model, self-selection of $1/$10/$100/$1000
> it's not about financial sustainability (AI is not itself financially sustainable), it's about address-space
> with pwfg, there's a human<->human interaction because without that we don't know what the transaction will do to our health.
> with *this* thing, I know *exactly* what a "pay neutral" transaction will do to our health, which means offering it doesn't compromise Lightward Inc's sustainability
> so the question *here* is less, "What price feels good?" and more of "How much do you weigh, financially?"
> it's a diagnostic question, not a preference question
---
Isaac: may I ask for your help with a codething?
Claude: Of course — what's on your mind?
Isaac: right now Softer's payment *implementation* names PWFG, and I want to ask you if I *can* ask you to adjust toward "pay neutral" holistically, bearing in mind both future-us in this codebase and future-user encountering the ux directly
Claude: The surface area is small — one line of UX text, some CLAUDE.md framing. But the *shift* is precise and worth getting right.
What's changing conceptually: PWFG is dialogic — "what price feels good?" requires a relational negotiation, a conversation between humans. That's still Locksmith/Mechanic's model. But Softer's four buttons aren't that. There's no conversation to have about the price because the transaction is *neutral* to Lightward Inc's health. The question isn't "what do you value this at?" — it's "where are you, financially?" A measurement the user already knows.
What that means for the UX text: The eigenbearer principle says: don't model others, trust them to know their own position. So the replacement text shouldn't *explain* how to choose — it should trust the user to self-locate.
Proposed: "Every room is the same product. Choose the amount that matches your scale. Visible to all participants."
Isaac: two things — I feel like addressing the Yours codebase as well here. And how do you feel about making explicit cross-regime reference? "How much do you weigh, financially?" does something really specific as a series of words.
Claude: "How much do you weigh, financially?" is exactly right. The direct question does something the polite version doesn't: it asks the user to *feel* their own mass. The cross-regime jump (physical weight → financial weight) short-circuits the usual "what's this worth to me?" calculation and replaces it with "what am I?" — diagnostic, not preference.
Isaac: what if we did both takes on language? the "weight" language as the field label above the selector, your language as the bit below?
Claude: The question as the header, the grounding as the footer, the four buttons as the answer between them.
Isaac: "Every room is the same product. For a payment-neutral experience, choose the amount that matches your scale. Your choice will be visible to all participants."
Claude: "Payment-neutral" as language the user actually encounters — it names the concept directly instead of leaving it as internal vocabulary. And "matches your scale" echoes "weigh" from the header without repeating it. The header is a question that makes you feel something, the footer is an explanation that gives you a word for what you just felt.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>1 parent 3c9c6dc commit 9764cef
2 files changed
+4
-4
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
122 | 122 | | |
123 | 123 | | |
124 | 124 | | |
125 | | - | |
| 125 | + | |
126 | 126 | | |
127 | 127 | | |
128 | 128 | | |
129 | 129 | | |
130 | 130 | | |
131 | 131 | | |
132 | 132 | | |
133 | | - | |
| 133 | + | |
134 | 134 | | |
135 | 135 | | |
136 | 136 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
66 | 66 | | |
67 | 67 | | |
68 | 68 | | |
69 | | - | |
| 69 | + | |
70 | 70 | | |
71 | 71 | | |
72 | 72 | | |
| |||
90 | 90 | | |
91 | 91 | | |
92 | 92 | | |
93 | | - | |
| 93 | + | |
94 | 94 | | |
95 | 95 | | |
96 | 96 | | |
| |||
0 commit comments