Case study · May 2026

Spinning up a wedding directory in real time

Day 1 buildlog with timestamps

SEO-first Marketplace Live build Next.js Supabase

The bet

A concierge wedding vendor directory for UK plus EU. SEO-only, no paid acquisition in V1. The thesis: Hitched dominates UK in isolation, Wezoree is globally thin, and there is a clean gap for a UK-EU bridge with curated vendors rather than pay-to-place listings.

The model is simple. Couples search by city and vendor type. We surface a vetted shortlist instead of an alphabetical scroll. Lead routes to MKTRL Wedding for video work, MKTRL Production for non-wedding video, partner vendors for everything else at 15-25% commission. No vendor subscription in V1.

Domain: shortlist.wedding (primary). Defensive 301 from shortlistwedding.com. Total domain cost: $45.66 / year on Namecheap.

The team

Co-founded with Nick Stratovych (Коля). Same operator-stack on both sides, divide-and-conquer on editorial review. AI generates the content (descriptions, inspiration articles, city pages), Peter plus Nick review.

This case study mentions Nick as named co-founder. Confirmed with him before publish.

Day 1 buildlog

Every timestamp is real, pulled from the git log. The whole infrastructure stood up in roughly six hours on 21 May 2026.

14:30  Initial scaffold: Next.js 16 + Supabase + Tailwind, DB schema + seed
14:34  Wezoree scraper added (Phase A: discover; Phase B: fetch details)
14:35  Keep .env.example tracked (chore)
14:45  Security: RLS on vendor_cities + server-only guard on service role client
       (50 EU cities synced to seed)
15:26  Full site scaffold: homepage, directory pages, vendor profile, lead form
       + API, sitemap, robots, Wezoree dedup/import scripts
15:27  Build fix: exclude scripts/ from tsconfig
15:30  Build fix: centralize SITE_URL helper, strip BOM/CRLF
15:30  Env sanitizer in Supabase clients
15:31  Global BOM+CRLF strip
16:07  Enhanced vendor import (category detection, city matching, slug derive,
       hero/gallery cleanup)

By 16:07 on day one, the site had a working homepage, directory routes, vendor profiles, a lead form posting to an API, sitemap and robots, and a scraper running against an external source to populate inventory.

Day 2 — content layer

00:30  Inspiration hub: Gemini pipeline + index/detail pages + sitemap + nav
00:46  Content: 22 inspiration articles generated and imported
08:53  Content: phase 2 brings the count to 62 articles
10:24  Content: phase 3 brings the count to 100 articles

100 inspiration articles in roughly ten hours of wall-clock from the first Gemini pipeline commit. The pipeline is reusable for the next vertical we open.

Day 3 — email, geography, polish

08:20  Email: lead notifications + customer confirmation via Resend
       from hello@shortlist.wedding
09:54  Real Weddings section (renamed to Stories) + 8 MKTRL cases,
       cities expanded UK regions + EU destinations = 132 total
10:49  Stories: 301 redirect from old URLs to new path
15:48  Visual revamp: hero image, photo destinations grid, article and story
       heroes via slug map, mobile burger nav, expanded footer, re-curated
       featured vendors
16:02  Real vendor photos from DB for city heroes (Wezoree CDN), Unsplash
       fallback only where no vendor exists yet
16:43  Vendor page redesign: breadcrumb, location/category chips, similar
       vendors. Category pages: lead form below results + sticky CTA
16:57  Magazine layout for /inspiration (1 hero + 2 medium + grid)
17:15  Strip "Contact on Wezoree" and Browse-the-latest from vendor
       descriptions, hide empty prices/ratings, add CF Analytics + Clarity
17:32  Vercel Web Analytics + Speed Insights
18:32  Real destination photos + legal entity in footer
20:51  Revert paid Vercel Analytics, keep only opt-in CF/Clarity
21:03  Self-host Stratovych team photos in /public/team
21:26  Hero copy: "We pick three. You pick one."
21:40  Videographer card subtitle separator fix
21:58  Per-vendor card subtitle from description first sentence

Three days, 132 cities covered, 14 categories, 100 inspiration articles, transactional email live, two analytics layers wired in and one reverted, hero copy locked.

Stack decisions

Why Next.js and Supabase again. Not because they are the only options. Because the operator-stack underneath knows them cold from JobCannon, which lets a new project move at maximum speed without spending the first week reading docs.

Why Supabase EU-Frankfurt: GDPR is a non-negotiable for a UK-EU directory holding lead data. EU-Frankfurt region keeps personal data inside the EU jurisdictional boundary.

Why SEO-only V1: paid acquisition for marketplaces is expensive and loses to organic at scale. Build the long tail first (city × category × inspiration article), then layer paid against an already-ranking inventory in V2.

Why no vendor subscription: vendor subscriptions create incentives to keep bad vendors. We want a concierge brand, which requires the freedom to drop vendors that disappoint. Subscription comes in V2 if needed, structured as upgrade not gate.

Why lead routing to MKTRL first: existing MKTRL Wedding has spare capacity. Inhouse fulfillment for video category de-risks the launch month. Partner network expands once volume is proven.

The operator stack underneath

Same Claude Code agent that builds JobCannon. Same 73-rule CLAUDE.md. Same 6-domain memory system, with a new project-specific memory file added on day one. Same hook layer. Same custom skills (deploy for lane-aware shipping, blog-article adapted for inspiration content generation pipeline, walk for live UX verification).

The advantage of having an operator-stack already loaded: project N+1 costs less than project N. The infrastructure is amortized.

Live status

  • Domain: shortlist.wedding (primary, live), shortlistwedding.com (defensive 301)
  • Hosting: Vercel (production aliased to shortlist.wedding)
  • DB: Supabase EU-Frankfurt, 14 categories × 132 cities × scraped vendor inventory
  • Email: Resend verified, sends from hello@shortlist.wedding
  • Search Console: verified via Cloudflare OAuth (22 May 2026)
  • Ahrefs: project active, keyword tracking in setup
  • Content: 100 inspiration articles, 8 real-wedding stories, programmatic city pages
  • Stage: pre-traffic, indexing in progress

Update log

Updates appear here as the project moves. Not a blog. Just commit-driven status.

24 May 2026 — case study live on peterkolomiets.com. Site is live. Indexing in early stage. Lead routing untested in production yet.

What is next

  • First 30 days post-launch: indexing in, monitor GSC for first organic clicks
  • 60 days: first lead through the form, route to MKTRL Wedding, measure to revenue
  • 90 days: traffic numbers added to this case study as an update
  • V2 (post first revenue): vendor claim flow, paid placement layer

Try it / read more

  1. Visit shortlist.wedding to see what we shipped
  2. Read the JobCannon case study for the operator-stack origin
  3. Email peter@kolomiets.group if you are a vendor in UK or EU and want to be listed, or have a city we are missing

Updated: 24 May 2026. This is a living document.