Say Yes to Pets Phase 2: Building a Monetisation Layer
Phase 1 gave Say Yes to Pets a publishing platform and a free Pet CV tool. Phase 2 turned it into a product with a monetisation layer: product catalog, Stripe checkout and 2 paid funnels.
Need something similar?
This project is closest to WooCommerce Development. Tell me what is happening with your site and I will recommend the next step.

Project overview
Say Yes to Pets began life as a publishing and advice platform for renting with pets, built as a headless Next.js front end on top of WordPress (covered in phase one). Phase two turned that content platform into a revenue-generating product.
In this phase I designed and built the full monetisation layer: a single source of truth for products and pricing, a generalised Stripe checkout that serves multiple paid offers, secure tokenised download delivery, two new sales funnels for renters and landlords, a free landlord lead magnet, partner referral tracking and an admin funnels view, all measurable end to end. The work overlaps most closely with custom WordPress and Next.js development, technical SEO and ongoing support.

The challenge
The platform already had traffic, a free Pet CV tool and a bespoke CRM, but no way to turn that audience into revenue. Phase two had to add paid products without rebuilding the foundation, while keeping the publishing experience and brand intact.
Introduce paid products for both renters and landlords without disrupting the existing free content and tools.
Support multiple packs, price tiers and an upsell call through a single, maintainable payment and delivery layer.
Deliver paid PDF templates without ever exposing them publicly, while keeping the buying experience simple.
Make every journey trackable from first touch through purchase and booking, so spend and content can be optimised.
What was delivered
I built the monetisation layer additively on top of the phase-one platform, shipping each milestone behind feature flags so the live site stayed stable throughout. That included a typed product catalog, a product-aware Stripe checkout and webhook, two paid sales pages with secure downloads, an upsell call flow, a free landlord lead-capture tool, referral pages and funnel analytics.
A single typed config defines both packs, their price tiers, Stripe links, included templates and download bundles, with feature flags gating every new flow.
One checkout layer and webhook route every purchase to the correct entitlement, CRM event and delivery email, with idempotency against webhook replays.
A renter-facing Pet Yes Pack and a landlord-facing Landlord Yes Pack, each with standalone and with-call pricing tiers.
A free Pet Request Form that mirrors the free Pet CV, capturing landlord leads into the CRM and feeding the paid funnel.

Core functionality included
A typed source of truth for both packs, price tiers (£25 standalone / £79 with call), Stripe payment links, included templates and download bundle keys.
A shared
getCheckoutUrl helper builds the right payment link per product and tier, carrying email and attribution through to the webhook.One webhook branches by product and tier to grant the correct entitlement, fire the right CRM event and queue the matching delivery email.
Entitlements are granted once per Stripe event id, so webhook replays never double-deliver or double-score a contact.
A conversion-focused renter page with hero, included templates, social proof, two pricing cards, FAQ and a sticky CTA.
A landlord-specific page built on the same structure, with compliance-led copy around the Renters’ Rights Act 2025.
Paid PDFs are served from a private store via signed, expiring tokens through a gated download route, never from the public folder.
Successful purchases queue Brevo delivery emails containing the same tokenised download links.
An inline and post-purchase upsell moves £25 buyers toward the £79 pack-plus-call, with booking tagging and a booking CTA.
A swappable booking embed captures consultation slots and records them back to the contact in the CRM.
A free landlord template gated behind lightweight lead capture that creates a landlord CRM contact and queues a nurture email.
Referral landing pages set partner attribution (e.g. Chestertons) and route visitors into the landlord funnel with tracked links.
A read-only funnels section in the admin dashboard shows counts per stage (viewed → started → purchased → booked) for each journey.
First and last-touch UTM data persists through the Stripe round-trip and is reconciled onto the contact at purchase.
New events for pack views, paid-offer views, landlord lead submissions, purchases and bookings drive lead scoring and lifecycle stages.


