← All templates

Auction Platform

E-commerce · React + Node (Express) · 19 @molecule/* packages

eBay-like bidding platform with bid system, countdown timers, and auto-extend — with built-in Stripe-backed subscription tiers

Open in Molecule

What is inside

  • auth
  • search
  • payments
  • notifications
  • realtime
  • image-upload
  • subscriptions

Screens (15)

  • Landing /
  • Login /login
  • Signup /signup
  • ForgotPassword /forgot-password
  • ResetPassword /reset-password
  • BrowseAuctions /auctions (signed in)
  • AuctionDetail /auctions/:id (signed in)
  • MyBids /my-bids (signed in)
  • SellListing /sell/new (signed in)
  • Watchlist /watchlist (signed in)
  • Settings /settings (signed in)
  • SellerDashboard /seller (signed in)
  • Notifications /notifications (signed in)
  • SellerProfile /sellers/:handle (signed in)
  • WonAuctionCheckout /my-bids/won/:id/checkout (signed in)

Data model (10 tables)

  • bids — id, listing_id, bidder_id, amount, created_at
  • devices — id, createdAt, updatedAt, userId, name, pushPlatform, pushSubscription, hasPushSubscription
  • listings — id, seller_id, title, description, category, starting_price, reserve_price, buy_now_price, …
  • notifications — id, user_id, type, entity_id, read_at, created_at
  • payments — id, createdAt, updatedAt, userId, transactionId, productId, platformKey, data, …
  • product_variants — id, productId, name, sku, price, inventory, createdAt, updatedAt
  • products — id, name, slug, description, price, currency, status, imageUrl, …
  • seller_reviews — id, seller_id, reviewer_id, rating, body, created_at
  • watchlist — id, user_id, listing_id, created_at
  • won_orders — id, listing_id, buyer_id, seller_id, amount, shipping_address, status, payment_id, …

API (12 handlers)

  • \_notify api/src/handlers/_notify.ts
  • auctions api/src/handlers/auctions.ts
  • auth-reset-password api/src/handlers/auth-reset-password.ts
  • bids api/src/handlers/bids.ts
  • checkout api/src/handlers/checkout.ts
  • listings api/src/handlers/listings.ts
  • me api/src/handlers/me.ts
  • my-bids api/src/handlers/my-bids.ts
  • notifications api/src/handlers/notifications.ts
  • seller api/src/handlers/seller.ts
  • sellers api/src/handlers/sellers.ts
  • watchlist api/src/handlers/watchlist.ts

Subscription tiers

free / pro / team — gated by: maxBids, maxListings, maxWatchlist, advancedFeatures, canExport, retentionDays

Built from 19 @molecule/* packages

Browse all @molecule/* packages →

Required secrets

  • DATABASE_URL PostgreSQL connection string
  • STRIPE_SECRET_KEY Stripe secret key
  • STRIPE_PUBLISHABLE_KEY Stripe publishable key
  • STRIPE_WEBHOOK_SECRET Stripe webhook secret
  • MEILISEARCH_API_KEY MeiliSearch API key
  • S3_BUCKET S3 bucket for listing images
  • AWS_ACCESS_KEY_ID AWS access key
  • AWS_SECRET_ACCESS_KEY AWS secret key
  • MAILGUN_API_KEY Mailgun API key
  • MAILGUN_DOMAIN Mailgun domain

The @molecule/* packages are Apache-2.0. The app you build from this template is yours to export and self-host. Licensing