A demo app showcasing Mixpeek's brand creative-to-offer alignment workflow. This is a fully static, self-hostable application that demonstrates the UX flow for brand-side users to connect their creative library with offers and export mappings for ad serving systems.
- Your creatives are already indexed - Users land with their Meta Ad Library pre-indexed
- Consolidate data easily - Optional upload of platform exports, catalogs, landing pages
- Automatic normalization - Transforms disparate data into canonical Offers/Products/Context
- Offer-centric browsing - View creatives aligned to each offer
- Export-ready outputs - CSV mappings, JSON payloads, Prebid RTD format
# Install dependencies
npm install
# Run development server
npm run dev
# Build for static hosting
npm run build
# Preview static build
npx serve outThis app exports as a fully static site. After running npm run build, deploy the out/ directory to any static hosting:
- Vercel: Push to GitHub, import project
- Netlify: Drag & drop the
out/folder - GitHub Pages: Push
out/contents togh-pagesbranch - S3/CloudFront: Upload
out/to S3 bucket with website hosting
- Shows detected brand index (GEICO demo)
- Displays creative count and sample thumbnails
- CTAs: Continue or Add more data
- Upload platform exports (CSV/JSON/URLs)
- Or use canned sample datasets
- CTAs: Skip or Ingest & Continue
- Progress indicators for ingestion jobs
- Mapping preview (source → canonical)
- Data quality checks and warnings
- CTA: View Offers
- 3-panel layout: Offer list | Creatives | Details
- Browse by category (Auto Insurance, Running Shoes, etc.)
- See aligned creatives with tags and compliance status
- CTA: Match & Export
- Context input (URL or transcript)
- Offer selector with advanced constraints
- Ranked creative results with scores
- Export formats: CSV, JSON, Prebid RTD
- One-click copy/export
- Next.js 15 - React framework with App Router
- TypeScript - Type safety
- Tailwind CSS 4 - Styling
- Lucide React - Icons
- Static Export - No server required
All API responses are mocked in lib/mock-data.ts. The demo uses deterministic fixtures for repeatable demos. In production, these would be replaced with real Mixpeek API calls.
Edit lib/mock-data.ts to change:
- Namespace/brand details
- Sample creatives
- Offer categories and attributes
- Match results
The app uses Mixpeek's brand colors defined in app/globals.css:
--mxp-purple: Primary purple (#7C5CFC)--mxp-green: Success green (#22C55E)--mxp-orange: Warning orange (#F97316)
Replace mock data imports with actual fetch calls to Mixpeek API endpoints. The expected schemas are documented in the PRD.
Internal demo - not for redistribution.