Key architecture decisions
The guiding principle was to extend, not rebuild. The phase-one platform already had a bespoke CRM, attribution layer, email automation and a working Stripe webhook, so phase two added a thin product and checkout layer on top rather than introducing new systems. Most of the work was additive: new pages, a generalised checkout, new templates and new CRM events, with almost no change to the underlying data model.
I kept a single catalog as the source of truth so pricing, Stripe links and included templates live in one place, and shipped every milestone behind a feature flag so unfinished funnels never leaked to production. Stripe Payment Links were chosen over the SDK to match the existing working pattern and ship faster, with checkout sessions noted as a future option if dynamic pricing or coupons are ever needed.
One typed catalog defines products, prices, tiers, templates and download bundles for every funnel.
Feature flags let each milestone ship to main behind the scenes while keeping the live site stable.
New purchases plug into the existing CRM events, lead scoring and Brevo automation rather than new infrastructure.
Paid templates are stored privately and served only through gated, tokenised routes.


Results and outcomes
Phase two turned a content and lead-generation platform into a product with real revenue paths for two distinct audiences, built in a way that stays measurable and easy to extend.
Renters and landlords each have a dedicated paid offer with standalone and with-call pricing.
New products can be added through the catalog without touching checkout, delivery or CRM plumbing.
The Rent Ready Call upsell creates a clear path from a £25 template purchase to an £79 pack-plus-call.
The free Pet Request Form opens a landlord lead source that feeds directly into the paid funnel.
UTM attribution and the admin funnels view make every stage of each journey measurable and optimisable.
Referral landing pages and tracked links support partner collaborations such as Chestertons.
Technology used
The monetisation layer was built with Next.js, React and TypeScript, using WordPress as a headless CMS and Neon Postgres for the bespoke CRM, lead and entitlement data. Payments run through Stripe Payment Links with a custom HMAC-verified webhook, transactional and nurture email through Brevo, and attribution through a first/last-touch UTM layer feeding the CRM.
The delivery is most relevant to custom WordPress and Next.js development, SEO optimisation and ongoing support for content-led platforms with custom product functionality.
Next steps
This case study covers phase two of an ongoing platform — the monetisation layer built on top of the phase-one publishing foundation. The next stage is launch hardening: live Stripe keys, monitoring, an environment audit and a full regression of both funnels before flipping the feature flags on in production, followed by ongoing funnel and SEO optimisation.
If you are building a content-led platform with paid products and custom functionality, the most relevant starting points are usually custom development, SEO optimisation and WordPress care plans.
Looking for similar outcomes? Start with WooCommerce Development and browse more project examples.
Need something similar?
This project is closest to WooCommerce Development. Tell me what is happening with your site and I will recommend the next step.
Newsletter
Get the free WordPress SEO checklist
Plus one practical fix a week, with lessons from real builds like this one.
Keep exploring
Recent work
All case studies
NomadWealth: Self-Hosted Net-Worth App
Turning a personal finance dashboard into a self-hostable product: holdings, real estate, loans and cash in one private cockpit, deployed to the buyer’s own Vercel so the vendor never sees their data.

MAG Trademarks
An ecommerce-focused WordPress site for trademark services, supported with ongoing improvements and care plan support to keep the platform effective and current.

Cisco Bedfont Showroom
A custom marketing website for Cisco’s Bedfont Showroom, built to present products more clearly and support a polished, enterprise-facing brand experience.
Services
All servicesReading
All articlesHow to Turn Your WordPress Website Into a Progressive Web App
How a Progressive Web App can turn a WordPress website into a faster, app-like experience with home screen access, alert
How to Get WC Order Details
A practical guide to retrieving WooCommerce order details manually, with hooks or through the REST API, depending on whe
How I Built a Real-Time Investment Portfolio Tracker in Google Sheets
A custom Google Sheets portfolio tracker that combines live stock and crypto pricing, automated trade handling and perfo
Need help with something similar?
Tell me what is happening with your website. I will recommend the next practical step and explain how I would scope the work.
Best fit for established UK businesses with a site that needs to perform.
- 1
Tell me what is happening
Share the website, the problem and what a good result looks like.
- 2
Agree the scope
A proposal with deliverables, price, assumptions and timeline before any work starts.
- 3
Deliver, test and hand over
Work checked against the agreed criteria, with notes on what changed.
