1. Builds
  2. Directory site with paid listings

Directory site with paid listings

A searchable, SEO-friendly niche directory where businesses pay by card to submit or feature a listing. It sends a confirmation email and puts each listing in an approval queue.

Priced from vendor pages
Prices checked
16 Oct 2026
Updated
17 Oct 2026
Exchange rate
1 USD = £0.7489
Sources
6
How we check

The stack

HOSTVercelStatic/ISR pages for SEO£14.98
Layer
Hosting
Plan
Pro $20/seat/mo
What it does here
Static/ISR pages for SEO
Note
Hobby is non-commercial, so it isn't usable here
HOSTNetlifyFree optionFree / £6.74
Layer
Hosting (alt)
Plan
Free $0 (300 credits) or Personal $9
What it does here
Free option
Note
Whether Netlify Free allows commercial use is not confirmed
DATAAUTHSupabaseListings table with RLSFree / £18.72
Layer
Database
Plan
Free (500 MB DB) or Pro from $25
What it does here
Listings table with RLS
Note
Free pauses after 1 week of inactivity
PAYStripe UKCheckout for one-off listing feesNo monthly fee
Layer
Payments
Plan
Pay as you go: 1.5% + 20p per standard UK card
What it does here
Checkout for one-off listing fees
Note
Fees are per sale (see below)
MAILResendPayment and approval emailsFree
Layer
Email
Plan
Free (3,000/mo, 100/day) or Pro $20
What it does here
Payment and approval emails
Note
The Free tier is enough here
OPSGitHubDependabot + secret scanningFree
Layer
Monitoring and security
Plan
Free
What it does here
Dependabot + secret scanning
Note
Secret scanning + push protection free on public repos; private Secret Protection price not found

Steps

  1. Build listing and category pages in Next.js using static generation or ISR.

    Done when listing pages are server-rendered and indexable (view-source shows the content).

  2. Create a Supabase listings table with a status of pending, live or featured, and use RLS so the public can read live rows only.

    Done when an anonymous query returns live rows only.

  3. Add Stripe Checkout (a one-off Price in £) for "submit" or "feature", and have a checkout.session.completed webhook set the status.

    Done when a test-mode payment changes the listing status through the webhook.

  4. Send a Resend email on payment and on approval.

    Done when both emails arrive for a test listing.

  5. Build an admin approval queue protected by auth and RLS.

    Done when only the admin can approve, and a non-admin is refused.

Watch out for

  • Verify Stripe webhook signatures. Never rely on the redirect alone.
  • Supabase Free pauses after a week of inactivity, which takes a public directory offline. Use Pro for production.
  • Selling listings may create UK VAT obligations for you as the seller. This isn't modelled.

What it costs each month

Stage Platform (no Lovable) Stripe fees Total + Lovable Pro
(a) Free (Netlify Free + Supabase Free + Resend Free) £0.00 £0.00 £0.00 £22.00
(b) Paid, lean (Vercel Pro + Supabase Free) £14.98 £0.00 £14.98 £36.98
(c) Paid, robust (Vercel Pro £14.98 + Supabase Pro £18.72) £33.70 £0.00 £33.70 £55.70
(c) + example sales (20 listings × £30 = £600, illustrative) £33.70 £13.00 £46.70 £68.70
  • Example Stripe fees: 1.5% × £600 = £9.00, plus 20 × 20p = £4.00, making £13.00. The sales volume is illustrative.
  • Excluded: VAT, usage overages, domains and disputes.
  • Neither total uses Vercel Hobby, because paid listings count as commercial use.

Still open

  • Whether Netlify Free allows commercial use is not confirmed on Netlify's pricing page.
  • VAT on listing sales and on vendor bills is not modelled. Nothing has been tested hands-on.

Sources

Change log

Date Change Source
2026-10-16 New desk-costed build Stackguide desk research
2026-10-17 FX label clarified as 15 Oct 2026 close Editorial update
2026-10-23 USD prices re-converted at the Bank of England reference rate, 1 USD = 0.7489 GBP (16 Oct 2026), the one rate used site-wide (was 0.7535, exchangerates.org.uk 15 Oct 2026 close); £ figures and totals re-derived Bank of England series XUDLUSS, checked 2026-10-23