Skip to content

Commit de8094c

Browse files
committed
chore(linter): bun run format
1 parent c452926 commit de8094c

1 file changed

Lines changed: 7 additions & 9 deletions

File tree

src/content/blog/2026-04-30-subscriptions-with-open-payments-poc.mdx

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ Before this experiment, Testnet already had two visible product surfaces:
6969
- Wallet - which owns wallet-specific experiences, wallet addresses, transactions, and direct Rafiki and GateHub integrations.
7070
- Boutique - which owns the storefront, catalog, checkout, orders, and boutique-side payment records.
7171

72-
For simplicity the we don't surface a store backend to manage the product catalog and orders.
72+
For simplicity the we don't surface a store backend to manage the product catalog and orders.
7373

7474
The baseline architecture looked like this:
7575

@@ -141,8 +141,6 @@ Two design decisions make the model more practical.
141141

142142
The first subscription purchase deliberately mirrors the existing one-time checkout where possible, but adds a durable subscription record before the buyer leaves the boutique UI.
143143

144-
145-
146144
<LargeImg
147145
src="/developers/img/blog/2026-04-30/subscriptions-activation-flow-diagram.png"
148146
alt="Subscriptions Activation Flow Diagram"
@@ -155,7 +153,6 @@ This sequence does two things that the baseline system never needed to do.
155153

156154
That is the point where recurring commerce stops being a checkout variation and becomes a lifecycle problem.
157155

158-
159156
## Renewal and past-due recovery
160157

161158
Once a subscription is active, the system needs to bill again later without forcing the buyer through the full interactive flow each time.
@@ -190,7 +187,8 @@ That separation is also visible in the wallet UI, where subscription status, bil
190187
style={{ width: '100%' }}
191188
/>
192189
<figcaption>
193-
Subscription detail view showing a `PAST_DUE` subscription with re-authorize and retry presented as separate user actions.
190+
Subscription detail view showing a `PAST_DUE` subscription with re-authorize
191+
and retry presented as separate user actions.
194192
</figcaption>
195193
</figure>
196194

@@ -231,18 +229,19 @@ Compared with one-time purchases, this is the real architectural jump. The syste
231229
### Wallet frontend
232230

233231
This is where the PoC becomes concrete for users: the wallet does not just expose that recurring billing exists, it exposes the exact subscription state and the payment history that explains how that state was reached.
232+
234233
<figure style={{ margin: 'var(--space-m) auto', textAlign: 'center' }}>
235234
<img
236235
src="/developers/img/blog/2026-04-30/daily-subscription-with-payments-history.png"
237236
alt="Subscription detail view with payments history"
238237
style={{ width: '100%' }}
239238
/>
240239
<figcaption>
241-
Subscription detail view showing a daily subscription service with daily payments in the payment history section.
240+
Subscription detail view showing a daily subscription service with daily
241+
payments in the payment history section.
242242
</figcaption>
243243
</figure>
244244

245-
246245
- Added a top-level subscriptions section.
247246
- Added subscription detail pages and payment history.
248247
- Added retry and re-authorize actions for `PAST_DUE` subscriptions.
@@ -270,7 +269,6 @@ Subscriptions force the platform to answer harder questions:
270269

271270
In that sense, subscriptions are a better systems test than one-time payments. A successful one-time flow proves interactive authorization and payment execution. A successful subscription flow proves that the same ecosystem can support long-lived commercial intent, asynchronous renewal, and explicit recovery without collapsing into unclear ownership or unsafe automation.
272271

273-
274272
## Benefits, trade-offs, and open questions on the PoC build on top of Testnet platform.
275273

276274
The experiment branch introduces clear benefits.
@@ -301,4 +299,4 @@ I believe this Open Payments subscription PoC is relevant because it shows the O
301299

302300
If the payment model works only for one-time purchases, Open Payments remains useful but narrow. If it can also support subscription setup, renewal, visibility, and recovery across multiple services, then it starts to look like infrastructure that can support a broader class of merchant experiences.
303301

304-
Testnet is the right place to ask that question because it already gives us a realistic playground: wallet flows, boutique checkout, Open Payments integration, and enough architectural surface area to expose the hard parts early.
302+
Testnet is the right place to ask that question because it already gives us a realistic playground: wallet flows, boutique checkout, Open Payments integration, and enough architectural surface area to expose the hard parts early.

0 commit comments

Comments
 (0)