PromptStack

Marketplace

A two-sided platform connecting buyers with independent sellers: listings, orders, commission, seller payouts, reviews, and dispute handling. Split payments are the distinguishing requirement.

You can change every choice once the builder opens.
Core features for the MVP
  • Seller onboarding with identity and payout account verification
  • Listing creation with images, pricing, and availability
  • Search and filtering across listings
  • Checkout that splits payment between seller and platform commission
  • Seller dashboard showing orders, earnings, and payout schedule
  • Reviews and ratings on both sides of a transaction
  • Dispute and refund workflow with operator intervention
  • Moderation queue for reported listings
Left for later
  • In-app messaging between buyer and seller
  • Promoted or featured listings
  • Multi-currency payouts
  • Seller analytics and pricing suggestions

Recommended stack

SectionRecommended
LanguageTypeScript
Frontend frameworkNext.js
UI and stylingTailwind CSSshadcn/ui
BackendNext.js server
API styleREST
Database enginePostgreSQL
Database providerNeon
ORM and data accessDrizzle
CachingCDN cachingUpstash Redis
AuthenticationClerk
Authorization and rolesRole-based access controlOrganization and team roles
SecurityInput validationRate limitingCORS and CSRF protectionSecurity headers and CSPSecrets managementAudit logsTwo-factor authentication
File storageAWS S3
SearchAlgolia
Background jobs and cronInngest
Email and notificationsResend
PaymentsStripe
Hosting and deploymentVercel
CI/CDGitHub Actions
Monitoring and analyticsSentryPostHog
TestingVitestPlaywright
ExtrasSEOAccessibility (WCAG)BackupsDocumentation

Data model draft

Seller

An independent party selling on the platform.

  • id
  • userId
  • displayName
  • payoutAccountRef
  • verificationStatus
  • commissionRateBasisPoints
  • joinedAt
  • Belongs to one User
  • Has many Listings
  • Has many Payouts
Listing

Something offered for sale by a seller.

  • id
  • sellerId
  • title
  • description
  • priceMinorUnits
  • currency
  • quantityAvailable
  • status
  • publishedAt
  • Belongs to one Seller
  • Has many OrderLines
Order

A buyer purchase, which may span several sellers.

  • id
  • reference
  • buyerId
  • status
  • totalMinorUnits
  • currency
  • placedAt
  • Belongs to one User as buyer
  • Has many OrderLines
  • Has many Disputes
OrderLine

One listing within an order, carrying the commission split.

  • id
  • orderId
  • listingId
  • sellerId
  • quantity
  • unitPriceMinorUnits
  • commissionMinorUnits
  • fulfilmentStatus
  • Belongs to one Order
  • Belongs to one Listing
  • Belongs to one Seller
Payout

Money transferred to a seller for settled orders.

  • id
  • sellerId
  • amountMinorUnits
  • currency
  • status
  • providerReference
  • periodStart
  • periodEnd
  • Belongs to one Seller
Review

Feedback left after a completed transaction.

  • id
  • orderLineId
  • authorId
  • subjectId
  • rating
  • body
  • createdAt
  • Belongs to one OrderLine
  • Written by one User
  • About one User or Seller