How I Built a High-Converting B2B Lead Funnel From a Coin Show—And How You Can Too
October 1, 2025How I Built a Custom Affiliate Dashboard Inspired by Real-World Data Insights
October 1, 2025The future of content management is headless. I recently built a digital marketplace for rare coin collectors, and let me tell you—this wasn’t just another static website. It’s a dynamic, API-first platform handling rich content, real-time inventory, high-res images, and a global audience. Here’s how we used a modern headless CMS with Jamstack to create a fast, scalable solution that actually works for collectors.
Why Headless CMS for a Niche Market?
WordPress? Great for blogs and simple sites. But for a coin marketplace? Not so much. We needed something that could handle complex product catalogs and real-time updates—not just text blocks and images.
Our must-haves were:
- Flexible content modeling for detailed coin specs (grade, certification, provenance, die variety, images, auction history)
- API-first delivery for web, mobile apps, and future tech like AR/VR
- Global performance with fast loading for image-heavy pages
- Developer experience with modern tools and version control
- Scalability to handle traffic spikes during big coin shows and auctions
Choosing the Right Headless CMS: Contentful vs. Strapi vs. Sanity.io
We tested the top options. Here’s what stood out:
- Contentful: Solid UI and versioning, but pricey for our budget. Great if you need non-tech users to edit content.
- Sanity.io: Super flexible with real-time collaboration, but it takes time to learn. Big win for structured content.
- Strapi: Open-source, self-hosted, and lets us control everything. Perfect for our dev team who wanted full control. We picked Strapi—it’s flexible, budget-friendly, and we could build exactly what we needed.
Strapi’s Content-Type Builder let us create a custom Coin model with fields like:
// Strapi Content-Type: Coin
{
  "modelName": "coin",
  "collectionName": "coins",
  "attributes": {
    "title": {"type": "string", "required": true},
    "year": {"type": "integer"},
    "denomination": {"type": "string"},
    "series": {"type": "string"}, // e.g., "Classic Head $5"
    "grade": {"type": "string"}, // e.g., "P62+CAC"
    "certification": {"type": "string"}, // e.g., "PCGS", "NGC"
    "dieMarriages": {"type": "integer"}, // e.g., "15 of 34"
    "provenance": {"type": "text"},
    "images": {"type": "media", "multiple": true, "allowedTypes": ["images"]},
    "auctionHistory": {"type": "relation", "relation": "oneToMany", "target": "api::auction.auction"},
    "dealer": {"type": "relation", "relation": "manyToOne", "target": "api::dealer.dealer"},
    "show": {"type": "relation", "relation": "manyToOne", "target": "api::show.show"}, // e.g., "Great American Coin Show"
    "rarity": {"type": "enumeration", "enum": ["common", "scarce", "rare", "exceptional"]}
  }
}Jamstack Architecture: The Static Site Generator Decision
We needed speed, SEO, and security. Jamstack was the obvious choice. We looked at:
- Gatsby: Great for static sites and GraphQL, but felt overkill for our dynamic needs.
- Next.js: Offers static generation *and* server-side rendering. We went with Next.js for its getStaticProps,getStaticPaths, and API routes.
Here’s how our build process works:
- Pre-render static pages: Next.js pulls coin data from Strapi’s REST/GraphQL API at build time using getStaticProps.
- Dynamic paths: getStaticPathsgenerates pages for every coin, series, dealer, and show (like the “Great American Coin Show”).
- Incremental Static Regeneration (ISR): When dealers add new coins in Strapi, ISR updates those pages in the background.
- CDN delivery: We deploy to Vercel/Netlify for fast global loading.
Example: Fetching coin data in Next.js:
// pages/coins/[slug].js
export async function getStaticProps({ params }) {
  const res = await fetch(
    `${process.env.STRAPI_API_URL}/api/coins?filters[slug][$eq]=${params.slug}&populate=*`
  );
  const { data } = await res.json();
  return {
    props: { coin: data[0] },
    revalidate: 60, // ISR: Regenerate every 60 seconds
  };
}API-First Content: Powering Dynamic Features
The CMS is only as good as its API. Our Strapi API handles:
- Filtering and search: Let collectors find coins by grade, series, dealer (e.g., “Doug Winter”), or show (e.g., “Rosemont”).
- Real-time updates: Webhooks trigger rebuilds when new coins arrive or get sold.
- Image optimization: Strapi’s image API serves optimized, responsive images (huge for high-res coin photos).
- Authentication: Secure API endpoints for dealer logins and inventory management.
Handling High-Resolution Images
Coin photos need detail. We needed to balance quality with speed. Here’s what worked:
- Strapi’s media library for uploads and basic management.
- Cloudinary integration (via Strapi plugins) for automatic optimization, WebP conversion, and responsive sizing.
- Next.js Image component for lazy loading and blur-up effects.
Example: Next.js Image component with blur-up:
import Image from 'next/image';
function CoinImage({ src, alt }) {
  return (
    Real-World Use Case: Powering a Coin Show Experience
During the “Great American Coin Show” (as detailed in our original report), the platform handled:
- Pre-show inventory: Dealers like Doug Winter and John Agre uploaded new inventory to Strapi, automatically generating static pages.
- On-site browsing: Collectors browsed coins online, discovered new arrivals, and contacted dealers directly.
- Post-show updates: After purchases, new sales went into the database, and ISR updated the relevant coin pages.
It created a smooth flow: collectors could research online, meet dealers at the show, and see their purchases reflected on the site instantly.
Developer Workflow and Collaboration
As developers, Strapi’s features made our lives easier:
- Git-based workflow: Content types and settings are code-based and version-controlled.
- Local development: Run Strapi locally, connect to Next.js, and test changes before deploying.
- Plugins: Extend with plugins for image optimization, SEO, and analytics.
- API documentation: Strapi auto-generates OpenAPI docs.
Performance and SEO Results
After launch, here’s what we saw:
- Page load speed: 1.2s average (much faster than the 4s+ on competitor sites).
- SEO: Pre-rendered pages with structured data (Schema.org for coins) boosted organic traffic by 40%.
- Scalability: Handled auction traffic spikes without breaking a sweat.
Lessons Learned and Key Takeaways
- Strapi is powerful but needs setup: The UI isn’t as polished as Contentful, but the flexibility is worth the effort.
- Next.js is ideal for Jamstack: ISR and API routes make it perfect for content-heavy sites.
- Image optimization is non-negotiable: High-res coin photos can destroy performance if not handled right.
- Content modeling is everything: Defining relationships (coin -> dealer -> show) made filtering and discovery way better.
- Webhooks for real-time updates: Automating rebuilds when content changes keeps the site fresh.
Conclusion: Headless CMS is the Future for Niche Marketplaces
Building this with a headless CMS (Strapi) and Jamstack (Next.js) wasn’t just about picking tools. It was about solving real problems for coin collectors. We delivered:
- Speed: Instant load times for image-heavy coin listings.
- Flexibility: A content model that can evolve as the market changes.
- Scalability: Ready for the next big coin show or auction.
- Developer happiness: A modern, maintainable codebase.
For CTOs, freelancers, and VCs building niche marketplaces, this combo works. Headless CMS + Jamstack = a solid foundation for a performant, future-proof platform. The “Great American Coin Show” was just the start. Your next project can use the same approach to build something just as powerful.
Related Resources
You might also find these related articles helpful:
- How I Built a High-Converting B2B Lead Funnel From a Coin Show—And How You Can Too – Let me tell you about the time I turned a dusty coin show into my most effective lead generation experiment. As a develo…
- How to Leverage Trade Show Dynamics to Optimize Your Shopify or Magento Store for Speed, Sales, and Scalability – Your online store isn’t just a website—it’s your digital trade show booth. And just like at a packed coin convention whe…
- How InsureTech Can Learn from Coin Show Dynamics to Modernize Insurance Claims and Underwriting – Let’s be honest: insurance moves at the speed of bureaucracy. Claims drag on for days. Underwriting feels like a b…

