Skip to main content

Promotions & Sponsors

Two ways to monetize your directory beyond premium listings.

The two systems

SystemWho buysBilling
PromotionsProject owners wanting extra visibilityMonthly subscription
SponsorsCompanies/brands wanting a permanent slotMonthly subscription

Both live in the admin panel. Pricing comes from advertising.config.ts.

Promotions

Three placement types, each independent:

PlacementWhere it appearsDefault price
BannerHorizontal ad below the site header, every page$69/mo
Catalog CardPromoted card mixed into the project grid$39/mo
Detail CardSidebar card on project detail pages$19/mo

Buyers at /promote can pick one, two, or all three. Picking all three triggers a 30% discount (via a Stripe coupon — see Advertising Config).

Promotion admin

/admin/promotions management page

Admins can:

  • Approve new purchases (if manual review is required)
  • Edit start / end dates
  • Revoke a placement
  • See which projects are currently running ads

Sponsors

Sponsors get logo placement in a sponsor section (sidebar, footer, or dedicated partners page — depending on your layout). Recurring monthly subscription.

maxSponsors: 8 in advertising.config.ts caps how many run simultaneously. Excess buyers go on a waitlist.

Stripe setup

Each placement and the sponsor plan needs a recurring monthly Price in Stripe:

.env.local
STRIPE_PRICE_ID_PROMO_BANNER=price_...
STRIPE_PRICE_ID_PROMO_CATALOG=price_...
STRIPE_PRICE_ID_PROMO_DETAIL=price_...
STRIPE_PRICE_ID_PARTNER_SUBSCRIPTION=price_...
STRIPE_COUPON_ID_PROMO_ALL_THREE=    # optional 30% off bundle

See Payments for full Stripe flow.

Feature flags

Turn the whole system off with:

config/features.config.ts
promotions: false,   // /promote page → 404, admin section gone
partners: false,     // sponsor slots → hidden

When to use which

  • Premium listings — the starter revenue stream. User pays once, gets upgrade for one listing.
  • Promotions — recurring revenue for projects that already paid premium and want more visibility.
  • Sponsors — unrelated-to-directory brands who want to reach your audience (e.g. an IDE sponsoring a "developer tools" directory).