Skip to content

Program Marketplace Categories#3947

Draft
pepeladeira wants to merge 46 commits into
mainfrom
program-marketplace-categories
Draft

Program Marketplace Categories#3947
pepeladeira wants to merge 46 commits into
mainfrom
program-marketplace-categories

Conversation

@pepeladeira

@pepeladeira pepeladeira commented May 25, 2026

Copy link
Copy Markdown
Collaborator

Summary by CodeRabbit

  • New Features

    • Marketplace relocated to /marketplace with enhanced filtering, sorting, and category browsing.
    • New program discovery experience including featured programs carousel, category navigation, and refined list views.
    • Program detail pages with improved hero sections, eligibility information, and call-to-action placement.
  • Refactor

    • Middleware routing updated to support new marketplace URL structure and legacy URL redirects.
    • Sidebar navigation restructured with dedicated marketplace panel and improved layout controls.

@vercel

vercel Bot commented May 25, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
dub Ready Ready Preview Jun 17, 2026 11:54pm

Request Review

@coderabbitai

coderabbitai Bot commented May 25, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

This PR moves marketplace routing to /marketplace, adds public marketplace pages on app.dub.co, centralizes marketplace URL and filter logic, refactors internal marketplace UI and sidebar behavior around shared components, updates redirects and tracking, and switches sitemap, revalidation, and remaining links to the new paths.

Changes

Marketplace Unification Across Internal and External Surfaces

Layer / File(s) Summary
Marketplace contracts, categories, constants, and URL utilities
apps/web/lib/network/program-categories.ts, apps/web/lib/zod/schemas/program-network.ts, apps/web/ui/program-marketplace/constants.ts, apps/web/ui/program-marketplace/home-sections.ts, apps/web/ui/program-marketplace/utils/urls.ts
Adds marketplace category metadata, public query schema, shared reward/sort constants, home-row definitions, and centralized helpers for marketplace paths, canonical URLs, and filter links.
Shared UI filter and nav primitives
packages/ui/src/filter/*, packages/ui/src/nav/*
Adds reusable sidebar filter components and updates shared nav components to accept custom items and logo content.
Public marketplace fetchers and aggregate counts
apps/web/lib/fetchers/get-public-network-programs.ts, apps/web/lib/fetchers/get-public-network-program-filter-counts.ts, apps/web/app/(ee)/api/network/programs/route.ts
Adds cached public marketplace program and count fetchers, aggregate sidebar counts, and explicit popularity ordering.
Marketplace redirect and middleware path migration
apps/web/app/(ee)/api/track/application/route.ts, apps/web/lib/middleware/..., apps/web/middleware.ts
Updates program-slug detection, removes old static marketplace redirects, adds legacy partners marketplace redirects, and rewrites marketplace requests through the new route model.
External marketplace entrypoint and public pages
apps/web/app/app.dub.co/marketplace/*, apps/web/ui/program-marketplace/external/*
Adds the public marketplace route, metadata, layout, header, router, filter sidebar, home/list/program pages, and server-side data orchestration for public marketplace views.
Partners dashboard marketplace route and internal page wiring
apps/web/app/(ee)/partners.dub.co/(dashboard)/marketplace/[[...slug]]/page.tsx, apps/web/ui/program-marketplace/marketplace-router.tsx, apps/web/ui/program-marketplace/pages/*, apps/web/app/(ee)/partners.dub.co/(dashboard)/programs/page-client.tsx
Moves partners marketplace routing to the new slug route, wires shared internal marketplace pages, and removes the old partners-specific sort component.
Marketplace cards, detail views, rows, and visual primitives
apps/web/ui/program-marketplace/*, apps/web/ui/partners/program-marketplace/*, apps/web/ui/partners/rewind/partner-rewind-banner.tsx
Adds and refactors marketplace cards, featured rows, list/grid/detail components, logo sprites, category and reward presentation, image accent extraction, and related module moves.
Marketplace filter, sort, and sidebar behavior
apps/web/ui/program-marketplace/marketplace-*.tsx, apps/web/ui/program-marketplace/use-*.tsx, apps/web/ui/layout/sidebar/*
Adds marketplace filter/sort sheet and toolbar behavior, updates internal and public filter hooks, and refactors partners sidebar areas and headers for marketplace-specific navigation and panels.
Sitemap, revalidation, and remaining link migrations
apps/web/app/sitemap.ts, apps/web/lib/actions/partners/*, apps/web/app/(ee)/admin.dub.co/(dashboard)/commissions/page.tsx, apps/web/ui/partners/program-application-sheet.tsx, packages/email/src/templates/*
Updates sitemap entries, partner revalidation paths, and remaining marketplace links to the new /marketplace URLs.

Sequence Diagram(s)

sequenceDiagram
  participant Browser
  participant middleware.ts
  participant MarketplaceExternalPage
  participant MarketplaceExternalRouter
  participant MarketplaceExternalListPage
  participant getPublicNetworkPrograms

  Browser->>middleware.ts: request /marketplace/all
  middleware.ts->>MarketplaceExternalPage: rewrite to app marketplace route
  MarketplaceExternalPage->>MarketplaceExternalRouter: slug, searchParams
  MarketplaceExternalRouter->>MarketplaceExternalListPage: list route
  MarketplaceExternalListPage->>getPublicNetworkPrograms: fetch programs
  getPublicNetworkPrograms-->>MarketplaceExternalListPage: paged results
Loading

Estimated code review effort

🎯 5 (Critical) | ⏱️ ~100 minutes

Possibly related PRs

  • dubinc/dub#3923: Both PRs modify apps/web/lib/actions/partners/update-reward.ts around marketplace-related revalidation behavior.
  • dubinc/dub#3763: Both PRs change apps/web/app/(ee)/api/track/application/route.ts URL-to-programSlug parsing logic.

Poem

🐇 I hopped through paths both old and new,
and found /marketplace shining through.
With carrots of routes and pages bright,
the links now land just right tonight.
I thump in joy by sitemap light.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch program-marketplace-categories

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Comment thread apps/web/lib/middleware/utils/partners-redirect.ts
Comment thread apps/web/ui/program-marketplace/external/marketplace-external-shell.tsx Outdated
Comment thread apps/web/app/app.dub.co/marketplace/[[...slug]]/page.tsx Outdated
Comment thread apps/web/ui/program-marketplace/external/marketplace-external-list-page.tsx Outdated
Comment thread apps/web/lib/fetchers/get-public-network-programs.ts Outdated
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants