Building MyZubster: When Marketplace Categories Meet Real Payments

Leader โ—1 โ—2 โ—37
calendar_today ago โ€ข schedule2 min read

Building MyZubster: When Marketplace Categories Meet Real Payments

Today I pushed another important update to MyZubster, focused on two areas: completing the Marketplace experience and making subscription ownership much clearer.

Marketplace: 12/12 categories covered

The Marketplace already supported 12 categories for real listings, but our integrated demo content only represented six of them.

We added the missing six:

๐ŸŒฑ Plants
๐ŸŽ’ Accessories
๐Ÿค Volunteering
๐Ÿถ Pet Adoption
๐Ÿ”Ž Pet Lost & Found
๐Ÿพ Pet Services

Now every category available to users has at least one corresponding demo inside the actual Marketplace.

I also added a regression test that checks category coverage automatically. If we introduce another Marketplace category later and forget to provide demo coverage, the test will catch it.

That takes us from 6/12 to 12/12 Marketplace demo coverage.

Then came an interesting payment problem

While testing the monetization flow, I found an account with an active โ‚ฌ9.90/month Stripe subscription, while Zorgax โ€” MyZubster's AI assistant โ€” was displaying:

Zorgax: Free

At first, this looked like a failed subscription migration.

After tracing the real production payment, however, the system was actually right.

The โ‚ฌ9.90 subscription belonged to Marketplace Seller, not Zorgax Pro.

Same price.

Same account.

Different product.

And that's an important distinction in a billing architecture.

A payment isn't an entitlement

We deliberately did not convert the Seller payment into Zorgax Pro just because both products cost โ‚ฌ9.90.

Instead, we changed the UI and architecture to represent them independently.

The account can now display:

Zorgax: Free

Marketplace: Seller active ยท until the actual subscription expiration date

The interface also recognizes the active Seller membership instead of continuing to ask the user to become a Seller.

No duplicate payment.

No fake entitlement.

No rewriting Stripe metadata to make the data fit the UI.

Cleaning up the architecture

The Zorgax monetization work is also moving toward a clearer model:

PaymentIntent โ†’ Purchase โ†’ Entitlement

Each layer answers a different question:

PaymentIntent: Is there a payment being processed?

Purchase: What did the user actually buy?

Entitlement: What is the user allowed to access?

This separation becomes especially important once one platform contains multiple paid products.

A โ‚ฌ9.90 payment by itself should never be enough to decide what somebody owns.

The product identity matters.

Crypto + Stripe

Zorgax also supports a BTC payment path alongside Stripe.

The crypto checkout uses dynamic EUR โ†’ BTC quoting and only activates access after payment verification.

Stripe and crypto can therefore be different payment rails while ultimately feeding the same concept of product ownership.

That's the direction I want for MyZubster: multiple payment methods, one consistent entitlement model.

What changed today

Marketplace demo coverage: 12/12 โœ…

Marketplace Seller subscription detection: working โœ…

Seller and Zorgax subscriptions: separated โœ…

Existing Stripe subscription: preserved โœ…

Duplicate payment requirement: none โœ…

Zorgax BTC checkout architecture: integrated โœ…

Regression coverage for Marketplace categories: added โœ…

This was one of those development sessions where a seemingly simple UI inconsistency exposed a much more important architectural question:

What exactly did the user pay for?

Getting that answer right matters more than making a green "Pro" badge appear on the screen.

That's how we're continuing to build MyZubster: not just adding features, but making sure the pieces behave like one coherent ecosystem.

MyZubster #WebDevelopment #Stripe #Marketplace #JavaScript #NodeJS #Payments #SaaS #IndieDev #BuildInPublic

๐Ÿ”ฅ Join developers growing publicly
Share your knowledge, build in public, and grow your developer presence with a global community.

More Posts

5 Web Dev Pitfalls That Are Silently Killing Your Projects (With Real Fixes)

Dharanidharan - Mar 3

Is Google Meet HIPAA Compliant? Healthcare Video Conferencing Guide

Huifer - Feb 14

Building MyZubster Marketplace Demo v2: A Marketplace You Can Explore Without Fake Transactions

Myzubster - Sep 13

Stripe Payments in Next.js 15 โ€” The Setup I Use for Every SaaS Project

Anas Sheikh - Aug 30

Measuring Loop Velocity Without Portfolio Rows

Pocket Portfolio - May 4
chevron_left
2k Points โ€ข 40 Badges
Rimini
45Posts
2Comments
14Connections

Related Jobs

View all jobs โ†’

Commenters (This Week)

1 comment
1 comment

Contribute meaningful comments to climb the leaderboard and earn badges!