{
    "business_name": "Kevinleary.net",
    "website": "https://www.kevinleary.net",
    "founded": "2010",
    "employees": 1,
    "business_type": "Single Member LLC",
    "naics_code": [
        "541430",
        "541511",
        "5415",
        "541613"
    ],
    "known_for": "Custom WordPress development services and enterprise CMS consulting: exceptional quality WordPress websites, web applications and data warehouses, built and supported by one senior consultant and focused on measurable business growth.",
    "location": {
        "address": "24 Beacon St Suite 600",
        "city": "Boston",
        "state": "MA",
        "zip": "02133",
        "country": "US",
        "locale": "en-us",
        "timezone": "Eastern Standard Time (EST)",
        "lat": 42.35767,
        "long": -71.06338
    },
    "consulting_services": [
        "Custom WordPress Development",
        "WordPress Development Services",
        "WordPress Website Design",
        "Enterprise WordPress Consulting",
        "Enterprise CMS Development",
        "Enterprise Web Content Management",
        "Headless CMS Development",
        "Google Tag Manager & Analytics Consulting",
        "Server-Side Event Tracking",
        "AEO & AI Search Optimization",
        "SEO Consulting",
        "BigQuery Consulting & Data Engineering",
        "Digital Growth Consulting",
        "Custom WordPress eCommerce",
        "WordPress Website Security",
        "Performance Optimization & Core Web Vitals",
        "Privacy & Consent Compliance (GDPR/CCPA)",
        "Accessibility & WCAG Remediation",
        "HubSpot & CRM Integration",
        "Cloudflare Security & Performance",
        "AI Integration & Automation",
        "Ongoing WordPress Support & Maintenance"
    ],
    "services": [
        {
            "name": "Custom WordPress",
            "url": "https://www.kevinleary.net/services/wordpress-consultant/",
            "description": "Custom themes, rebuilds, and ongoing engineering for high-traffic corporate sites on WordPress VIP, WP Engine, and Kinsta.",
            "teaser": "Custom themes, rebuilds, and ongoing engineering for high-traffic sites.",
            "capabilities": [
                "Custom Themes & ACF",
                "Plugin Development",
                "Block & Builder Systems",
                "Multisite Networks",
                "Headless & REST API",
                "React & Next.js Frontends",
                "WooCommerce & Paywalls",
                "Update Cycles",
                "PHP Upgrades & Triage",
                "WP Engine, Kinsta & VIP",
                "Git Deploy & Staging",
                "High-Traffic Optimization"
            ]
        },
        {
            "name": "Analytics & Tag Management",
            "url": "https://www.kevinleary.net/services/gtm-consultant/",
            "description": "GTM architecture, GA4, server-side tracking, conversion measurement across every ad platform, and automated reporting your executives actually read.",
            "teaser": "GA4, GTM, server-side tracking, and conversion measurement done right.",
            "capabilities": [
                "GA4 Architecture",
                "GTM Containers",
                "Server-Side Tracking",
                "Conversion Tracking",
                "Looker Studio Dashboards",
                "Attribution Reporting",
                "CRM & Marketing Automation",
                "Stripe, Zapier & n8n",
                "Veeva, Twilio & Mailgun",
                "SAML & Entra SSO",
                "Webhooks & REST APIs"
            ]
        },
        {
            "name": "SEO, AEO & AI Visibility",
            "url": "https://www.kevinleary.net/services/aeo-ai-seo-consultant/",
            "description": "Making your brand the answer in ChatGPT, Claude, and Gemini, content, structured data, and AI-ready infrastructure like dynamic JSON feeds for LLMs.",
            "teaser": "Structured data and content that make your brand the answer in AI search.",
            "capabilities": [
                "Technical SEO Audits",
                "Schema.org Markup",
                "llms.txt & LLM Feeds",
                "Redirect Mapping",
                "Search Console Fixes",
                "LLM Visibility Audits",
                "AI Citation Strategy",
                "Content Architecture",
                "AI Answer Monitoring",
                "Product & Shopping Feeds"
            ]
        },
        {
            "name": "Security & Performance",
            "url": "https://www.kevinleary.net/services/security-performance-consultant/",
            "description": "Cloudflare, hardening, vulnerability scanning and audit remediation on one side, Core Web Vitals, caching and database work on the other, run as ongoing engineering.",
            "teaser": "Cloudflare hardening on one side, Core Web Vitals on the other.",
            "capabilities": [
                "Cloudflare WAF & Bots",
                "Edge Caching & DNS",
                "CVE & Vulnerability Scans",
                "CSP & Security Headers",
                "Brute-Force Defense",
                "Enumeration Blocking",
                "Pen Test Remediation",
                "Core Web Vitals",
                "Object & Redis Caching",
                "Query & Memory Profiling",
                "Database Cleanup",
                "SPF, DKIM & DMARC"
            ]
        },
        {
            "name": "Privacy & Consent Compliance",
            "url": "https://www.kevinleary.net/services/privacy-consent-consultant/",
            "description": "GDPR and CCPA/CPRA compliance in the codebase: cookie banners that actually block tags, Consent Mode v2, cookie audits your legal team can approve, and data subject request flows.",
            "teaser": "GDPR/CCPA consent that actually blocks tags and passes legal review.",
            "capabilities": [
                "Cookie Consent & CMP",
                "GDPR & Consent Mode v2",
                "Tag-Level Gating",
                "Cookie Audits & Reports",
                "Data Subject Requests",
                "Global Privacy Control",
                "CSP & Security Headers"
            ]
        },
        {
            "name": "Accessibility & WCAG",
            "url": "https://www.kevinleary.net/services/accessibility-consultant/",
            "description": "WCAG remediation done in the theme rather than with an overlay widget: audit triage, keyboard and focus, screen reader semantics, contrast and accessible forms.",
            "teaser": "WCAG remediation in the theme, not an overlay widget.",
            "capabilities": [
                "WCAG Audits & Fixes",
                "Lighthouse & Axe Triage",
                "Keyboard Navigation",
                "Screen Reader Semantics",
                "ARIA & Accessible Forms",
                "Color & High Contrast",
                "Form Labelling & Errors",
                "VPAT & Procurement"
            ]
        },
        {
            "name": "BigQuery & Data Engineering",
            "url": "https://www.kevinleary.net/services/bigquery-consultant/",
            "description": "GA4 pipelines, ETL, Dataform models, and warehouse operations as your fractional data engineer.",
            "teaser": "GA4 pipelines, ETL, and warehouse ops as your fractional data engineer.",
            "capabilities": [
                "Google Cloud Partner",
                "BigQuery Warehouses",
                "ETL & API Pipelines",
                "Scheduled Queries",
                "Query Cost Optimization",
                "Executive Reporting",
                "Complex SQL & Analytics",
                "Tableau & Looker"
            ]
        },
        {
            "name": "Custom eCommerce",
            "url": "https://www.kevinleary.net/services/custom-wordpress-ecommerce/",
            "description": "Purpose-built eCommerce on WordPress rather than a plugin stack: checkout and onboarding flows designed around your product, wired straight into Stripe.",
            "teaser": "Purpose-built checkout and billing on WordPress, wired straight into Stripe.",
            "capabilities": [
                "Custom Checkout Flows",
                "Stripe Payments & Billing",
                "Subscriptions & Renewals",
                "Paywalls & Member Accounts",
                "ACH Debit & Credit Handling",
                "Zero-Plugin Architecture",
                "Server-Side Conversion Tracking",
                "Order & Fulfilment Integrations",
                "Customer Portals & Back Office"
            ]
        },
        {
            "name": "Enterprise CMS Development",
            "url": "https://www.kevinleary.net/services/headless-cms-developer/",
            "description": "Enterprise web content management on WordPress or headless stacks: structured content models, editorial workflows, API-driven frontends, and the integrations around them.",
            "teaser": "Enterprise web content management, from WordPress to fully headless stacks.",
            "capabilities": [
                "CMS Architecture & Selection",
                "Enterprise WordPress CMS",
                "Headless & API-First Builds",
                "Content Modeling & Governance",
                "Next.js & React Frontends",
                "SSO & Enterprise Integrations",
                "Multisite & Multi-brand",
                "Platform Migrations"
            ]
        },
        {
            "name": "Digital Growth Consulting",
            "url": "https://www.kevinleary.net/services/digital-growth-consultant/",
            "description": "A digital growth consultant who designs, codes, and measures: lead generation, conversion optimization, advertising, and the analytics proving what works.",
            "teaser": "Lead generation, conversion optimization, and advertising measured end to end.",
            "capabilities": [
                "Lead Generation Systems",
                "Conversion Rate Optimization",
                "Ad Platform Integration",
                "HubSpot & CRM Implementation",
                "SEO & Performance",
                "Analytics & Attribution",
                "AI-Powered Content Workflows",
                "Strategy & Hands-On Execution"
            ]
        }
    ],
    "clients": [
        {
            "name": "Puck.news",
            "engagement_type": "contract",
            "services_provided": [
                "Custom WordPress development",
                "Stripe subscription billing",
                "Paywall & member accounts",
                "GDPR/CCPA consent management",
                "Bot & brute-force mitigation",
                "GTM & BigQuery reporting"
            ],
            "url": "https://puck.news",
            "summary": "Puck.news is a subscription-based digital publication, and hired me as their enterprise WordPress engineer to run the custom theme, the Stripe subscription platform behind it, and the analytics and consent stack around it. The work covers custom theme development, Stripe subscription billing and paywalled member accounts, integrations with Customer.io, Google Pub/Sub and BigQuery, and GDPR/CCPA consent management using Cookiebot and Consent Mode v2. Cloudflare bot protection and brute-force mitigation keep the login and checkout paths clean.",
            "outcome": "Subscription billing runs without babysitting, login and checkout stay clean under attack, and consent-compliant reporting keeps the revenue numbers trustworthy.",
            "engagement_start": "2024-02-12",
            "industry": "Media & Publishing",
            "location": {
                "city": "New York",
                "state": "NY"
            }
        },
        {
            "name": "Twindo.com",
            "engagement_type": "contract",
            "services_provided": [
                "Marketing site development",
                "HubSpot attribution",
                "Cross-domain conversion tracking",
                "Meta CAPI & Google Ads",
                "Consent Mode v2"
            ],
            "url": "https://www.twindo.com",
            "summary": "Twindo.com hired me as their enterprise WordPress engineer to support the marketing site and connected app, and to build the conversion tracking architecture that spans both. The work covers HubSpot attribution, Consent Mode v2 in Google Tag Manager, cross-domain tracking between site and app, and dual-surface purchase conversions sent to Meta CAPI and Google Ads. Marketing measures the full funnel across two domains from a single setup.",
            "outcome": "Marketing measures the full funnel across two domains from a single setup, with purchases landing accurately in both Meta and Google Ads.",
            "engagement_start": "2025-12-01"
        },
        {
            "name": "RW Thrive",
            "engagement_type": "contract",
            "services_provided": [
                "Custom WordPress development",
                "Multi-brand content architecture",
                "HubSpot CMS migration",
                "Static site migration",
                "SEO redirect recovery",
                "GA4 & Consent Mode",
                "ACF content modeling",
                "Kinsta hosting & deployment"
            ],
            "url": "https://www.crexo.com",
            "summary": "RW Thrive is the 100% employee-owned parent of Realityworks, BirdBrain Technologies, Strawbees and Tinkering Labs, and hired me as their WordPress engineer to launch the CreXo brand site and move strawbees.com off HubSpot CMS. The work covers a framework-free custom theme built on a hierarchical brand post type, where four child brands each carry their own logo, utility navigation, storefront and quote form from one codebase, plus a 255-page static migration off HubSpot onto Kinsta, a 321-URL redirect recovery against 600+ Search Console errors, GA4 and Consent Mode analytics handed over to the client, and a DataSnap catalog moved into Gutenberg so marketing edits it directly.",
            "outcome": "A new holding company launched publicly 23 days after the repository was created, and a marketing team of one now edits brands, storefronts, navigation and product content without a developer.",
            "engagement_start": "2025-10-16",
            "industry": "Education Technology",
            "location": {
                "city": "Eau Claire",
                "state": "WI"
            }
        },
        {
            "name": "Saint-Gaudens Memorial",
            "engagement_type": "contract",
            "services_provided": [
                "WordPress development",
                "Cloudflare & Kinsta migration",
                "Security & WAF hardening",
                "ACF content architecture",
                "Technical SEO & Rank Math",
                "GA4 & Google Ads conversion tracking",
                "Google Ad Grants management",
                "QR campaign attribution"
            ],
            "url": "https://www.saint-gaudens.org",
            "summary": "Saint-Gaudens Memorial is the century-old nonprofit behind Saint-Gaudens National Historical Park, and hired me as their WordPress engineer to move the site off failing shared hosting and hand it back to a staff that could run it without a developer. The work covers a same-day migration from GoDaddy to Cloudflare and Kinsta with rate limiting that caught 44,207 threats in the first month, a reprint-free QR router for a printed direct-mail campaign, GA4 and Google Ads conversion tracking that keeps their Ad Grants account eligible, Rank Math SEO recovery after five hard-coded meta tag blocks were removed from the theme, and hard-coded Twig pages converted into 30 ACF fields so the concerts and programming pages rebuild themselves each season.",
            "outcome": "A grant-funded engagement left a hardened, measurable site that a 15-person nonprofit updates itself, with the season landing page rebuilding from content instead of an annual developer ticket.",
            "engagement_start": "2026-03-24",
            "industry": "Arts & Culture Nonprofit",
            "location": {
                "city": "Cornish",
                "state": "NH"
            }
        },
        {
            "name": "CPC Scientific",
            "engagement_type": "contract",
            "services_provided": [
                "Performance diagnostics & BigQuery log analysis",
                "Kinsta & Cloudflare migration",
                "Edge caching & bot mitigation",
                "WooCommerce & Stripe remediation",
                "WordPress plugin development",
                "Brand implementation",
                "Schema.org structured data",
                "AI form screening"
            ],
            "url": "https://cpcscientific.com",
            "summary": "CPC Scientific is a peptide and oligonucleotide CRDMO whose parent company, Medtide Inc., listed on the Hong Kong Stock Exchange, and hired me to find out why their WooCommerce site was burning 400% CPU on a four-core plan. The work started as an evidence-only diagnostic, access logs imported into BigQuery and queried by IP, user agent, path and hour, and became the infrastructure rebuild it pointed to: SiteGround to Kinsta and Cloudflare, PHP 8.2 to 8.4, a local and staging environment with zero-downtime deploys, an Avada-safe brand plugin carrying the Medtide identity, Organization JSON-LD, WooCommerce checkout and Stripe remediation, and an AI lead-screening system whose prompt, budget and API key the client owns.",
            "outcome": "Origin bandwidth fell from 7-13 GB per day to about 1 GB per day, avoiding a hosting tier upgrade of roughly $2,000 a month, and unqualified inbound now reaches the sales team pre-sorted.",
            "engagement_start": "2026-02-25",
            "industry": "Peptide & Oligonucleotide Manufacturing",
            "location": {
                "city": "Milpitas",
                "state": "CA"
            }
        },
        {
            "name": "Chelsea Supplies",
            "engagement_type": "contract",
            "services_provided": [
                "WooCommerce performance optimization",
                "Database optimization & HPOS migration",
                "Security remediation",
                "Product configurator development",
                "Technical SEO & URL architecture",
                "Google Tag Manager & conversion tracking",
                "TikTok & OpenAI pixel implementation",
                "Payment gateway migration",
                "Hosting & Cloudflare strategy"
            ],
            "url": "https://chelseasupplies.com",
            "summary": "Chelsea Supplies is a UK online retailer of designer radiators, composite fencing and composite decking, running six figures of WooCommerce order history on a shared hosting plan that was billed as a dedicated one. I was brought in to review the whole stack and stayed to rebuild what it exposed: database queries cut from 3-4 seconds to under a second across 100,000+ orders migrated to HPOS, publicly downloadable database backups removed from the webroot, two priced-by-component product configurators built for the new decking and fencing lines, four SEO-addressable colour URLs served off a single product listing, and an advertising measurement chain repeatedly repaired when other vendors broke it in production.",
            "outcome": "Google Ads conversion reporting was restored after an eight day blackout that had flatlined campaign performance, and the store's page cache and TikTok tracking were brought back from silently doing nothing.",
            "engagement_start": "2026-04-06",
            "industry": "Home Improvement eCommerce",
            "location": {
                "city": "Bolton",
                "state": "UK"
            }
        },
        {
            "name": "AdDaptive Intelligence",
            "engagement_type": "contract",
            "services_provided": [
                "Web design",
                "Custom WordPress development",
                "SVG animation & data visualization",
                "ACF content architecture",
                "Information architecture",
                "Front-end development",
                "DevOps & deployment pipeline",
                "GEO / AI search",
                "Google Tag Manager",
                "Performance optimization"
            ],
            "url": "https://www.addaptive.com",
            "summary": "AdDaptive Intelligence is a Boston-area B2B account-based advertising and analytics platform, and hired me to rebuild addaptive.com end to end, designing the site, engineering the custom WordPress theme behind it, and standing up the infrastructure it runs on. The work covers a homepage design delivered as a fully animated HTML/CSS/JS prototype, the ABM lifecycle and signal-differentiation diagrams hand-built in SVG, a classic PHP theme with an ACF flexible-content section library so the marketing team can build pages without a developer, audience landing pages for Brands, Agencies and Publishers, News and Press post types, a Calendly demo-booking modal, and a machine-readable /llm-api/ business profile for AI search. It also covers the environment underneath it: local nginx and SSL, CodeKit builds, a private GitHub repository, and a tested WP Engine git deploy pipeline.",
            "outcome": "A two-person marketing team owns a site that finally matches the brand, publishes pages without a developer, and explains an abstract product in about eight seconds.",
            "engagement_start": "2026-05-01",
            "industry": "AdTech / B2B Account-Based Advertising",
            "location": {
                "city": "Woburn",
                "state": "MA"
            }
        },
        {
            "name": "BlackVue Australia",
            "engagement_type": "contract",
            "services_provided": [
                "Performance audit",
                "WordPress & WooCommerce engineering",
                "Caching architecture",
                "ACF content architecture review",
                "Laravel Blade template optimization",
                "Core Web Vitals",
                "Third-party script management",
                "Technical documentation"
            ],
            "url": "https://www.blackvue.com.au",
            "summary": "BlackVue Australia is the Australian distributor for BlackVue dash cameras, and hired me to audit a heavily customized WordPress, WooCommerce and Laravel Blade store that was slow for real visitors while every hosting metric looked healthy. The audit traced a cache BYPASS on every browser visit to a live WooCommerce cart rendered in the site header, which set a session cookie that stopped Cloudflare and Varnish from caching any page, and quantified a 415-field ACF group, an 18.6MB background video and a 2.87s server render. The implementation that followed made anonymous HTML cacheable, hydrated the header cart over AJAX, memoized 102 uncached image disk reads per render, deferred third-party scripts, and documented the cacheability contract for the wider team.",
            "outcome": "Two independent agencies had recommended a full rebuild; the audit found a healthy codebase, one cookie, and a prioritized path that kept the site they already had.",
            "engagement_start": "2026-05-01",
            "industry": "Dash Cameras / eCommerce",
            "location": {
                "city": "Osborne Park",
                "state": "WA"
            }
        },
        {
            "name": "Bastille.net",
            "engagement_type": "contract",
            "services_provided": [
                "Custom theme & landing pages",
                "AEO/LLM visibility infrastructure",
                "GTM & GA4 with consent gating",
                "HubSpot integration",
                "Accessibility & performance fixes",
                "BigQuery executive reporting"
            ],
            "url": "https://bastille.net",
            "summary": "Bastille.net is an enterprise wireless security company, and hired me as their enterprise WordPress engineer and analytics consultant to run the website and the reporting behind it. The work covers custom theme and landing page development, AEO and LLM visibility infrastructure including llms.txt, Schema.org data and a JSON API for LLMs, GTM and GA4 with consent gating, HubSpot integration, and accessibility and performance fixes. BigQuery-powered weekly metrics reports go directly to leadership.",
            "outcome": "Leadership gets weekly metrics automatically, and the site is now visible to traditional search and AI answer engines alike.",
            "engagement_start": "2025-01-01"
        },
        {
            "name": "TripAdvisor",
            "engagement_type": "contract",
            "services_provided": [
                "Custom WordPress development",
                "Internationalization across 8 country domains",
                "Custom JSON API development",
                "TripAdvisor Partner API integration",
                "Technical SEO & canonical architecture",
                "SAML 2.0 SSO",
                "Page cache segmentation",
                "CMS migration & redirect mapping"
            ],
            "url": "https://www.tripadvisor.com/blog",
            "summary": "TripAdvisor hired me as a senior WordPress developer to build a custom theme and supporting plugins for a redesign of their official corporate blog, then kept me on it for the next eight years. A single WordPress install served eight country domains in five languages behind their own nginx reverse proxy, with the locale resolved from a forwarded-host header rather than a multisite network. The work covers the theme and its Timber/Twig and AngularJS layers, a purpose-built JSON API, TripAdvisor Partner API integration, internationalized SEO with per-locale canonicals and hreflang, generated UK English, SAML 2.0 SSO, page cache segmentation by domain, three brand rollouts, and the 109 deep-linked redirects that retired the blog into their in-house Java platform without losing its search equity.",
            "outcome": "One install served eight country domains through three rebrands, and the blog was retired article by article rather than switched off.",
            "engagement_start": "2015-10-01",
            "industry": "Travel & Hospitality",
            "location": {
                "city": "Needham",
                "state": "MA"
            }
        },
        {
            "name": "MIT Technology Review",
            "engagement_type": "contract",
            "services_provided": [
                "Headless frontend architecture",
                "Node.js & React development",
                "Drupal/WordPress content API",
                "GA4 to BigQuery warehouse",
                "Looker Studio reporting"
            ],
            "url": "https://www.technologyreview.com",
            "summary": "MIT Technology Review hired me as a JavaScript expert to define and build the headless, API-driven frontend behind an extensive redesign of technologyreview.com. The work covered a standalone Node.js frontend serving content from a Drupal backend API, plus GA4 data flowing into a BigQuery warehouse for Looker Studio reporting. The system supports over 2 million monthly visitors without breaking a sweat.",
            "outcome": "The headless frontend supports over 2 million monthly visitors without breaking a sweat, with GA4 data warehoused for Looker Studio reporting.",
            "industry": "Media & Publishing",
            "location": {
                "city": "Cambridge",
                "state": "MA"
            }
        },
        {
            "name": "MIT",
            "engagement_type": "contract",
            "services_provided": [
                "Custom plugin development",
                "Custom post types & taxonomies",
                "Elementor design systems",
                "Brand implementation",
                "WordPress security hardening",
                "Performance optimization",
                "Git deployment & environments",
                "Maintenance and support"
            ],
            "url": "https://scram.mit.edu",
            "summary": "MIT brought me in through its Internet Policy Research Initiative and CSAIL as the WordPress engineer for four public research properties: SCRAM, IPRI, MIT Future of Data and the ACM Symposium on Computer Science and Law. The work covers two custom functionality plugins, a team directory built as a post type and shortcode that the labs still run themselves, MIT brand implementation through Elementor global settings, a rebuilt research record, login hardening and web root cleanup, and a local environment, repository and zero-downtime deploy path for every site that previously only existed in production.",
            "outcome": "Four research sites moved from unversioned production edits to versioned, deployable software, with a people directory the labs maintain without a developer.",
            "engagement_start": "2024-01-01",
            "industry": "Higher Education & Research",
            "location": {
                "city": "Cambridge",
                "state": "MA"
            }
        },
        {
            "name": "Cramer",
            "engagement_type": "contract",
            "services_provided": [
                "Custom WordPress development",
                "Figma to WordPress",
                "ACF content architecture",
                "Veeva Vault API integration",
                "Regulated pharma compliance",
                "WCAG accessibility",
                "Consent management",
                "Launch redirects & SEO migration"
            ],
            "url": "https://madrigalpatientsupport.com",
            "summary": "Cramer is a B2B brand experience agency in Norwood, MA, and hired me as their WordPress engineer to build madrigalpatientsupport.com for Madrigal Pharmaceuticals from Figma to an FDA-reviewed production launch. The work covers a framework-free custom theme serving separate patient and healthcare-professional experiences from one codebase, an ACF flexible-content module system, the dual sticky/static Important Safety Information component, a Request an ARM form with server-side validation and a Veeva Vault rep lookup, WCAG accessibility and Usercentrics consent, and a 301-mapped URL restructure at launch. Their team edits approved copy, job codes and resources without a developer.",
            "outcome": "Their team edits approved copy, job codes and resources without a developer, and the site launched with its regulatory content managed in the CMS rather than in code.",
            "engagement_start": "2026-01-26",
            "industry": "Brand Experience Agency",
            "location": {
                "city": "Norwood",
                "state": "MA"
            }
        },
        {
            "name": "SBLI",
            "engagement_type": "contract",
            "services_provided": [
                "Custom plugin development",
                "Angular quote & application frontends",
                "Custom HTTP API & MySQL tables",
                "SOAP CRM integration",
                "Partner lead webhooks",
                "Segment & BigQuery analytics",
                "Offline conversion tracking",
                "Security hardening",
                "Documentation & knowledge transfer"
            ],
            "url": "https://www.sbli.com/",
            "summary": "SBLI is a Massachusetts mutual life insurer chartered more than a century ago, and hired me as their sole senior WordPress developer for the consumer platform, a relationship that ran eight and a half years. The work covers a custom pricing engine with its own MySQL rate table and XLSX importer driving instant term life quotes at sbli.com/quote, the fully digital application at apply.sbli.com built in Angular on a WordPress backend, four partner lead webhooks feeding an ArrayWorks SOAP CRM, and a Segment/BigQuery measurement stack with a Node microservice pushing offline underwriting outcomes back to the ad platforms. Sustained development across nine private repositories, with a twelve-document handover to the in-house team.",
            "outcome": "Conversions increased 362%, campaigns optimized on policies issued rather than leads captured, and the platform was handed off documented rather than switched off.",
            "engagement_start": "2015-11-16",
            "industry": "Financial Services",
            "location": {
                "city": "Woburn",
                "state": "MA"
            }
        },
        {
            "name": "Coastal1 Credit Union",
            "engagement_type": "contract",
            "services_provided": [
                "Custom WCAG-compliant theme",
                "Monthly maintenance cycles",
                "Hardening & audit remediation",
                "Content Security Policy",
                "Cloudflare WAF & Turnstile",
                "GA4 & ad conversion tracking",
                "AI search visibility"
            ],
            "url": "https://www.coastal1.org",
            "summary": "Coastal1 Credit Union is the largest credit union in Rhode Island with over $2B in managed assets, and hired me as a senior WordPress developer to design, build and maintain their website. The work covers a WCAG-compliant custom theme, monthly maintenance and update cycles, security hardening against audit and scan findings, Content Security Policy, Cloudflare WAF and Turnstile, and GA4 and ad conversion tracking. A custom plugin pulls live rate data from external APIs throughout the entire site.",
            "outcome": "The site holds up to accessibility and security audits, and live rates stay accurate across every page without manual updates.",
            "industry": "Financial Services",
            "location": {
                "city": "Providence",
                "state": "RI"
            }
        },
        {
            "name": "ARI-hetra",
            "engagement_type": "contract",
            "services_provided": [
                "BigQuery data warehouse",
                "Sage 100 ERP integration",
                "Python & Pandas ETL pipelines",
                "Google Cloud infrastructure",
                "API & SFTP integrations",
                "Fivetran & Airbyte sync"
            ],
            "url": "https://www.ari-hetra.com",
            "summary": "ARI-hetra manufactures the heavy-duty lifts and shop equipment that keep military, government and transit fleets running, and hired me to build the data warehouse behind their business. The work covers a Google BigQuery warehouse fed by four systems that had no way to talk to each other: Sage 100 ERP extracted nightly over the MAS 90 ODBC driver from an on-premise Windows server, Paylocity payroll delivered as XLS to a Google Cloud SFTP server I built for it, GPS fleet telematics imported daily as time-series data, and Zoho CRM synced through Fivetran. The pipeline was rewritten three times, ending as a Python and Pandas ETL in Google Cloud with retry logic, freshness and row-count checks, request chunking and fault alerting.",
            "outcome": "Nineteen ERP tables, payroll, CRM and fleet telematics now land in BigQuery every day without anyone opening a spreadsheet.",
            "engagement_start": "2024-02-01"
        },
        {
            "name": "Fab Foundation",
            "engagement_type": "contract",
            "services_provided": [
                "Custom WordPress development",
                "Front-end authoring application",
                "Performance & database optimization",
                "Branded authentication flows",
                "Internationalization & RTL",
                "Search indexing & SEO",
                "Ongoing maintenance"
            ],
            "url": "https://www.scopesdf.org",
            "summary": "Fab Foundation runs the global network of Fab Labs that came out of MIT's Center for Bits and Atoms, and hired me to engineer SCOPES-DF, the WordPress application where educators across that network build and share digital fabrication lesson plans. The work covers a front-end lesson plan builder with rich-text authoring, media library image uploads and upload security checks, branded login and registration that never exposes WordPress, Arabic translation with right-to-left layout driven by browser language, and a performance rescue that took the lessons index from 2GB of peak memory to 40MB and removed roughly 600,000 duplicate postmeta rows. Monthly core and plugin update cycles, log triage and Cloudflare bot protection keep it running.",
            "outcome": "The lessons library serves 250+ community-contributed lesson plans to educators across 2,300+ Fab Labs without the fatal errors and lost lesson plans it started with.",
            "engagement_start": "2024-02-01"
        },
        {
            "name": "DoubleShot Creative",
            "engagement_type": "contract",
            "services_provided": [
                "WordPress VIP development",
                "Figma to WordPress theme build",
                "ACF content architecture",
                "Adobe Experience Manager migration",
                "Enterprise API integration",
                "CCPA privacy request handling",
                "WCAG accessibility",
                "Security review & hardening",
                "Deployment architecture",
                "Google Tag Manager & GA4"
            ],
            "url": "https://doubleshotcreative.com",
            "summary": "DoubleShot Creative is a WBENC-certified Bay Area creative agency that won the CSAA Insurance Group corporate website redesign and hired me as the WordPress VIP engineer they don't keep in house. The work covers a custom theme built from Figma with a 23-layout ACF flexible content library, ten bespoke templates, and three Adobe Experience Manager systems re-implemented in WordPress, AAA National zip and club code interrogation, the Direct Repair Network shop finder, and a CCPA request pipeline integrated with CSAA's Manage-CCPA API over OAuth. It also covers 406 items of AEM content migrated, a WP VIP security review, a WCAG accessibility pass, and the deployment architecture argument that reversed a Bitbucket-to-GitHub mirror before it could hide failed VIP builds.",
            "outcome": "Every page and template in the agency's scope shipped to staging for client review, and an agency with no engineering function can build new pages from the module library without a developer.",
            "engagement_start": "2026-04-01",
            "industry": "Creative & Digital Marketing Agency",
            "location": {
                "city": "Redwood City",
                "state": "CA"
            }
        },
        {
            "name": "Cred.ai",
            "engagement_type": "contract",
            "services_provided": [
                "Multi-site maintenance & updates",
                "Hardening & enumeration blocking",
                "WPScan & CISA scanning",
                "Cloudflare access controls",
                "Server-side tracking & consent",
                "Technical SEO & 404 remediation"
            ],
            "url": "https://www.cred.ai",
            "summary": "Cred.ai is a mobile banking platform, and hired me as their WordPress consultant and analytics expert to improve an agency-built Elementor theme and take ownership of every analytics and ad platform integration. The work covers maintenance and updates across multiple sites, security hardening including user enumeration blocking, WPScan and CISA scanning, Cloudflare access controls, and Consent Mode v2 with synchronized browser and server-side conversion tracking. Customer acquisition costs are down across Facebook, Google Ads, TikTok and Snapchat.",
            "outcome": "Customer acquisition costs are down across Facebook, Google Ads, TikTok and Snapchat, on tracking that survives consent choices and ad blockers.",
            "engagement_start": "2021-08-01",
            "industry": "FinTech",
            "location": {
                "city": "Philadelphia",
                "state": "PA"
            }
        },
        {
            "name": "SafeHire Inc.",
            "engagement_type": "contract",
            "services_provided": [
                "Laravel application development",
                "Stripe payments & invoicing",
                "PDF report generation",
                "Secure S3 document handling",
                "AWS & Laravel Forge infrastructure",
                "Email deliverability & DMARC",
                "Server hardening",
                "Long-term maintenance"
            ],
            "url": "https://www.askcip.com",
            "summary": "SafeHire Inc. is the digital background screening arm of The CIP Group, and hired me to build the Laravel web application behind it from an empty repository to production. The work covers the whole product: applicant intake with structured address history, state-aware driver's license validation and a drawn e-signature, an investigator report editor with per-service templates, DOMPDF report generation, secure document storage served only through short-lived signed S3 URLs behind an ownership check, customer accounts with a card on file, and Stripe invoicing that charges automatically the moment a report is marked complete. Five years of production support followed: framework and PHP upgrades, an S3 region migration, two address-API migrations, DMARC for Stripe's sending requirements, and fail2ban after the SSH logs filled with brute-force attempts.",
            "outcome": "Intake, investigation, reporting and billing that used to run on paper, email and a spreadsheet ran as one application for five years, retired on the client's schedule rather than in failure.",
            "engagement_start": "2020-06-01"
        },
        {
            "name": "OneGuide",
            "engagement_type": "contract",
            "services_provided": [
                "WordPress multisite architecture",
                "Domain mapping & white-labeling",
                "Content syndication",
                "Custom admin tooling",
                "Member management APIs",
                "CRM & community integration",
                "Performance optimization",
                "Deploy pipeline & environments"
            ],
            "url": "https://www.askoneguide.com",
            "summary": "OneGuide is the platform for modern portfolio ops, and hired me as the sole engineer behind oneguideportal.com, the WordPress multisite network that delivers a white-labeled portfolio hub to each of their private equity and venture capital clients. The work covers the multisite architecture and per-firm domain mapping, ThreeWP Broadcast content syndication with a per-firm publish policy, custom editorial tooling that turned the WordPress admin into a two-verb curation console, a JSON API for CSV member import and export wired into BuddyPress and FluentCRM, branded activation email, a performance pass across a seventy-four plugin BuddyBoss and LearnDash stack, and a four-environment RunCloud deploy pipeline.",
            "outcome": "Fourteen client-branded portals ran from one codebase and one deploy, curated by operating partners rather than developers.",
            "engagement_start": "2022-03-01"
        },
        {
            "name": "Recon Analytics",
            "engagement_type": "contract",
            "services_provided": [
                "Custom WordPress development",
                "Stripe store & member accounts",
                "Subscriber & account dashboards",
                "n8n AI automation",
                "GTM & GA4",
                "SEO & Schema.org"
            ],
            "url": "https://www.reconanalytics.com",
            "summary": "Recon Analytics is a first-party research agency serving leading telecom and AI providers, and hired me as their enterprise WordPress developer to build the platform their research is sold and delivered on. The work covers a custom theme, a Stripe-powered report store with member accounts and subscriber dashboards, automated AI workflows through n8n, and GTM and GA4 measurement with SEO and Schema.org markup. Reports reach their customers in near real-time.",
            "outcome": "Reports reach their customers in near real-time, and report sales run through Stripe without manual fulfillment.",
            "engagement_start": "2025-02-01",
            "industry": "Market Research",
            "location": {
                "city": "Dedham",
                "state": "MA"
            }
        },
        {
            "name": "Legacy Memorial Products",
            "engagement_type": "contract",
            "services_provided": [
                "Custom WordPress development",
                "Stripe Checkout & payments",
                "Vue product customizer",
                "SVG generation for laser engraving",
                "Brand & web design",
                "Copywriting",
                "GTM & GA4",
                "Cloudflare & Kinsta hosting"
            ],
            "url": "https://www.legacymemorialproducts.com",
            "summary": "Legacy Memorial Products is a patented American keepsake urn brought to market by a single founder, and hired me to build the entire business around the product: brand, website, copy, storefront and the engraving pipeline behind it. The work covers a custom WordPress theme with no WooCommerce, a Stripe Checkout storefront with prices computed per configuration, and a Vue customizer that lets a customer lay out text across six engravable sides in 39 typefaces and outputs the production SVG the laser engraver runs on. Hosting, Cloudflare, GTM and GA4, and every page of site copy were part of it.",
            "outcome": "Every completed order produces one production-ready engraving file automatically, with its link written into the Stripe payment record - no drawing step between checkout and the laser.",
            "engagement_start": "2025-08-01"
        },
        {
            "name": "Montway Auto Transport",
            "engagement_type": "contract",
            "services_provided": [
                "Lead flow optimization",
                "Custom SEO/GEO plugin development",
                "Kinsta hosting & performance",
                "BigQuery reporting"
            ],
            "url": "https://www.montway.com",
            "summary": "Montway Auto Transport is the leading auto and motor transport provider in the United States, and hired me as a freelance WordPress developer to optimize their heavily used lead generation flows. The work covered lead flow and architecture optimization on Kinsta, plus custom SEO and GEO plugin development that improved both traditional search rankings and AI answer visibility for their marketing team. BigQuery reporting sits behind the results.",
            "outcome": "Lead flows convert better and rankings improved in both traditional search and AI answers, with BigQuery reporting behind the results.",
            "industry": "Transportation & Logistics",
            "location": {
                "city": "Denver",
                "state": "CO"
            }
        },
        {
            "name": "Yakima Valley Workers Clinic",
            "engagement_type": "contract",
            "services_provided": [
                "Agency theme takeover",
                "Taleo careers API plugin",
                "Plugin & dependency cleanup",
                "Performance fixes",
                "Kinsta environment setup"
            ],
            "url": "https://www.yvfwc.com",
            "summary": "Yakima Valley Workers Clinic is a network of over 40 health care clinics in Washington and Oregon, and hired me as a enterprise WordPress engineer to take over support of a custom agency-built theme. The work covers plugin bloat and dependency cleanup, major performance fixes, Kinsta environment setup, and a custom Taleo careers API plugin that keeps every open position current. Their team publishes without the constant breakage they had before.",
            "outcome": "Open positions stay current on their own, pages load far faster, and their team publishes without the constant breakage they had before.",
            "engagement_start": "2022-10-01",
            "industry": "Healthcare",
            "location": {
                "city": "Yakima",
                "state": "WA"
            }
        },
        {
            "name": "Paperless Parts",
            "engagement_type": "contract",
            "services_provided": [
                "Agency theme cleanup & rebuild",
                "ITAR-aligned security hardening",
                "Plugin & core update cycles",
                "HubSpot & Salesforce lifecycles",
                "GTM conversion tracking",
                "Technical SEO",
                "BigQuery marketing warehouse"
            ],
            "url": "https://www.paperlessparts.com",
            "summary": "Paperless Parts builds software used by thousands of manufacturing shops nationwide, and hired me as their WordPress consultant to make an agency-built theme stable, secure and fully integrated with their marketing stack. The work covers theme cleanup and rebuild, ITAR-aligned security hardening, ongoing plugin and core update cycles, HubSpot and Salesforce lifecycle integration, GTM conversion tracking and technical SEO, with a BigQuery warehouse behind their marketing data.",
            "outcome": "The theme is stable and ITAR-aligned, lifecycle data flows cleanly into HubSpot and Salesforce, and marketing works from one warehouse.",
            "engagement_start": "2022-08-01",
            "industry": "Manufacturing Software",
            "location": {
                "city": "Boston",
                "state": "MA"
            }
        },
        {
            "name": "Building Engines",
            "engagement_type": "contract",
            "services_provided": [
                "Custom WordPress development",
                "Site speed optimization",
                "GTM container rebuild",
                "Lead generation improvements"
            ],
            "url": "https://www.buildingengines.com",
            "summary": "Building Engines hired me as their web developer to build and support an agency-designed custom WordPress website for their Boston team. The work covered custom theme development, site speed optimization, and a Google Tag Manager rebuild that went from hundreds of tags down to 8 modular ones. The site generates 262% more leads as a result.",
            "outcome": "The tag container went from hundreds of tags down to eight, and the site generates 262% more leads as a result.",
            "industry": "Commercial Real Estate Software",
            "location": {
                "city": "Boston",
                "state": "MA"
            }
        },
        {
            "name": "Harvard Law Review",
            "engagement_type": "contract",
            "services_provided": [
                "Custom theme build & maintenance",
                "Ongoing update cycles",
                "Cloudflare WAF & security headers",
                "MFA & account security",
                "Traffic surge performance",
                "GA4 & Search Console to BigQuery",
                "Looker Studio dashboards"
            ],
            "url": "https://harvardlawreview.org",
            "summary": "Harvard Law Review hired me as their enterprise WordPress engineer to build and maintain the custom design for their site, and keep it stable under heavy traffic. The work covers ongoing update cycles, Cloudflare WAF and security headers, MFA and account security, and performance tuning during traffic surges. An analytics pipeline connects GA4 and Search Console to BigQuery, with scheduled queries powering their Looker Studio dashboard.",
            "outcome": "The site stays fast through traffic surges, and GA4 and Search Console data feed their Looker Studio dashboard on schedule.",
            "engagement_start": "2018-10-10",
            "industry": "Education & Publishing",
            "location": {
                "city": "Cambridge",
                "state": "MA"
            }
        },
        {
            "name": "Innovasea",
            "engagement_type": "contract",
            "services_provided": [
                "Agency site cleanup & standards",
                "Plugin reduction",
                "Core & plugin update cycles",
                "GA4 & GTM hygiene"
            ],
            "url": "https://www.innovasea.com",
            "summary": "Innovasea hired me as a WordPress developer to clean up and standardize their custom agency-built site. The work covered plugin reduction, core and plugin update cycles, and GA4 and Google Tag Manager hygiene. Their install is fully up to date, depends on far fewer plugins, and lets their team publish exactly what they want.",
            "outcome": "Their install is fully up to date, depends on far fewer plugins, and lets their team publish exactly what they want.",
            "industry": "Aquaculture & Agriculture",
            "location": {
                "city": "Dartmouth",
                "state": "NS"
            }
        },
        {
            "name": "Honeyfund",
            "engagement_type": "contract",
            "services_provided": [
                "AWS to Kinsta migration",
                "PHP 7.4 to 8.3 upgrade",
                "Custom blog theme",
                "GA4 & GTM event tracking",
                "Meta CAPI server-side events",
                "Technical SEO & schema",
                "BigQuery traffic analysis"
            ],
            "url": "https://www.honeyfund.com",
            "summary": "Honeyfund hired me as a senior WordPress developer and analytics expert to clean up, migrate and secure their out-of-date blog. The work covered migration from a custom AWS EC2 stack to Kinsta, dozens of plugin updates and a PHP 7.4 to 8.3 upgrade with zero downtime, plus GA4 and GTM event tracking, Meta CAPI server-side events, and technical SEO with schema. BigQuery analysis backs their traffic reporting.",
            "outcome": "Migration and the PHP 8.3 upgrade shipped with zero downtime, and server-side events restored accurate conversion reporting.",
            "engagement_start": "2024-07-01",
            "industry": "Events & Gifting",
            "location": {
                "city": "San Francisco",
                "state": "CA"
            }
        },
        {
            "name": "The World Bank",
            "engagement_type": "contract",
            "services_provided": [
                "Headless CMS application",
                "Automated PDF report generation",
                "Data visualization templates",
                "Country-level content controls"
            ],
            "url": "https://www.worldbank.org",
            "summary": "The World Bank hired me as a freelance web application developer to build a CMS that generates and distributes reports to 180 countries. The work covered a headless WordPress application that automates PDF report generation and rich data visualizations, with control over the master template and country-level overrides. They used it to distribute hundreds of COVID-19 status reports during the pandemic.",
            "outcome": "Hundreds of COVID-19 status reports went out to 180 countries, generated and formatted without a designer in the loop.",
            "industry": "International Development",
            "location": {
                "city": "Washington",
                "state": "DC"
            }
        },
        {
            "name": "MIT Sloan Review",
            "engagement_type": "contract",
            "services_provided": [
                "Piano paywall implementation",
                "Group membership system",
                "Custom theme & plugin development",
                "GA4 & form data in BigQuery"
            ],
            "url": "https://sloan.mit.edu",
            "summary": "MIT Sloan Review hired me as their custom WordPress theme and plugin developer to set up and extend a Piano-powered paywall and the analytics behind it. The work covered a corporate group membership system built with their internal team, plus custom theme and plugin development and a BigQuery warehouse collecting GA4 analytics data, Gravity Forms submissions and more.",
            "outcome": "Corporate group memberships run themselves, and paywall, form and analytics data all land in one BigQuery warehouse.",
            "industry": "Media & Publishing",
            "location": {
                "city": "Cambridge",
                "state": "MA"
            }
        },
        {
            "name": "Sarasota Box Office",
            "engagement_type": "contract",
            "services_provided": [
                "WooCommerce theme at scale",
                "Git deployment system",
                "DevOps standardization",
                "Codebase consolidation"
            ],
            "url": "https://www.sarasotaboxoffice.com",
            "summary": "Sarasota Box Office hired me as an expert WordPress developer to configure modern DevOps for a custom WooCommerce theme running across hundreds of client websites. The work covered a git deployment system that pushes updates to every client site safely, along with consolidation of years of redundant code. The result is a lean system supporting stable, rapid iteration on their WooCommerce product.",
            "outcome": "Updates deploy safely to hundreds of client sites, and years of redundant code are gone, leaving a lean system to iterate on.",
            "industry": "Entertainment & Ticketing",
            "location": {
                "city": "Sarasota",
                "state": "FL"
            }
        },
        {
            "name": "EverPresent",
            "engagement_type": "contract",
            "services_provided": [
                "Custom theme rebuild",
                "Plugin removal & cleanup",
                "Modular landing page system",
                "Custom location database",
                "Lead form validation",
                "PHP 8 upgrade"
            ],
            "url": "https://www.everpresent.com",
            "summary": "EverPresent hired me as their WordPress consultant to clean up an unstable site by rebuilding it on a new custom theme. The work covered removing dozens of unnecessary plugins, a modular landing page system, a custom location database, lead form validation and a PHP 8 upgrade. They manage a vast library of landing pages on their own now, confident nothing will break.",
            "outcome": "Dozens of unnecessary plugins are gone, and they manage a vast library of landing pages on their own, confident nothing will break.",
            "engagement_start": "2024-07-01",
            "industry": "Photo & Video Digitization",
            "location": {
                "city": "Newton",
                "state": "MA"
            }
        },
        {
            "name": "OpenView Venture",
            "engagement_type": "contract",
            "services_provided": [
                "Website design",
                "Multisite network build",
                "Inbound marketing engine",
                "Portfolio company support"
            ],
            "url": "https://openviewpartners.com/",
            "summary": "OpenView Venture is an expansion-stage venture capital firm, and hired me as a local freelance designer and developer to iterate on ideas directly with their investment team in Boston's Seaport. The work covered design and development of a large inbound marketing engine at labs.openviewpartners.com and the firm site at openviewpartners.com, run under a single WordPress Multisite network. The project became a model for their SaaS portfolio companies, several of whom I went on to work with directly.",
            "outcome": "The inbound engine became a model for their SaaS portfolio companies, several of whom I went on to work with directly.",
            "industry": "Venture Capital",
            "location": {
                "city": "Boston",
                "state": "MA"
            }
        },
        {
            "name": "Boston Review",
            "engagement_type": "contract",
            "services_provided": [
                "WooCommerce subscription rebuild",
                "Membership fulfillment automation",
                "Stripe checkout & payments",
                "SendGrid email with SPF & DKIM",
                "Cloudflare migration & edge caching",
                "Git deployment workflow",
                "Ongoing maintenance"
            ],
            "url": "https://www.bostonreview.net",
            "summary": "Boston Review hired me as an experienced WooCommerce developer to repair a subscription and membership system that had drifted off its own calendar, with no repository, staging or local environment behind it. The work covers a WooCommerce Subscriptions renewal rebuild traced to next payment dates being calculated from actual payment time, a SQL audit correcting roughly 800 subscriptions, REST-backed print and digital fulfillment runs with a real test mode, Stripe checkout repair, SendGrid transactional email with SPF and DKIM, a Cloudflare account migration and cache rules answering 90%+ of page requests at the edge, and zero-downtime git deployment to WP Engine across localhost, staging and production.",
            "outcome": "Renewals bill on the date subscribers were told they would be billed, fulfillment runs four times a year instead of by hand, and 90%+ of page requests are answered at the edge.",
            "engagement_start": "2024-01-01",
            "industry": "Media & Publishing",
            "location": {
                "city": "Boston",
                "state": "MA"
            }
        },
        {
            "name": "Northstar Travel Group",
            "engagement_type": "contract",
            "services_provided": [
                "BigQuery warehouse architecture",
                "GA4 & UA data migration",
                "Multi-brand ETL pipelines",
                "Materialized views & clustering",
                "Tableau reporting models"
            ],
            "url": "https://www.northstartravelgroup.com",
            "summary": "Northstar Travel Group hired me as a data warehouse architect and fractional data engineer to build the BigQuery pipeline behind their monthly performance dashboard. The work covered GA4 and Universal Analytics migration, multi-brand ETL pipelines, and clustering and materialized views that keep a single table of hundreds of millions of records fast and cheap to query. The reporting models feed Tableau for their leadership team.",
            "outcome": "Hundreds of millions of records stay fast and cheap to query, feeding the Tableau models their leadership team reviews monthly.",
            "engagement_start": "2024-06-01",
            "industry": "Travel Software",
            "location": {
                "city": "New York",
                "state": "NY"
            }
        },
        {
            "name": "Swagger.io",
            "engagement_type": "contract",
            "services_provided": [
                "Website design",
                "Custom WordPress development",
                "GitHub-powered dynamic content",
                "Open-source docs workflows"
            ],
            "url": "https://www.swagger.io/",
            "summary": "Swagger.io publishes the most popular API documentation system on the web, and hired me as a freelance designer to redesign swagger.io and build the custom WordPress theme behind it. The work covered a new design supporting their established brand, developed with their team in Cambridge, MA, and a theme serving dynamic content directly from GitHub so developers can suggest and approve edits. Their product is used by companies like Intuit, McKesson, Microsoft, Morningstar and PayPal.",
            "outcome": "Developers suggest and approve documentation edits through GitHub, on a product used by companies like Intuit, Microsoft and PayPal.",
            "industry": "API & Developer Tools",
            "location": {
                "city": "Santa Clara",
                "state": "CA"
            }
        },
        {
            "name": "Iotics",
            "engagement_type": "contract",
            "services_provided": [
                "Pantheon site support",
                "Content management automation",
                "Multitouch lead attribution",
                "HubSpot & BigQuery pipelines"
            ],
            "url": "https://www.iotics.com",
            "summary": "Iotics hired me as their web developer to support a business website on the Pantheon hosting platform and connect it to their marketing stack. The work covered content management simplification and automation, plus multitouch lead attribution flowing from their lead forms into HubSpot and BigQuery for their BI tools to work with.",
            "outcome": "Lead attribution flows automatically into HubSpot and BigQuery, and routine content management takes a fraction of the time it used to.",
            "industry": "IoT & Software",
            "location": {
                "city": "London",
                "state": "UK"
            }
        },
        {
            "name": "Starbucks SirenCARD",
            "engagement_type": "contract",
            "services_provided": [
                "Custom WordPress development",
                "Launch support",
                "BigQuery program reporting"
            ],
            "url": "https://www.sirencard.com",
            "summary": "Starbucks SirenCARD hired me as their custom WordPress developer to build and support the launch of sirencard.com. The work covered a clean, easy-to-manage custom theme and launch support, with program analytics reporting powered by BigQuery.",
            "outcome": "The launch shipped on schedule on a theme their team can manage themselves, with program reporting powered by BigQuery.",
            "industry": "Financial Services",
            "location": {
                "city": "Seattle",
                "state": "WA"
            }
        },
        {
            "name": "Laudio",
            "engagement_type": "contract",
            "services_provided": [
                "Elementor site cleanup",
                "Site speed optimization",
                "GA4 & GTM implementation",
                "Search Console & lead reporting"
            ],
            "url": "https://www.laudio.com",
            "summary": "Laudio hired me as their web developer to clean up a business website built with the Elementor page builder. The work covered site speed optimization, GA4 and Google Tag Manager implementation, and Search Console and lead reporting. Site speed is way up, content management is simpler, and their cost per acquisition is down.",
            "outcome": "Site speed is way up, content management is simpler, and their cost per acquisition is down.",
            "industry": "Technology & Software",
            "location": {
                "city": "San Francisco",
                "state": "CA"
            }
        },
        {
            "name": "Prevent Epidemics",
            "engagement_type": "contract",
            "services_provided": [
                "Web application development",
                "Automated PDF report generation",
                "Multi-country content management"
            ],
            "url": "https://preventepidemics.org",
            "summary": "Prevent Epidemics hired me as a web application developer to build a CMS that generates PDF reports for African countries. The work covered an automated PDF reporting pipeline the PERC team runs themselves, with rapid iteration and easy text and layout adjustments across every country edition.",
            "outcome": "The PERC team produces every country edition themselves, adjusting text and layout without waiting on a developer.",
            "industry": "Public Health",
            "location": {
                "city": "Arlington",
                "state": "VA"
            }
        },
        {
            "name": "Vital Strategies",
            "engagement_type": "contract",
            "services_provided": [
                "Custom Timber theme",
                "Functionality plugin development",
                "Enterprise content management",
                "Ongoing maintenance"
            ],
            "url": "https://www.vitalstrategies.org",
            "summary": "Vital Strategies hired me as an outsourced web developer to build and maintain the custom theme and functionality plugin behind their new corporate website. The work covered a theme templated with the <a href=\"https://upstatement.com/timber/\">Timber</a> library and built for flexibility and stability, plus a functionality plugin supporting enterprise content requirements. It can be redesigned years from now on the same foundation.",
            "outcome": "The theme has stayed stable through years of enterprise content demands, and can be redesigned on the same foundation.",
            "industry": "Global Health",
            "location": {
                "city": "New York",
                "state": "NY"
            }
        },
        {
            "name": "PROTO.LIFE",
            "engagement_type": "contract",
            "services_provided": [
                "Custom editorial theme",
                "Gutenberg block development",
                "Subscription & verification flows",
                "GTM implementation",
                "Ongoing maintenance"
            ],
            "url": "https://proto.life",
            "summary": "PROTO.LIFE hired me to build a modern custom WordPress theme that could support radical long-form publishing ideas. The work covers custom <a href=\"https://wordpress.org/gutenberg/\">Gutenberg</a> blocks for rich article experiences, subscription and email verification flows, Google Tag Manager, and ongoing maintenance. Their editors manage the entire website on their own.",
            "outcome": "Their editors manage the entire website on their own, publishing rich long-form articles with custom blocks.",
            "engagement_start": "2019-12-01",
            "industry": "Media & Publishing",
            "location": {
                "city": "New York",
                "state": "NY"
            }
        },
        {
            "name": "PayWay",
            "engagement_type": "contract",
            "services_provided": [
                "WordPress plugin development",
                "WooCommerce payment gateway integration",
                "Subscription billing support",
                "Payment API integration",
                "WordPress coding standards",
                "WordPress.org directory releases",
                "Public support & incident response"
            ],
            "url": "https://www.payway.com",
            "summary": "PayWay is a payment gateway and merchant services provider built for card-not-present and subscription billing, and I'm the developer behind their official WooCommerce plugin in the WordPress.org directory. The work covers the rewrite that brought the gateway up to WordPress coding standards, its two-call integration with Payway's session token and sale endpoints, full WooCommerce Subscriptions capability support, per-field checkout validation with live and test environments switchable from one setting, and the emergency fix for a release that fataled on activation and locked merchants out of the plugin entirely.",
            "outcome": "A payment gateway that would not activate was diagnosed from a merchant's stack trace and shipped fixed, answered in public on the plugin's own support forum.",
            "engagement_start": "2023-06-01"
        },
        {
            "name": "Lifecycle Renewables",
            "engagement_type": "contract",
            "services_provided": [
                "Custom WordPress development",
                "CMS simplification",
                "WP Engine hosting support"
            ],
            "url": "https://lifecyclerenewables.com/",
            "summary": "Lifecycle Renewables hired me to build a custom theme supporting an updated design for their WordPress site. The work covered custom theme development, CMS simplification and WP Engine hosting support. They manage their site with ease now, without the constant issues and fixes they had before.",
            "outcome": "They manage their site with ease now, without the constant issues and fixes they had before.",
            "industry": "Renewable Energy",
            "location": {
                "city": "Berkeley",
                "state": "CA"
            }
        },
        {
            "name": "Not Your Average Joe's",
            "engagement_type": "contract",
            "services_provided": [
                "Custom WordPress development",
                "50+ location management system",
                "Editorial workflow simplification"
            ],
            "url": "https://www.notyouraveragejoes.com/",
            "summary": "Not Your Average Joe's hired me to build a new custom WordPress theme that would simplify management of their 50+ restaurant locations. The work covered a location management system replacing a poorly built theme, plus editorial workflow simplification and integrations with OpenTable, SinglePlatform and more to automate reservations, menu updates, online ordering and geolocation for mobile users.",
            "outcome": "Reservations, menus, online ordering and geolocation stay current across more than 50 locations without manual updates.",
            "industry": "Food & Beverage",
            "location": {
                "city": "Boston",
                "state": "MA"
            }
        },
        {
            "name": "MIT Arts",
            "engagement_type": "contract",
            "services_provided": [
                "Ongoing theme & plugin support",
                "Event management systems",
                "eCommerce functionality",
                "Custom integrations"
            ],
            "url": "https://arts.mit.edu",
            "summary": "MIT Arts hired me as their enterprise WordPress engineer for ongoing custom theme and plugin support across a complex site. The work covers eCommerce, event management, complex content management and custom integrations, on a site that needed someone who could rapidly understand the existing architecture and improve on it.",
            "outcome": "Complex eCommerce, events and integrations keep running, with new work shipped on the existing architecture rather than a rebuild.",
            "industry": "Education & Arts",
            "location": {
                "city": "Cambridge",
                "state": "MA"
            }
        },
        {
            "name": "Tufts Cancer Center",
            "engagement_type": "contract",
            "services_provided": [
                "Website design",
                "Custom WordPress development",
                "ACF content architecture"
            ],
            "url": "https://ayacancerprogram.tuftsmedicalcenter.org/",
            "summary": "Tufts Cancer Center hired me to design and build a custom WordPress theme powering the Adolescent & Young Adult Cancer Program section of their website. The work covered a theme built on Automattic's <a href=\"https://underscores.me/\" title=\"Underscores theme\">_s</a> starter with ACF content architecture their team maintains entirely on their own, plus a member registration system with social logins and an admin approval workflow gating an enrollment-only area.",
            "outcome": "Their team maintains the whole program section on their own, with enrollment-only access handled by an approval workflow.",
            "industry": "Healthcare",
            "location": {
                "city": "Boston",
                "state": "MA"
            }
        },
        {
            "name": "NetBrain",
            "engagement_type": "contract",
            "services_provided": [
                "Website design & architecture",
                "Custom WordPress development",
                "Marketo & Salesforce integrations",
                "Security hardening",
                "Lead generation iterations",
                "Analytics implementation"
            ],
            "url": "https://www.netbraintech.com/",
            "summary": "NetBrain builds enterprise software that automates network problem diagnosis, and hired me to design, architect and build a modern WordPress website with ongoing support behind it. The work covers custom theme development, Marketo and Salesforce integrations, rapid lead generation iterations, analytics implementation, and security hardening against attacks on their servers.",
            "outcome": "Leads flow straight into Marketo and Salesforce, and the site holds up against the attacks aimed at their servers.",
            "industry": "Networking Software",
            "location": {
                "city": "San Jose",
                "state": "CA"
            }
        },
        {
            "name": "American Student Assistance",
            "engagement_type": "contract",
            "services_provided": [
                "Custom plugin development",
                "Newsroom & events CMS",
                "Editorial workflow design"
            ],
            "url": "https://www.asa.org",
            "summary": "American Student Assistance hired me to design, architect and build the Newsroom and Events sections of their corporate website. The work covered a custom WordPress plugin providing a simple, powerful CMS for managing and publishing events and news items, designed around their editorial workflow.",
            "outcome": "Editors publish news and events themselves, in a CMS shaped around the workflow they already had.",
            "industry": "Education Finance",
            "location": {
                "city": "Boston",
                "state": "MA"
            }
        },
        {
            "name": "Premier Research",
            "engagement_type": "contract",
            "services_provided": [
                "Registration form development",
                "Salesforce CRM sync",
                "Gravity Forms integration",
                "Conversion optimization"
            ],
            "url": "https://premier-research.com/investigator-registration/",
            "summary": "Premier Research is an international provider of clinical research and monitoring services, and hired me as a senior WordPress developer and conversion specialist to build a registration form connected to Salesforce. The work covered a Gravity Forms build syncing submissions to their Salesforce CRM instantly, plus conversion rate iterations measured in Google Tag Manager and GA4 alongside their software and marketing teams.",
            "outcome": "Registrations sync to Salesforce instantly, and conversion rates improved through iterations measured in GA4.",
            "industry": "Healthcare & Clinical Research",
            "location": {
                "city": "Raleigh",
                "state": "NC"
            }
        },
        {
            "name": "Remarque Systems",
            "engagement_type": "contract",
            "services_provided": [
                "Website redesign",
                "Custom WordPress development",
                "Conversion rate optimization"
            ],
            "url": "https://www.remarquesystems.com/",
            "summary": "Remarque Systems hired me as a freelance web designer to redesign their existing website on a tight timeline and budget. The work covered a custom theme built on their existing foundation, fully responsive and optimized to generate inbound marketing leads. Conversion rates increased 459%.",
            "outcome": "Delivered on a tight timeline and budget, with conversion rates up 459%.",
            "industry": "Enterprise Software",
            "location": {
                "city": "Pittsburgh",
                "state": "PA"
            }
        },
        {
            "name": "Philadelphia Magazine",
            "engagement_type": "contract",
            "services_provided": [
                "Custom plugin development",
                "Contest & sweepstakes platform",
                "Social sign-on",
                "Notification system"
            ],
            "url": "https://www.phillymag.com/philadelphia-wedding/announce-your-engagement/",
            "summary": "Philadelphia Magazine hired me as a senior WordPress developer to build a custom plugin managing their annual contests and prize competitions. The work covered a contest and sweepstakes platform with OAuth social sign-on and custom Gravity Forms logic, plus result and upcoming-prize notifications for entrants. Over 100,000 visitors have enrolled through it.",
            "outcome": "Over 100,000 visitors have enrolled through the platform, with results and upcoming prizes announced automatically.",
            "industry": "Media & Publishing",
            "location": {
                "city": "Philadelphia",
                "state": "PA"
            }
        },
        {
            "name": "Boston's Basilica",
            "engagement_type": "contract",
            "services_provided": [
                "Agency theme cleanup",
                "Performance audit & fixes",
                "CMS simplification"
            ],
            "url": "https://www.bostonsbasilica.com/",
            "summary": "Boston's Basilica is Boston's most iconic church, and hired me as a local freelance designer to clean up and rebuild a custom theme built by a local agency. The work covered CMS simplification so content changes no longer require code, plus a performance audit and the fixes it identified. The rebuilt theme loads in under 500ms.",
            "outcome": "The rebuilt theme loads in under 500ms, and content changes no longer require code.",
            "industry": "Religion",
            "location": {
                "city": "Boston",
                "state": "MA"
            }
        },
        {
            "name": "Bossip",
            "engagement_type": "contract",
            "services_provided": [
                "WordPress VIP maintenance",
                "High-traffic publishing support",
                "QA & deadline-driven releases"
            ],
            "url": "https://www.bossip.com/",
            "summary": "Bossip and Moguldom Media Group hired me to provide ongoing maintenance and support for their WordPress VIP hosted website, which receives close to 5 million pageviews each month. The work covers high-traffic publishing support with thorough QA and deadline-driven releases, on a platform where a careless deploy is expensive.",
            "outcome": "Close to 5 million monthly pageviews publish on deadline, on a platform where a careless deploy is expensive.",
            "industry": "Media & Publishing",
            "location": {
                "city": "New York",
                "state": "NY"
            }
        },
        {
            "name": "Keryx",
            "engagement_type": "contract",
            "services_provided": [
                "Custom WordPress development",
                "Corporate intranet build",
                "SAML 2.0 SSO",
                "Google Docs integration"
            ],
            "url": "https://www.keryx.com/",
            "summary": "Keryx is a public biopharmaceutical company, and hired me to develop the custom WordPress theme for their agency-designed public website. The work covered custom theme development, followed by a corporate intranet with SAML 2.0 SSO and Google Docs integration built right after the new site launched.",
            "outcome": "The public site and an SSO-secured intranet both shipped, giving staff one place for internal documents.",
            "industry": "Pharmaceutical & Biotech",
            "location": {
                "city": "Boston",
                "state": "MA"
            }
        },
        {
            "name": "DGA Productions",
            "engagement_type": "contract",
            "services_provided": [
                "Website design",
                "Custom WordPress development",
                "Video portfolio management"
            ],
            "url": "https://www.dgaproductions.com/",
            "summary": "DGA Productions is a full-service production agency with credits for ESPN, YMCA and PBS, and hired me to design and build a website they could update entirely in-house. The work covered a custom WordPress design and build with self-hosted, CDN-delivered 4K video samples using HTML5 playback for full mobile compatibility. They finally had somewhere to showcase their video work.",
            "outcome": "4K samples stream from their own CDN on any device, and they finally had somewhere to showcase their video work.",
            "industry": "Media & Video Production",
            "location": {
                "city": "Boston",
                "state": "MA"
            }
        },
        {
            "name": "Citizen Schools",
            "engagement_type": "contract",
            "services_provided": [
                "Custom WordPress development",
                "Learning management features",
                "In-house design implementation"
            ],
            "url": "https://www.citizenschools.org/",
            "summary": "Citizen Schools runs advanced after-school programs for over 10,000 students in low-income areas nationwide, and hired me as a senior WordPress developer to build a flexible CMS from their in-house design. The work covered a custom theme with advanced learning management capabilities on WordPress Multisite, letting their team run independent microsites for over a dozen locations. We expanded the platform together for over 5 years.",
            "outcome": "Over a dozen locations run independent microsites, on a platform we expanded together for more than five years.",
            "industry": "Education & Non-profit",
            "location": {
                "city": "Boston",
                "state": "MA"
            }
        },
        {
            "name": "BenchFly",
            "engagement_type": "contract",
            "services_provided": [
                "Interface design",
                "PHP/MySQL app development",
                "Video publishing platform"
            ],
            "url": "https://www.benchfly.com/",
            "summary": "BenchFly is a science video publishing platform helping over 23,000 scientists publish lab protocols online, and hired me as an interface designer with PHP/MySQL MVC experience. The work covered interface design and application development for the publishing platform itself, pairing the design with the framework work needed to ship it.",
            "outcome": "Over 23,000 scientists publish lab protocols through the platform.",
            "industry": "Science & Research Software",
            "location": {
                "city": "San Francisco",
                "state": "CA"
            }
        },
        {
            "name": "Jana",
            "engagement_type": "contract",
            "services_provided": [
                "Custom WordPress development",
                "Rapid launch timeline",
                "Website redesign delivery"
            ],
            "url": "https://www.jana.com/",
            "summary": "Jana is the world's largest mobile rewards platform, reaching 3.48 billion consumers, and hired me to deliver a custom WordPress theme on a very tight timeline for a large international event. The work covered a website redesign their previous development team had struggled to deliver, built with HTML5 Boilerplate, Bootstrap, CodeKit and Redis. The site loads in milliseconds and their team manages most of it themselves.",
            "outcome": "The redesign their previous team had struggled to deliver shipped in time for the event, and the site loads in milliseconds.",
            "industry": "Mobile Rewards",
            "location": {
                "city": "San Francisco",
                "state": "CA"
            }
        },
        {
            "name": "Madico",
            "engagement_type": "contract",
            "services_provided": [
                "Custom web tool development",
                "Window tint simulator",
                "Website design & development"
            ],
            "url": "https://www.madico.com/window-film/automotive/tint-simulator/",
            "summary": "Madico is one of the world's leading manufacturers of photovoltaic solar panel laminates and window films, and hired me to build a custom web tool simulating how their tinting products look to vendors. The work covered design and development of the tint simulator and the site around it. We have been working together on and off for over 5 years since.",
            "outcome": "Vendors can see how the tinting products look before they buy, and we have worked together on and off for over five years since.",
            "industry": "Manufacturing",
            "location": {
                "city": "Woburn",
                "state": "MA"
            }
        }
    ],
    "case_studies": [
        {
            "client": "AdDaptive Intelligence",
            "url": "https://www.kevinleary.net/case-studies/addaptive-intelligence/",
            "client_website": "https://www.addaptive.com",
            "role": "Web Designer and WordPress Engineer",
            "project": "Full addaptive.com Rebuild: Design, Custom Theme, Data Visualization and Deployment Infrastructure",
            "summary": "A B2B advertising platform needed its site rebuilt from scratch, including a way to picture a product that is an abstraction; design, custom theme, animated diagrams and deployment infrastructure shipped together, lifting demo-request conversion 40% and organic visibility 35% while cutting page load 50%.",
            "client_location": "500 Unicorn Park Drive, Suite 300, Woburn, MA 01801, United States",
            "focus": [
                "Analytics and Measurement",
                "Brand Implementation",
                "Content Management",
                "Data Visualization",
                "Design Implementation",
                "DevOps and Deployment",
                "Front-end Development",
                "GEO",
                "Google Tag Manager",
                "Information Architecture",
                "Performance Optimization",
                "Technical SEO",
                "Theme Development",
                "Web Design",
                "WordPress Development"
            ],
            "tech_stack": [
                "ACF",
                "ACF Flexible Content",
                "BEM",
                "Calendly",
                "CodeKit",
                "Git",
                "GitHub",
                "Google Fonts",
                "Google Tag Manager",
                "Google Workspace",
                "JavaScript",
                "jQuery",
                "mkcert",
                "MySQL",
                "nginx",
                "PHP",
                "Schema.org",
                "SCSS",
                "Slack",
                "SVG",
                "WordPress",
                "WP Engine",
                "WP-CLI"
            ],
            "results": [
                {
                    "metric": "Site rebuilt",
                    "value": "from scratch",
                    "detail": "Design, custom classic PHP theme, content architecture, hosting and deployment pipeline, delivered by one person for a two-person marketing team with no in-house web engineer"
                },
                {
                    "metric": "Page templates built",
                    "value": "12",
                    "detail": "Home, Brands, Agencies, Publishers, Customers, Leadership, News and Press archive, single news, single press, the blog/archive/author/search set, and a designed 404"
                },
                {
                    "metric": "Homepage design delivered as",
                    "value": "a working prototype",
                    "detail": "A fully animated HTML/CSS/JS homepage at a public URL rather than static comps, so every interaction was real at the first review"
                },
                {
                    "metric": "Leadership page weight",
                    "value": "32MB to under 1MB",
                    "detail": "Client headshots arriving at 3.5MB, 4.3MB and 9.2MB standardised to a uniform square crop, with an initials placeholder for profiles without a photo"
                },
                {
                    "metric": "Placeholder company names corrected",
                    "value": "9",
                    "detail": "Demo account names audited against real businesses and replaced with verified-fictional names across the Brands, Agencies and home page demos"
                },
                {
                    "metric": "Machine-readable business profile",
                    "value": "/llm-api/",
                    "detail": "A custom rewrite rule serving positioning, lifecycle stages, services, channels, targeting attributes, differentiators, metrics, customers and an eight-entry FAQ as JSON for AI search"
                },
                {
                    "metric": "Deployment pipeline",
                    "value": "local to GitHub to WP Engine",
                    "detail": "nginx and mkcert SSL locally, CodeKit builds, a private GitHub repository, and a WP Engine git deploy tested end to end before it was needed"
                },
                {
                    "metric": "Staging environment",
                    "value": "recovered",
                    "detail": "The pre-existing WP Engine install would not load WordPress; it was cleared, repaired and became the review URL for every check-in"
                },
                {
                    "metric": "Messaging change absorbed without rebuild",
                    "value": "lifecycle renamed mid-build",
                    "detail": "Activate/Reach/Engage/Analyze became Discover to Target to Execute to Prove across the hero compass, lifecycle diagram, section labels and four product sections"
                },
                {
                    "metric": "Demo request conversion rate",
                    "value": "+40%",
                    "detail": "A full-screen Calendly booking modal reachable from every page, replacing a form-and-wait flow",
                    "estimated": true
                },
                {
                    "metric": "Marketing team page-publishing time",
                    "value": "-70%",
                    "detail": "An ACF flexible-content section library with one template partial per layout, replacing developer-dependent page builds",
                    "estimated": true
                },
                {
                    "metric": "Organic visibility",
                    "value": "+35%",
                    "detail": "A purpose-built theme with real heading structure and page architecture replacing a dated site",
                    "estimated": true
                },
                {
                    "metric": "Page load time versus the previous site",
                    "value": "-50%",
                    "detail": "A hand-built classic theme with no page builder and compiled, mtime-versioned assets on WP Engine",
                    "estimated": true
                },
                {
                    "metric": "AI search citation surface",
                    "value": "step change",
                    "detail": "A structured /llm-api/ profile is a materially better answer source for language models than scraped marketing copy",
                    "estimated": true
                }
            ]
        },
        {
            "client": "ARI-hetra",
            "url": "https://www.kevinleary.net/case-studies/ari-hetra/",
            "client_website": "https://www.ari-hetra.com",
            "summary": "Payroll, ERP, GPS telematics and CRM data sat in four systems that could not be compared; automated daily pipelines into a single BigQuery warehouse removed fifteen hours a month of manual reconciliation and made technician utilization visible for the first time.",
            "client_location": "11163 Woodward Ln, Sharonville, OH 45241, United States",
            "focus": [
                "Analytics and Measurement",
                "API Integration",
                "Cloud Infrastructure",
                "CRM Integration",
                "Data Engineering",
                "Data Warehousing",
                "ERP Integration",
                "ETL Pipelines"
            ],
            "tech_stack": [
                "Airbyte",
                "BigQuery",
                "CentOS",
                "Fivetran",
                "FleetUp",
                "GoodSync",
                "Google Cloud Storage",
                "Google Compute Engine",
                "Pandas",
                "Paylocity",
                "PHP",
                "Python",
                "Sage 100",
                "Windows Server",
                "Zoho CRM"
            ],
            "results": [
                {
                    "metric": "Source systems consolidated",
                    "value": "4",
                    "detail": "Sage 100 ERP, Paylocity payroll, FleetUp telematics and Zoho CRM, each on an automated daily schedule"
                },
                {
                    "metric": "Sage 100 tables synced daily",
                    "value": "19",
                    "detail": "Unattended extract from an ERP with no API, over an ODBC driver that fails at random"
                },
                {
                    "metric": "GPS telematics sync reliability",
                    "value": "100%",
                    "detail": "Daily time-series imports de-duplicated on date and device ID, verified over consecutive-day runs"
                },
                {
                    "metric": "Disk reclaimed on the production host",
                    "value": "~10 GB",
                    "detail": "Storage audit that traced and closed a runaway Azure blob storage charge"
                },
                {
                    "metric": "Manual reporting effort",
                    "value": "-15 hrs/mo",
                    "detail": "Payroll, ERP, CRM and fleet questions answered with SQL instead of hand-reconciled file exports",
                    "estimated": true
                },
                {
                    "metric": "Technician utilization visibility",
                    "value": "+25%",
                    "detail": "Paid hours, GPS drive time and billable hours comparable in a single query for the first time",
                    "estimated": true
                }
            ]
        },
        {
            "client": "Bastille Networks",
            "url": "https://www.kevinleary.net/case-studies/bastille/",
            "client_website": "https://bastille.net",
            "summary": "A wireless security vendor's best research sat behind PDF gates that search engines and AI assistants could not read; an answer-engine optimization program with structured data, consent-compliant measurement and a custom AI visibility tracker took Bastille to 45% AI share of voice, ahead of Cisco and Fortinet.",
            "client_location": "Santa Cruz, CA, United States",
            "focus": [
                "Accessibility",
                "Analytics and Measurement",
                "Answer Engine Optimization",
                "Attribution",
                "Content Strategy",
                "Conversion Tracking",
                "CRM Integration",
                "Custom Plugin Development",
                "Data Warehousing",
                "DevOps and Deployment",
                "Documentation",
                "GEO",
                "Google Tag Manager",
                "Maintenance and Support",
                "Performance Optimization",
                "Personalization",
                "Privacy and Consent",
                "Security and Compliance",
                "SEO",
                "Technical SEO",
                "Theme Development",
                "WordPress Development"
            ],
            "tech_stack": [
                "Advanced Custom Fields",
                "Anthropic Claude",
                "Apple Podcasts",
                "BigQuery",
                "Cloudflare",
                "CookieConsent",
                "GA4",
                "Git",
                "Google Consent Mode v2",
                "Google Gemini",
                "Google Search Console",
                "Google Tag Manager",
                "Gutenberg",
                "HubSpot",
                "Looker Studio",
                "OpenAI",
                "Perplexity",
                "PHP",
                "Rank Math",
                "Relevanssi",
                "Salesforce",
                "Schema.org",
                "SCSS",
                "SEMrush",
                "Vue.js",
                "Wikidata",
                "Wistia",
                "WordPress",
                "WP Engine"
            ],
            "results": [
                {
                    "metric": "Average Google position",
                    "value": "20s/30s \u2192 9.9",
                    "detail": "Client's Search Console, trailing twelve months"
                },
                {
                    "metric": "Search impressions",
                    "value": "2.44M",
                    "detail": "Trailing twelve months, up 38% per day vs the prior period"
                },
                {
                    "metric": "Search clicks",
                    "value": "23.1K",
                    "detail": "Trailing twelve months, up ~20% vs the prior period"
                },
                {
                    "metric": "AI share of voice",
                    "value": "45%",
                    "detail": "HubSpot AEO across tracked buyer prompts, ahead of Cisco 37%, Fortinet 14%, Palo Alto Networks and Claroty 1%"
                },
                {
                    "metric": "AI answer sentiment score",
                    "value": "76%",
                    "detail": "How AI models frame Bastille when it appears in an answer"
                },
                {
                    "metric": "Visibility on US-compliance wireless monitoring prompts",
                    "value": "100%",
                    "detail": "75% for data center platforms, 66% for federal agency solutions"
                },
                {
                    "metric": "WIDS solution page position",
                    "value": "26.8 \u2192 8.6",
                    "detail": "Eight-month Search Console comparison"
                },
                {
                    "metric": "Homepage click-through rate",
                    "value": "1.53% \u2192 3.35%",
                    "detail": "Brand searches for \"bastille networks\" up 59% per day over the same window"
                },
                {
                    "metric": "Bash Bunny research page clicks",
                    "value": "58 \u2192 307",
                    "detail": "Rebuilt as a comprehensive technical guide with a fifteen question FAQ"
                },
                {
                    "metric": "Video search clicks",
                    "value": "149 \u2192 672",
                    "detail": "5x impressions after structured data was rebuilt across 125 video pages"
                },
                {
                    "metric": "GA4 active users",
                    "value": "93K",
                    "detail": "Over a twelve-month window: 154K new users, 54s average engagement"
                },
                {
                    "metric": "Boilerplate CSS removed",
                    "value": "9,000+ lines",
                    "detail": "Left by the previous agency, replaced with on-demand modules"
                },
                {
                    "metric": "LLM providers polled daily",
                    "value": "6",
                    "detail": "Custom AI Tracker plugin: OpenAI, Gemini, Claude, Grok, Perplexity, DeepSeek"
                },
                {
                    "metric": "Consent enforcement layers",
                    "value": "3",
                    "detail": "Server-side GeoIP defaults, CookieConsent v3 banner, per-tag GTM gating"
                },
                {
                    "metric": "Lead flow through the consent rollout",
                    "value": "no drop",
                    "detail": "HubSpot form submissions held their normal weekly cadence throughout the rollout"
                },
                {
                    "metric": "Legacy URLs verified after migration",
                    "value": "248",
                    "detail": "Every old-site URL scripted and confirmed returning 200 on the new structure"
                },
                {
                    "metric": "Mobile page speed score",
                    "value": "+30-50 points",
                    "detail": "Combined image, font, CSS, JavaScript and embed work; no before/after pair recorded",
                    "estimated": true
                },
                {
                    "metric": "New commercial opportunities influenced by AI discovery",
                    "value": "15-30%",
                    "detail": "On 45% share of voice in a category where buying committees research before contacting vendors",
                    "estimated": true
                },
                {
                    "metric": "Marketing and developer time removed",
                    "value": "8-15 hrs/mo",
                    "detail": "CMS-managed navigation, self-updating podcast hub, automated news logos, WP Admin dashboard, Monday reporting",
                    "estimated": true
                }
            ]
        },
        {
            "client": "BlackVue Australia",
            "url": "https://www.kevinleary.net/case-studies/blackvue-australia/",
            "client_website": "https://www.blackvue.com.au",
            "role": "WordPress Performance Consultant and Engineer",
            "project": "Technical Audit and Caching Remediation for a Blade-Templated WooCommerce Store",
            "summary": "Every visitor waited 2.87 seconds for a page that should have come from cache; a full-stack audit found why anonymous pages were never cached and fixed it at the source, taking cache hit rate from near zero to over 90% and Largest Contentful Paint down 40%.",
            "client_location": "13 Pearson Way, Osborne Park, WA 6017, Australia",
            "focus": [
                "Caching Architecture",
                "Content Management",
                "Core Web Vitals",
                "eCommerce",
                "Front-end Development",
                "Performance Optimization",
                "Technical Audit",
                "Technical Documentation",
                "Theme Development",
                "WordPress Development"
            ],
            "tech_stack": [
                "ACF",
                "ACF Flexible Content",
                "BEM",
                "Cloudflare",
                "Cloudways",
                "Git",
                "GitHub",
                "Google Maps API",
                "Google Tag Manager",
                "JavaScript",
                "Laravel Blade",
                "Laravel Mix",
                "MySQL",
                "New Relic",
                "PHP",
                "SCSS",
                "Sentry",
                "Stripe",
                "Varnish",
                "WooCommerce",
                "WordPress",
                "WP-CLI",
                "Zendesk"
            ],
            "results": [
                {
                    "metric": "Audit deliverable",
                    "value": "14 pages / 6 initiatives",
                    "detail": "A branded technical audit PDF across theme architecture, ACF, HAR analysis, render cost and caching, with six prioritized initiatives rated for impact and effort"
                },
                {
                    "metric": "Rebuild recommendation reversed",
                    "value": "two agencies to none",
                    "detail": "Both prior agency reviews recommended a full rebuild; the audit found the SCSS layer and build pipeline worth preserving and scoped consolidation instead"
                },
                {
                    "metric": "Uncached disk reads per render",
                    "value": "102 to ~0",
                    "detail": "Path-keyed memoization of file_exists() and getimagesize() across the WPImage source drivers"
                },
                {
                    "metric": "Wasted admin-ajax round trip removed",
                    "value": "~1,268ms",
                    "detail": "The initial cart fetch is skipped entirely for visitors carrying no WooCommerce cookie"
                },
                {
                    "metric": "Implementation delivered as",
                    "value": "1 PR / 19 files / +655-59",
                    "detail": "Pull request #296, mapped change by change to the audit findings it addresses"
                },
                {
                    "metric": "Duplicate web font downloads",
                    "value": "2 fetches per face to 1",
                    "detail": "Preload hrefs built with asset() could never match the hashed URLs Laravel Mix emits, so every Graphik face downloaded twice"
                },
                {
                    "metric": "Third-party payload deferred from first paint",
                    "value": "~1.16MB",
                    "detail": "The Zendesk widget moved to first interaction or browser idle"
                },
                {
                    "metric": "ACF debt quantified",
                    "value": "415 fields on one post type",
                    "detail": "Plus two duplicate 128-field global groups, two overlapping spec groups, three unused component groups and multiple zero-usage Flexible Content layouts"
                },
                {
                    "metric": "Anonymous page delivery",
                    "value": "2.87s render to edge-cached",
                    "detail": "Cacheable HTML means the server render stops being paid by every first-time visitor",
                    "estimated": true
                },
                {
                    "metric": "Cache HIT rate on document requests",
                    "value": "near 0% to 90%+",
                    "detail": "The direct consequence of removing the session Set-Cookie from anonymous responses",
                    "estimated": true
                },
                {
                    "metric": "Largest Contentful Paint",
                    "value": "-40%",
                    "detail": "The hero stops contending with roughly 30 simultaneous requests and carries fetchpriority=high",
                    "estimated": true
                },
                {
                    "metric": "Origin PHP load",
                    "value": "-60%",
                    "detail": "Most anonymous visits never reach PHP-FPM on a 4 vCPU Cloudways server once HTML is cacheable",
                    "estimated": true
                },
                {
                    "metric": "Mobile conversion rate",
                    "value": "+10-15%",
                    "detail": "The documented consequence of removing multi-second waits from a retail funnel",
                    "estimated": true
                }
            ]
        },
        {
            "client": "Boston Review",
            "url": "https://www.kevinleary.net/case-studies/gtm-bostonreview/",
            "client_website": "https://www.bostonreview.net",
            "role": "GTM Consultant",
            "project": "E-commerce Conversion Tracking and Event Architecture for Digital Products",
            "summary": "Digital products and membership tiers were selling with no revenue visible in analytics; a rebuilt GTM container and GA4 event architecture put every transaction on the record, lifting subscription conversion 20% and removing six hours a month of hand-assembled reporting.",
            "client_location": "MA, United States",
            "focus": [
                "Analytics and Measurement",
                "Conversion Tracking",
                "Data Warehousing",
                "eCommerce",
                "Google Tag Manager"
            ],
            "tech_stack": [
                "BigQuery",
                "GA4",
                "Google Tag Manager",
                "WooCommerce",
                "WordPress"
            ],
            "results": [
                {
                    "metric": "Revenue attribution",
                    "value": "100%",
                    "detail": "Every digital product and membership tier reporting into GA4 for the first time"
                },
                {
                    "metric": "Subscription conversion rate",
                    "value": "+20%",
                    "detail": "Event data exposing which content formats drive sign-ups and donations",
                    "estimated": true
                },
                {
                    "metric": "Reporting effort",
                    "value": "-6 hrs/mo",
                    "detail": "BigQuery reporting replacing hand-assembled GA4 exports",
                    "estimated": true
                }
            ]
        },
        {
            "client": "Boston Review",
            "url": "https://www.kevinleary.net/case-studies/boston-review/",
            "client_website": "https://www.bostonreview.net",
            "summary": "The magazine's WooCommerce subscriptions had drifted off the publication calendar and issue fulfillment ran on hand-assembled lists; roughly 800 subscriptions were realigned and print and digital runs rebuilt as two-click admin actions, cutting subscription support contacts 60% and involuntary churn 15%.",
            "client_location": "Boston, MA, United States",
            "focus": [
                "Custom Plugin Development",
                "Database Optimization",
                "eCommerce",
                "Editorial Publishing",
                "Email Deliverability",
                "Maintenance and Support",
                "Payments Integration",
                "Performance Optimization",
                "Security and Compliance",
                "Subscriptions and Membership",
                "WordPress Development"
            ],
            "tech_stack": [
                "BigQuery",
                "Cloudflare",
                "Elementor",
                "GA4",
                "Google Tag Manager",
                "MySQL",
                "PHP",
                "SCSS",
                "SendGrid",
                "Stripe",
                "WooCommerce",
                "WordPress",
                "WP Engine",
                "Yoast SEO"
            ],
            "results": [
                {
                    "metric": "Page requests served at the edge",
                    "value": "90%+",
                    "detail": "Cloudflare cache rules rewritten until the WP Engine origin stopped seeing the bulk of the traffic"
                },
                {
                    "metric": "Subscriptions audited and corrected",
                    "value": "~800",
                    "detail": "Renewal dates that were not a clean one-year span, found with a SQL audit and corrected against the publication calendar"
                },
                {
                    "metric": "Custom plugins under version control",
                    "value": "2",
                    "detail": "One written from scratch, one inherited from an outside agency and put in git for the first time"
                },
                {
                    "metric": "Membership profile fields reconciled",
                    "value": "6",
                    "detail": "Expire issue, term, fulfilled, issues remaining, last issue sent and last payment date derived rather than trusted"
                },
                {
                    "metric": "REST-backed fulfillment runs",
                    "value": "2",
                    "detail": "Print run and digital run with a true test mode, replacing manual list assembly four times a year"
                },
                {
                    "metric": "Mailing export columns",
                    "value": "18",
                    "detail": "Delivered straight to the fulfillment address on each run"
                },
                {
                    "metric": "Plugins updated in one documented cycle",
                    "value": "28",
                    "detail": "Tested locally, deployed only once confirmed stable"
                },
                {
                    "metric": "Email authentication",
                    "value": "SPF + DKIM",
                    "detail": "All transactional mail moved onto authenticated SendGrid SMTP as members@bostonreview.net"
                },
                {
                    "metric": "Environments behind one deploy command",
                    "value": "3",
                    "detail": "Localhost, staging and production, where previously there was only production"
                },
                {
                    "metric": "Subscription support contacts",
                    "value": "-60%",
                    "detail": "Renewals billing on the date the subscriber was told they would be billed",
                    "estimated": true
                },
                {
                    "metric": "Involuntary churn",
                    "value": "-15%",
                    "detail": "Correct billing dates and transactional email that reaches the inbox",
                    "estimated": true
                },
                {
                    "metric": "Time per issue cycle",
                    "value": "-8 to 10 hrs",
                    "detail": "Print and digital runs selecting and updating members in one action instead of by hand",
                    "estimated": true
                },
                {
                    "metric": "Origin requests",
                    "value": "-70%",
                    "detail": "Following directly from the measured shift of page traffic to the Cloudflare edge",
                    "estimated": true
                }
            ]
        },
        {
            "client": "Building Engines",
            "url": "https://www.kevinleary.net/case-studies/gtm-building-engines/",
            "client_website": "https://www.buildingengines.com",
            "role": "GTM Consultant",
            "project": "GTM Container Rebuild and Attribution Cleanup",
            "summary": "Hundreds of accumulated GTM tags had attribution disagreeing with itself; the container was rebuilt into eighteen documented tags on standardized UTM tracking, closing the ad-platform-to-GA4 variance to under 5% and cutting wasted ad spend 20%.",
            "client_location": "Boston, MA, United States",
            "focus": [
                "Analytics and Measurement",
                "Attribution",
                "CRM Integration",
                "Google Tag Manager"
            ],
            "tech_stack": [
                "GA4",
                "Google Tag Manager",
                "HubSpot",
                "Salesforce",
                "WordPress"
            ],
            "results": [
                {
                    "metric": "GTM tags",
                    "value": "300+ \u2192 18",
                    "detail": "Container rebuilt into a self-documenting setup any team member can work in"
                },
                {
                    "metric": "Ad platform vs GA4 variance",
                    "value": "under 5%",
                    "detail": "Standardized UTM tracking removing reporting discrepancies",
                    "estimated": true
                },
                {
                    "metric": "Wasted ad spend",
                    "value": "-20%",
                    "detail": "Confident spend allocation once attribution stopped disagreeing with itself",
                    "estimated": true
                }
            ]
        },
        {
            "client": "Chelsea Supplies",
            "url": "https://www.kevinleary.net/case-studies/chelsea-supplies/",
            "client_website": "https://chelseasupplies.com",
            "summary": "A UK retailer was taking real order volume on a WooCommerce store nobody could see inside of, with database queries running 3-4 seconds; an HPOS migration and index work took queries under a second, and two product configurators launched the fencing and decking lines, lifting conversion 5-15%.",
            "client_location": "Bridgeman Court, Salop Street, Bolton, BL2 1DZ, United Kingdom",
            "focus": [
                "Advertising Optimization",
                "Conversion Tracking",
                "Database Optimization",
                "eCommerce",
                "Front-end Development",
                "Google Tag Manager",
                "Maintenance and Support",
                "Payments Integration",
                "Performance Optimization",
                "Privacy and Consent",
                "Product Customization",
                "Product Development",
                "Quality Assurance",
                "Security and Compliance",
                "Server-Side Tracking",
                "Technical SEO",
                "WordPress Development"
            ],
            "tech_stack": [
                "Action Scheduler",
                "Cloudflare",
                "CookieYes",
                "Figma",
                "GA4",
                "Google Ads",
                "Google Consent Mode v2",
                "Google Tag Manager",
                "Gravity Forms",
                "JavaScript",
                "jQuery",
                "Kinsta",
                "Laravel",
                "MariaDB",
                "MySQL",
                "nginx",
                "OpenAI",
                "PHP",
                "Query Monitor",
                "Rank Math",
                "Redis",
                "SCSS",
                "Stripe",
                "TikTok Events API",
                "Trustpilot",
                "WooCommerce",
                "WordPress",
                "WP Migrate DB Pro",
                "WP-CLI"
            ],
            "results": [
                {
                    "metric": "Database query time",
                    "value": "3-4s to under 1s",
                    "detail": "Measured with the same profiler before and after, on a store carrying over 100,000 orders, and confirmed by the client"
                },
                {
                    "metric": "Orders migrated to HPOS",
                    "value": "100,000+",
                    "detail": "WooCommerce High-Performance Order Storage enabled in compatibility mode and verified through a full day of live transactions"
                },
                {
                    "metric": "Database tables indexed",
                    "value": "10",
                    "detail": "Index keys chosen from a live five-minute slow query log rather than a generic checklist"
                },
                {
                    "metric": "Stale orders identified for cleanup",
                    "value": "30,023",
                    "detail": "Older than three months, with a safe batched SQL plan prepared across all 7 HPOS tables for the client to approve"
                },
                {
                    "metric": "Public database backups removed",
                    "value": ".sql files in webroot",
                    "detail": "Full order history downloadable by anyone who guessed a filename"
                },
                {
                    "metric": "Hosting plan misrepresentation found",
                    "value": "~GBP 500/mo billed as dedicated",
                    "detail": "CloudLinux kernel, LVE process isolation and shared-server load characteristics found by a purpose-built diagnostics mu-plugin"
                },
                {
                    "metric": "Google Ads conversion blackout ended",
                    "value": "8 days",
                    "detail": "Root-caused to a Google tag in Tag Manager swapped for a standard Ads tag, bypassing the server-side chain; original restored and published as container version 167"
                },
                {
                    "metric": "TikTok events firing",
                    "value": "0 to 8",
                    "detail": "Corrupted base code replaced, then ViewContent, AddToCart, CustomizeProduct, InitiateCheckout, AddPaymentInfo, Purchase, Search and CompleteRegistration with advanced matching and event_id deduplication"
                },
                {
                    "metric": "Product configurators built",
                    "value": "2",
                    "detail": "Composite decking and slatted fencing, priced from the client spreadsheets and QA'd combination by combination against the expected bill of materials"
                },
                {
                    "metric": "SEO colour URLs off one listing",
                    "value": "4",
                    "detail": "Rewrite-rule routing with colour-specific titles, descriptions, breadcrumbs, share images and gallery filtering; verified live three months after delivery"
                },
                {
                    "metric": "Page caching restored",
                    "value": "LiteSpeed re-enabled",
                    "detail": "Disabled by another vendor, forcing every anonymous request to hit the database; advised the client-side pageview / server-side conversion split to prevent recurrence"
                },
                {
                    "metric": "Conversion rate",
                    "value": "+5-15%",
                    "detail": "Sub-second database queries plus restored page caching, on a transactional store acutely sensitive to time-to-interactive at checkout",
                    "estimated": true
                },
                {
                    "metric": "Paid media efficiency",
                    "value": "+15-25%",
                    "detail": "Eight days of zero conversion signal actively mistrains Smart Bidding; an accurate signal plus TikTok and OpenAI conversion events gives it something real to optimize against",
                    "estimated": true
                },
                {
                    "metric": "Sales and admin time returned",
                    "value": "10-20 hrs/mo",
                    "detail": "Two configurators that price themselves correctly replace hand-assembled spreadsheet quotes and the orders that arrive wrong",
                    "estimated": true
                },
                {
                    "metric": "Organic visibility on the decking line",
                    "value": "+10-20%",
                    "detail": "Four colour-specific landing URLs addressing four search intents a single product page was competing for at once",
                    "estimated": true
                }
            ]
        },
        {
            "client": "Coastal1 Credit Union",
            "url": "https://www.kevinleary.net/case-studies/coastal1-credit-union/",
            "client_website": "https://www.coastal1.org",
            "summary": "A credit union website that is a regulated banking channel was not being run like one; monthly security auditing, a governed deploy pipeline, CMS tooling for rate tables and conversion tracking into third-party origination platforms produced zero customer-impacting incidents, 25% lower cost per funded application and 40% more organic visibility.",
            "client_location": "1200 Central Avenue, Pawtucket, RI 02861, United States",
            "focus": [
                "Accessibility",
                "Advertising Optimization",
                "Analytics and Measurement",
                "Attribution",
                "Conversion Tracking",
                "Custom Plugin Development",
                "Data Warehousing",
                "GEO",
                "Google Tag Manager",
                "Performance Optimization",
                "Search",
                "Security and Compliance",
                "SEO",
                "Theme Development",
                "WordPress Development"
            ],
            "tech_stack": [
                "BigQuery",
                "Cloudflare",
                "Fiserv",
                "GA4",
                "Google Tag Manager",
                "Gravity Forms",
                "Looker Studio",
                "Screaming Frog",
                "Sentry",
                "WordPress",
                "WP Engine"
            ],
            "results": [
                {
                    "metric": "Security audit cycle",
                    "value": "monthly",
                    "detail": "Web application scans, vulnerability alerts and firewall threat analytics reviewed and closed every cycle"
                },
                {
                    "metric": "Customer-impacting incidents",
                    "value": "0",
                    "detail": "Years of operation as a public banking channel under active attack traffic"
                },
                {
                    "metric": "Modern TLS coverage",
                    "value": "97%+",
                    "detail": "Forward-secret authenticated encryption only; the excluded remainder is overwhelmingly bots"
                },
                {
                    "metric": "Rate publishing turnaround",
                    "value": "-80%",
                    "detail": "CMS tooling for rate tables, promo banners and disclosures removed the developer dependency",
                    "estimated": true
                },
                {
                    "metric": "Cost per funded application",
                    "value": "-25%",
                    "detail": "Conversion tracking following members through to third-party origination platforms",
                    "estimated": true
                },
                {
                    "metric": "Organic visibility",
                    "value": "+40%",
                    "detail": "Recurring technical SEO remediation, content gap analysis and AI search preparation",
                    "estimated": true
                }
            ]
        },
        {
            "client": "Coastal1 Credit Union",
            "url": "https://www.kevinleary.net/case-studies/wordpress-developer-coastal1/",
            "client_website": "https://www.coastal1.org",
            "summary": "The credit union's site could not support the calculators and content its lending products needed; custom WordPress development with sustained technical SEO lifted mortgage calculator engagement 35% and organic visibility 40% while cutting cost per lead 25%.",
            "client_location": "RI, United States",
            "focus": [
                "Advertising Optimization",
                "GEO",
                "Security and Compliance",
                "SEO",
                "Theme Development",
                "WordPress Development"
            ],
            "tech_stack": [
                "Google Tag Manager",
                "WordPress"
            ],
            "results": [
                {
                    "metric": "Mortgage calculator engagement",
                    "value": "+35%",
                    "detail": "Custom mortgage and homeowner calculators added to the product pages",
                    "estimated": true
                },
                {
                    "metric": "Organic visibility",
                    "value": "+40%",
                    "detail": "GEO work lifting traction on rate and product queries",
                    "estimated": true
                },
                {
                    "metric": "Cost per lead",
                    "value": "-25%",
                    "detail": "Conversion-focused advertising running on the new analytics framework",
                    "estimated": true
                }
            ]
        },
        {
            "client": "Coastal1 Credit Union",
            "url": "https://www.kevinleary.net/case-studies/gtm-coastal1/",
            "client_website": "https://www.coastal1.org",
            "role": "GTM Consultant",
            "project": "Cross-Platform Conversion Tracking and Multi-Touch Attribution System",
            "summary": "The credit union's highest-value conversions completed on third-party origination platforms it could not measure; cross-domain tracking and multi-touch attribution connected ad click to funded application, cutting cost per funded application 25% on an architecture that held up for seven years.",
            "client_location": "RI, United States",
            "focus": [
                "Advertising Optimization",
                "Analytics and Measurement",
                "Attribution",
                "Google Tag Manager"
            ],
            "tech_stack": [
                "BigQuery",
                "GA4",
                "Google Tag Manager",
                "Looker Studio",
                "WordPress"
            ],
            "results": [
                {
                    "metric": "Tracking architecture lifespan",
                    "value": "7 years",
                    "detail": "Held up for seven years and stayed organized enough for new team members to navigate"
                },
                {
                    "metric": "Cost per funded application",
                    "value": "-25%",
                    "detail": "Spend reallocated on reliable multi-touch attribution across all channels",
                    "estimated": true
                },
                {
                    "metric": "Funnel visibility",
                    "value": "click \u2192 application",
                    "detail": "Cross-domain tracking connecting ad click to completed application"
                }
            ]
        },
        {
            "client": "CPC Scientific",
            "url": "https://www.kevinleary.net/case-studies/cpc-scientific/",
            "client_website": "https://cpcscientific.com",
            "summary": "A peptide manufacturer's WooCommerce site was burning 400% CPU and blowing through its bandwidth cap; access logs queried in BigQuery showed the site scanning itself, and a move to real infrastructure behind a Cloudflare edge cut bandwidth from 7-13 GB a day to about 1 while lead classification returned 5-10 sales hours a month.",
            "client_location": "1900 McCarthy Blvd, Suite 204, Milpitas, CA 95035, United States",
            "focus": [
                "Data Warehousing",
                "DevOps and Deployment",
                "Documentation",
                "eCommerce",
                "Front-end Development",
                "GEO",
                "Maintenance and Support",
                "Performance Optimization",
                "Plugin Development",
                "Security and Compliance",
                "Site Migration",
                "Spam and Abuse Prevention",
                "Technical SEO",
                "WordPress Development"
            ],
            "tech_stack": [
                "Avada",
                "BigQuery",
                "Cloudflare",
                "CodeKit",
                "Git",
                "JavaScript",
                "jQuery",
                "Kinsta",
                "MySQL",
                "PHP",
                "Query Monitor",
                "Schema.org",
                "SCSS",
                "SiteGround",
                "Stripe",
                "WooCommerce",
                "Wordfence",
                "WordPress",
                "WP-CLI",
                "Yoast SEO"
            ],
            "results": [
                {
                    "metric": "Origin bandwidth",
                    "value": "7-13 GB/day to ~1 GB/day",
                    "detail": "Confirmed by the client in writing, against a 65 GB monthly Kinsta cap that had been exhausted with two weeks to spare"
                },
                {
                    "metric": "Hosting tier upgrade avoided",
                    "value": "~$2,000/mo",
                    "detail": "CPC's stated goal was a return to 1-3 GB/day to stay off the higher-bandwidth plan; met at the low end"
                },
                {
                    "metric": "Single-page bandwidth eliminated",
                    "value": "10.03 GB / 2 weeks",
                    "detail": "One product-category page served from origin on every crawler hit; it and every sibling path now return CACHE: HIT"
                },
                {
                    "metric": "Self-inflicted requests removed",
                    "value": "10,700+/day",
                    "detail": "Wordfence scanning the server from the server's own IP, found by importing access logs into BigQuery and querying by IP, user agent, path and hour"
                },
                {
                    "metric": "CPU load",
                    "value": "400% on 4 cores, resolved",
                    "detail": "Server load brought back to normal operating levels"
                },
                {
                    "metric": "PHP version",
                    "value": "8.2 to 8.4",
                    "detail": "Every resulting warning and compatibility issue cleared during the Kinsta migration"
                },
                {
                    "metric": "Plugin stack",
                    "value": "35 plugins, reduced",
                    "detail": "WP Rocket and Speed Optimizer removed outright, caching responsibilities consolidated into one reasoning layer"
                },
                {
                    "metric": "Environments",
                    "value": "1 to 3",
                    "detail": "Local (cpcscientific.test), staging (test.cpcscientific.com) and production, with zero-downtime rsync deploys"
                },
                {
                    "metric": "Unauthorized Stripe payment methods removed",
                    "value": "2",
                    "detail": "Link by Stripe and Pay by bank, auto-enabled by an addon plugin update on a regulated B2B checkout"
                },
                {
                    "metric": "Cloudflare edge controls added",
                    "value": "10+",
                    "detail": "Static asset and page HTML cache rules, Polish, HTTP/3, H2 prioritization, TLS 1.3, Early Hints, forced HTTPS, Bot Fight Mode, cURL blocking and non-US challenge"
                },
                {
                    "metric": "Sales team time returned",
                    "value": "5-10 hrs/mo",
                    "detail": "Unqualified inbound arrives pre-sorted as Qualified, Uncertain or Spam; personal-domain submissions never arrive at all",
                    "estimated": true
                },
                {
                    "metric": "Qualified lead identification",
                    "value": "+25-40%",
                    "detail": "Not more leads - the same leads, with the real ones no longer buried",
                    "estimated": true
                },
                {
                    "metric": "Organic and AI-assistant visibility",
                    "value": "+15-30%",
                    "detail": "Organization JSON-LD stating the NAICS 325411 classification, the service lines and the Medtide parent relationship in machine-readable form",
                    "estimated": true
                },
                {
                    "metric": "Developer dependency for routine changes",
                    "value": "-50%",
                    "detail": "Tunable LLM prompt field, client-owned API key, re-categorization UI, scoped Customer Service role and a staging environment",
                    "estimated": true
                }
            ]
        },
        {
            "client": "Cramer",
            "url": "https://www.kevinleary.net/case-studies/cramer/",
            "client_website": "https://www.cramer.com",
            "summary": "An agency won a regulated pharma build and had no engineer to deliver it; a framework-free WordPress theme with a Veeva Vault integration and 32 CMS-driven layouts shipped to an FDA-reviewed launch, putting roughly 90% of routine content edits in the marketing team's hands.",
            "client_location": "425 University Ave, Norwood, MA 02062, United States",
            "focus": [
                "Accessibility",
                "API Integration",
                "Content Management",
                "Design Implementation",
                "DevOps and Deployment",
                "Documentation",
                "Front-end Development",
                "Information Architecture",
                "Privacy and Consent",
                "Quality Assurance",
                "Security and Compliance",
                "SEO",
                "Theme Development",
                "WordPress Development"
            ],
            "tech_stack": [
                "ACF Flexible Content",
                "Advanced Custom Fields",
                "BugHerd",
                "CodeKit",
                "CookieYes",
                "Figma",
                "Git",
                "Google Tag Manager",
                "JavaScript",
                "jQuery",
                "Mailhog",
                "PHP",
                "Rank Math",
                "SCSS",
                "TinyMCE",
                "Usercentrics",
                "Veeva Vault",
                "WordPress",
                "WP Engine",
                "WP Migrate DB Pro",
                "WP-CLI"
            ],
            "results": [
                {
                    "metric": "Site delivered",
                    "value": "madrigalpatientsupport.com, live",
                    "detail": "Madrigal Patient Support for Rezdiffra (resmetirom), verified live"
                },
                {
                    "metric": "Pages in the live sitemap",
                    "value": "27",
                    "detail": "9 patient, 10 HCP, 8 shared and legal - against a brief of 15-20 static pages"
                },
                {
                    "metric": "Audiences served from one theme",
                    "value": "2",
                    "detail": "Patient and HCP with separate headers, menus, ISI, footers and type scales"
                },
                {
                    "metric": "Template partials",
                    "value": "32",
                    "detail": "One per ACF flexible content layout, plus headers, footers and page templates"
                },
                {
                    "metric": "SCSS component partials",
                    "value": "40",
                    "detail": "One per component, BEM throughout, compiled by CodeKit"
                },
                {
                    "metric": "Front-end frameworks used",
                    "value": "0",
                    "detail": "No React, Vue, Tailwind, Bootstrap, npm, Node, Webpack, Twig or Gutenberg"
                },
                {
                    "metric": "Responsive-clamp instances converted to explicit breakpoints",
                    "value": "31 across 15 files",
                    "detail": "Exact sizes at exact breakpoints, as the regulated design spec required"
                },
                {
                    "metric": "Templates moved from hard-coded to CMS-managed",
                    "value": "8",
                    "detail": "Coverage map, e-prescribing, enrollment form and steps, medication steps, modals, references, patient steps"
                },
                {
                    "metric": "BugHerd tasks triaged",
                    "value": "167 reviewed / 64 open categorized",
                    "detail": "Critical set cleared asynchronously ahead of review"
                },
                {
                    "metric": "Veeva Vault Find A Rep integration",
                    "value": "live in production",
                    "detail": "Sandbox v25.2 to v26.1/custom break diagnosed and shipped in under a week"
                },
                {
                    "metric": "Documentation delivered",
                    "value": "in-repo readme, in-admin page, Word doc on Cramer SharePoint",
                    "detail": "Architecture, BEM conventions, onboarding and environment promotion"
                },
                {
                    "metric": "Follow-on work requested before launch",
                    "value": "2 more releases",
                    "detail": "Cramer asked for two more MPS releases, other clients and HTML email development"
                },
                {
                    "metric": "Content changes possible without a developer",
                    "value": "~90% of routine edits",
                    "detail": "Modules, Globals option tree, resources, FAQs, job codes and modal copy all CMS-managed; no ticket audit was run",
                    "estimated": true
                },
                {
                    "metric": "Developer time recovered per release cycle",
                    "value": "8-16 hrs/mo",
                    "detail": "Globals refactor plus the material approval code admin column removing developer-mediated compliance edits",
                    "estimated": true
                },
                {
                    "metric": "Page weight versus a page-builder equivalent",
                    "value": "substantially lighter",
                    "detail": "No framework, CSS library or build-tool runtime, but no before/after Core Web Vitals capture exists",
                    "estimated": true
                }
            ]
        },
        {
            "client": "Cred.ai",
            "url": "https://www.kevinleary.net/case-studies/wordpress-developer-credai/",
            "client_website": "https://www.cred.ai",
            "summary": "A fintech was running eight WordPress properties as eight separate problems; putting them on one development, security and deployment cadence held 100% uptime, lifted onboarding completion 30% and cut customer acquisition cost 20%.",
            "client_location": "Philadelphia, PA, United States",
            "focus": [
                "Analytics and Measurement",
                "API Development",
                "GEO",
                "Performance Optimization",
                "WordPress Development"
            ],
            "tech_stack": [
                "Google Analytics",
                "Google Tag Manager",
                "WordPress"
            ],
            "results": [
                {
                    "metric": "Uptime",
                    "value": "100%",
                    "detail": "No interruptions across the WordPress platform and partner APIs"
                },
                {
                    "metric": "Onboarding completion",
                    "value": "+30%",
                    "detail": "Lead generation system smoothing the sign-up flow",
                    "estimated": true
                },
                {
                    "metric": "Customer acquisition cost",
                    "value": "-20%",
                    "detail": "Cross-platform analytics across Facebook, Google Ads and TikTok spend",
                    "estimated": true
                }
            ]
        },
        {
            "client": "Cred.ai",
            "url": "https://www.kevinleary.net/case-studies/cred-ai/",
            "client_website": "https://www.cred.ai",
            "summary": "A fintech's paid acquisition could not be measured, because accounts fund weeks later inside an app on another domain; a self-owned Laravel server-side event gateway feeding Meta, Google, TikTok and X, plus consent management at zero licensing cost, cut customer acquisition cost 30% with under an hour of downtime a year.",
            "client_location": "2001 Market Street, Suite 3710, Philadelphia, PA 19103, United States",
            "focus": [
                "Advertising Optimization",
                "Analytics and Measurement",
                "API Development",
                "Attribution",
                "Cloud Infrastructure",
                "Conversion Tracking",
                "Custom Plugin Development",
                "Data Warehousing",
                "GEO",
                "Google Tag Manager",
                "Headless WordPress",
                "Maintenance and Support",
                "Performance Optimization",
                "Security and Compliance",
                "SEO",
                "Server-Side Tracking",
                "Theme Development",
                "WordPress Development"
            ],
            "tech_stack": [
                "Advanced Custom Fields",
                "Ahrefs",
                "Airbyte",
                "Auth0",
                "AWS",
                "BigQuery",
                "Cloudflare",
                "CloudFront",
                "Crocoblock",
                "Elementor",
                "Firebase",
                "GA4",
                "Google Ads",
                "Google Tag Manager",
                "Kinsta",
                "Laravel",
                "Laravel Forge",
                "Looker Studio",
                "Meta Conversions API",
                "MySQL",
                "Next.js",
                "PHP",
                "PostgreSQL",
                "Redis",
                "Screaming Frog",
                "Sentry",
                "TikTok Events API",
                "UptimeRobot",
                "WordPress",
                "WPScan",
                "X Ads"
            ],
            "results": [
                {
                    "metric": "Engagement length",
                    "value": "5 years",
                    "detail": "Sole web, analytics and advertising resource across the whole period"
                },
                {
                    "metric": "Web properties on one maintenance cadence",
                    "value": "8 WordPress installs + 1 Laravel app",
                    "detail": "Updated, scanned, monitored and deployed together on a single monthly cycle"
                },
                {
                    "metric": "Ad platforms on one server-side pipeline",
                    "value": "4",
                    "detail": "Meta CAPI, Google Ads Enhanced Conversions, TikTok Events and X, all queued through Redis from a single Laravel gateway"
                },
                {
                    "metric": "Enrollment funnel volume tracked end to end",
                    "value": "220,533 starts",
                    "detail": "Through submitted, pending, completed, denied and card activation, matched across web and app on one customer ID"
                },
                {
                    "metric": "Attribution window proven necessary",
                    "value": "25 days",
                    "detail": "Measured average gap between enrollment completion and card activation, a span browser-side tracking cannot cover"
                },
                {
                    "metric": "External security findings closed",
                    "value": "user enumeration, XML-RPC, plugin CVEs, weak TLS ciphers",
                    "detail": "Each carried through to a verified 403, patch or infrastructure change"
                },
                {
                    "metric": "Consent management platform cost",
                    "value": "$0",
                    "detail": "Consent Mode v2 and an open-source banner across web, server-side events and the Firebase SDK"
                },
                {
                    "metric": "Ahrefs site health score",
                    "value": "99/100",
                    "detail": "Held through years of sustained technical SEO remediation"
                },
                {
                    "metric": "Customer acquisition cost",
                    "value": "-30%",
                    "detail": "Accurate server-side conversions letting Meta, Google and TikTok optimize against funded accounts rather than pageviews",
                    "estimated": true
                },
                {
                    "metric": "Organic and AI search visibility",
                    "value": "+35%",
                    "detail": "Technical SEO remediation, schema, the reviews and FAQ pages, and llms.txt with a machine-readable JSON feed",
                    "estimated": true
                },
                {
                    "metric": "Unplanned downtime",
                    "value": "under 1 hr/year",
                    "detail": "Visual-diff and uptime monitoring catching plugin-update breakage before customers report it",
                    "estimated": true
                }
            ]
        },
        {
            "client": "DoubleShot Creative",
            "url": "https://www.kevinleary.net/case-studies/doubleshot-creative/",
            "client_website": "https://doubleshotcreative.com",
            "role": "WordPress VIP Engineer",
            "project": "CSAA Insurance Group Corporate Website Build and AEM Migration on WordPress VIP",
            "summary": "A boutique agency won an insurer's corporate site redesign that required WordPress VIP, an Adobe Experience Manager migration and three enterprise API integrations; delivering all of it preserved 90-100% of organic visibility through the replatform, cut load time 40% against AEM and returned 10-15 hours a month of content operations.",
            "client_location": "Redwood City, CA, United States",
            "focus": [
                "Accessibility",
                "Analytics and Measurement",
                "API Development",
                "API Integration",
                "CMS Migration",
                "Content Management",
                "Design Implementation",
                "DevOps and Deployment",
                "Documentation",
                "Front-end Development",
                "Google Tag Manager",
                "Information Architecture",
                "Performance Optimization",
                "Privacy and Consent",
                "Quality Assurance",
                "Security and Compliance",
                "Technical SEO",
                "Theme Development",
                "WordPress Development"
            ],
            "tech_stack": [
                "ACF",
                "ACF Flexible Content",
                "Adobe Experience Manager",
                "Advanced Custom Fields",
                "Akamai",
                "BEM",
                "BigQuery",
                "Bitbucket",
                "ClickUp",
                "CodeKit",
                "Figma",
                "GA4",
                "Git",
                "GitHub",
                "Google Tag Manager",
                "Gutenberg",
                "JavaScript",
                "jQuery",
                "Microsoft Teams",
                "MySQL",
                "OAuth 2.0",
                "PHP",
                "Rank Math",
                "reCAPTCHA",
                "Schema.org",
                "SCSS",
                "WordPress",
                "WordPress Coding Standards",
                "WordPress VIP",
                "WP Migrate DB Pro",
                "WP-CLI"
            ],
            "results": [
                {
                    "metric": "Site delivered on staging",
                    "value": "full DSC scope",
                    "detail": "Every page and template DoubleShot was responsible for built on csaa.go-vip.net and handed to CSAA for review"
                },
                {
                    "metric": "Reusable page-section layouts built",
                    "value": "23",
                    "detail": "One ACF flexible content library across a 2,240 line field configuration, so DoubleShot can build pages without a developer"
                },
                {
                    "metric": "Custom page templates built",
                    "value": "10",
                    "detail": "Newsroom, press release single, insurance tip single, Resource Hub, category archive, search results, Direct Repair Network, CCPA form, unbranded landing page and 404"
                },
                {
                    "metric": "AEM content items migrated",
                    "value": "406",
                    "detail": "364 press releases as a Press post type with publish dates and featured images, plus 42 insurance tips as posts with full resolution imagery pulled from live page renditions"
                },
                {
                    "metric": "Enterprise integrations rebuilt from Java servlets",
                    "value": "3",
                    "detail": "AAA National Zip Interrogator and club code validation, the Direct Repair Network shop finder, and the CCPA request pipeline into the Manage-CCPA API"
                },
                {
                    "metric": "Deployment architecture corrected before build",
                    "value": "Bitbucket-first reversed",
                    "detail": "A Bitbucket to GitHub mirror would have bypassed the VIP Code Analysis Bot and let the source of truth report deploys the VIP environment had halted"
                },
                {
                    "metric": "Custom CMS replaced with core WordPress",
                    "value": "Resources post type retired",
                    "detail": "Resource Hub, category archives, tip single template, latest resources module and navigation all re-pointed to core Posts and Categories"
                },
                {
                    "metric": "Unbounded database query removed",
                    "value": "every DRN search and API request",
                    "detail": "Repair network shop list cached, cutting a full table read out of the hot path on the site's heaviest template"
                },
                {
                    "metric": "Security review against WP VIP standards",
                    "value": "passed with fixes",
                    "detail": "Output escaping corrected on press release footers and the CCPA form, SVG and CSV uploads restricted to administrators, external link redirect hardened"
                },
                {
                    "metric": "Accessibility remediation pass",
                    "value": "WCAG",
                    "detail": "Skip to content link fixed, visible keyboard focus styles, fully keyboard operable header menus, labeled forms and icons, video lightbox focus handling, reduced motion support"
                },
                {
                    "metric": "Editor self-sufficiency on new pages",
                    "value": "+70%",
                    "detail": "A 23 layout module library with a consistent option vocabulary means most new pages need no developer at all",
                    "estimated": true
                },
                {
                    "metric": "Content operations time returned",
                    "value": "10-15 hrs/mo",
                    "detail": "Core Posts and Categories with icon, description and archive title fields replacing a bespoke Resources type and developer-managed taxonomy copy",
                    "estimated": true
                },
                {
                    "metric": "Organic visibility preserved through replatform",
                    "value": "90-100%",
                    "detail": "A redirect map built from the legacy AEM sitemap plus Search Console 404 monitoring, on an archive of 364 press releases and 42 tips",
                    "estimated": true
                },
                {
                    "metric": "Page load time versus the AEM site",
                    "value": "-40%",
                    "detail": "A purpose built theme on WordPress VIP edge caching, replacing an AEM delivery stack with clientlib bundles and servlet backed search",
                    "estimated": true
                },
                {
                    "metric": "Privacy request handling",
                    "value": "end to end",
                    "detail": "CCPA submissions posting straight to the Manage-CCPA API with OAuth client credentials and a request ID shown to the customer, with no AEM servlet in the path",
                    "estimated": true
                }
            ]
        },
        {
            "client": "EverPresent",
            "url": "https://www.kevinleary.net/case-studies/everpresent/",
            "client_website": "https://www.everpresent.com",
            "summary": "Every conversion path on the site funneled into an outsourced Zoho iframe that could not be measured or changed; a self-contained booking application with ZIP-based service-area routing and 15-parameter attribution lifted lead intake conversion 15-30% and returned 4-8 hours a month of developer time.",
            "client_location": "84 Needham Street, Suite 130, Newton, MA 02461, United States",
            "focus": [
                "Analytics and Measurement",
                "API Development",
                "Attribution",
                "Conversion Tracking",
                "CRM Integration",
                "Custom Plugin Development",
                "Documentation",
                "Lead Generation",
                "Performance Optimization",
                "Security and Compliance",
                "WordPress Development"
            ],
            "tech_stack": [
                "ACF",
                "Bootstrap",
                "Elementor",
                "GA4",
                "Git",
                "Google Tag Manager",
                "MySQL",
                "PHP",
                "Vue.js",
                "WordPress",
                "WP Engine",
                "Zapier",
                "Zoho CRM"
            ],
            "results": [
                {
                    "metric": "ZIP codes seeded for offline geolocation",
                    "value": "33,112",
                    "detail": "Indexed MySQL table with haversine distance, no external geocoding API at runtime"
                },
                {
                    "metric": "Attribution parameters captured site-wide",
                    "value": "15",
                    "detail": "Five utm_* values plus gclid, fbclid, msclkid, dclid, wbraid, ttclid, twclid, li_fat_id, sccid and ko_click_id, plus external referrer"
                },
                {
                    "metric": "Custom database tables",
                    "value": "3",
                    "detail": "wp_everpresent_leads, wp_everpresent_locations and wp_everpresent_geolocation"
                },
                {
                    "metric": "API endpoints built",
                    "value": "3",
                    "detail": "Lead submission, location lookup and service-range check"
                },
                {
                    "metric": "Lead types handled by one flow",
                    "value": "4",
                    "detail": "Home pickup, store drop-off, mail-in and ask a question"
                },
                {
                    "metric": "CMS-editable fields in the intake flow",
                    "value": "34",
                    "detail": "Across 4 tabs, covering every headline, label, message and legal line"
                },
                {
                    "metric": "GA4 funnel events instrumented",
                    "value": "5",
                    "detail": "lead_book_online, lead_type_selected, lead_project_size, lead_submitted_success, lead_submitted_error"
                },
                {
                    "metric": "Third-party form plugins in the final stack",
                    "value": "0",
                    "detail": "Vue 3 application served by a custom WordPress plugin, replacing a Zoho iframe"
                },
                {
                    "metric": "PHP version",
                    "value": "7.4 \u2192 8.3",
                    "detail": "Upgraded off an end-of-life runtime during the stabilization phase"
                },
                {
                    "metric": "Plugins with known security issues remediated",
                    "value": "6",
                    "detail": "Update pass tested locally before deployment"
                },
                {
                    "metric": "Spam and orphaned WooCommerce comments removed",
                    "value": "1,653",
                    "detail": "Commenting and pingbacks then disabled on the blog"
                },
                {
                    "metric": "Rollback path at launch",
                    "value": "1 CMS toggle",
                    "detail": "Any team member can revert the whole site to the previous Zoho iframe without a developer"
                },
                {
                    "metric": "Lead intake conversion rate",
                    "value": "+15-30%",
                    "detail": "Branching, mobile-correct flow with no third-party iframe, replacing an embed that could not route by geography",
                    "estimated": true
                },
                {
                    "metric": "Developer time removed from routine operations",
                    "value": "4-8 hrs/mo",
                    "detail": "Location updates, copy changes and lead exports all moved to self-service",
                    "estimated": true
                },
                {
                    "metric": "Page weight on the booking flow",
                    "value": "-30-50%",
                    "detail": "Elementor's frontend assets and unnecessary JS and CSS dequeued from the form template",
                    "estimated": true
                }
            ]
        },
        {
            "client": "Fab Foundation",
            "url": "https://www.kevinleary.net/case-studies/fab-foundation/",
            "client_website": "https://www.scopesdf.org",
            "summary": "The lesson library serving 2,300+ Fab Labs had outgrown its platform; a deep database cleanup and a rebuilt lesson builder took peak memory from 2GB to 40MB, cut member-reported issues 60% and lifted organic visibility 30%.",
            "client_location": "50 Milk Street, 16th Floor, Boston, MA 02109, United States",
            "focus": [
                "Custom Plugin Development",
                "Database Optimization",
                "Internationalization",
                "Maintenance and Support",
                "Performance Optimization",
                "Search",
                "Security and Compliance",
                "SEO",
                "Theme Development",
                "WordPress Development"
            ],
            "tech_stack": [
                "Advanced Custom Fields",
                "Ahrefs",
                "Cloudflare",
                "Google Search Console",
                "Gravity Forms",
                "GTranslate",
                "MySQL",
                "PHP",
                "Quill",
                "Relevanssi",
                "SCSS",
                "WordPress",
                "WP Engine"
            ],
            "results": [
                {
                    "metric": "Peak memory on the lessons index",
                    "value": "2GB \u2192 40MB",
                    "detail": "The site's most-used page rebuilt to run comfortably inside normal limits"
                },
                {
                    "metric": "Duplicate postmeta rows removed",
                    "value": "~600,000",
                    "detail": "About 63% of the database, followed by a repair and optimize pass across all tables"
                },
                {
                    "metric": "Lesson plans served to the network",
                    "value": "250+",
                    "detail": "Community-contributed lessons reaching educators across 2,300+ Fab Labs in 120+ countries"
                },
                {
                    "metric": "Lesson builder languages",
                    "value": "EN + AR",
                    "detail": "Browser-language detection and right-to-left layout, with the machine-translation widget reconciled against the custom layer"
                },
                {
                    "metric": "Member-reported issues",
                    "value": "-60%",
                    "detail": "Lesson saving, draft handling and validation made dependable for members",
                    "estimated": true
                },
                {
                    "metric": "Organic search visibility",
                    "value": "+30%",
                    "detail": "Search-indexing rework, SEO baseline remediation, metadata and broken-link cleanup",
                    "estimated": true
                }
            ]
        },
        {
            "client": "Harvard Law Review",
            "url": "https://www.kevinleary.net/case-studies/harvard-law-review/",
            "client_website": "https://harvardlawreview.org",
            "summary": "A journal whose entire masthead turns over every twelve months has no institutional memory by design; eight years of continuous engineering and tested update cycles took accessibility from under 70% to 99%, held successful brute-force compromises at zero and avoided 20-40 hours of rediscovery per volume.",
            "client_location": "1511 Massachusetts Avenue, Cambridge, MA 02138, United States",
            "focus": [
                "Accessibility",
                "API Integration",
                "Content Management",
                "DevOps and Deployment",
                "Editorial Publishing",
                "Maintenance and Support",
                "Performance Optimization",
                "Search",
                "Security and Compliance",
                "Spam and Abuse Prevention",
                "Theme Development",
                "WordPress Development"
            ],
            "tech_stack": [
                "Advanced Custom Fields",
                "Cloudflare",
                "Co-Authors Plus",
                "D3.js",
                "FormAssembly",
                "Git",
                "Google Authenticator",
                "Gutenberg",
                "JavaScript",
                "jQuery",
                "Matomo",
                "PHP",
                "Query Monitor",
                "Relevanssi",
                "Timber",
                "Twig",
                "WordPress",
                "WP Engine",
                "WP Migrate DB Pro",
                "Yoast SEO"
            ],
            "results": [
                {
                    "metric": "Engagement length",
                    "value": "8 years",
                    "detail": "Spanning eight volumes and a full redesign by another agency"
                },
                {
                    "metric": "Volumes supported",
                    "value": "8",
                    "detail": "Each with a complete turnover of editorial leadership, through Volume 140"
                },
                {
                    "metric": "Lighthouse accessibility",
                    "value": "under 70% \u2192 99%",
                    "detail": "99% on the home page and above 95% on other pages tested"
                },
                {
                    "metric": "Brute-force surface on admin paths",
                    "value": "10 req / 10 sec",
                    "detail": "Rate limiting on /wp-admin/, /wp-login.php and other sensitive URLs"
                },
                {
                    "metric": "Editor lockouts from the bot challenge",
                    "value": "eliminated",
                    "detail": "Interactive CAPTCHA replaced with a Cloudflare managed challenge after admins were trapped in a verification loop"
                },
                {
                    "metric": "Plugins updated in one tested maintenance cycle",
                    "value": "9",
                    "detail": "Including Crossword Compiler 5.4 \u2192 14.7, a nine-major-version jump, tested against a copy of the live database"
                },
                {
                    "metric": "Static asset cache",
                    "value": "1 year",
                    "detail": "RSS feeds cached for 1 day; /wp-json/ blocked for logged-out requests and AI crawlers blocked"
                },
                {
                    "metric": "Crossword duplication",
                    "value": "all Game posts",
                    "detail": "Patched at the source so the fix covered the back catalogue, not only the reported puzzle"
                },
                {
                    "metric": "Onboarding cost avoided per volume transition",
                    "value": "20-40 hrs",
                    "detail": "Rediscovery a new set of Online Chairs would otherwise fund every year",
                    "estimated": true
                },
                {
                    "metric": "Successful brute-force compromise",
                    "value": "0",
                    "detail": "Across the engagement, on a WordPress install carrying the Harvard name with dozens of student accounts",
                    "estimated": true
                }
            ]
        },
        {
            "client": "Honeyfund",
            "url": "https://www.kevinleary.net/case-studies/honeyfund/",
            "client_website": "https://www.honeyfund.com",
            "summary": "The blog sat on a subdomain feeding authority away from the product, and the conversion funnel was only half instrumented; the blog was proxied into the main domain, events rebuilt client- and server-side and a commercial theme and page builder deleted, taking average Google position from 18.5 to 8.6 and adding 20-35% organic signups.",
            "client_location": "United States",
            "focus": [
                "Advertising Optimization",
                "Analytics and Measurement",
                "Attribution",
                "CMS Migration",
                "Conversion Tracking",
                "Custom Plugin Development",
                "DevOps and Deployment",
                "Documentation",
                "GEO",
                "Google Tag Manager",
                "Maintenance and Support",
                "Migrations",
                "Performance Optimization",
                "Security and Compliance",
                "SEO",
                "Server-Side Tracking",
                "Technical SEO",
                "Theme Development",
                "WordPress Development"
            ],
            "tech_stack": [
                "Amazon S3",
                "AWS",
                "BigQuery",
                "Bootstrap",
                "Cloudflare",
                "GA4",
                "Git",
                "Google Authenticator",
                "Google Search Console",
                "Google Tag Manager",
                "HubSpot",
                "Kinsta",
                "Laravel",
                "Meta Conversions API",
                "MySQL",
                "nginx",
                "PHP",
                "Screaming Frog",
                "SCSS",
                "Universal Analytics",
                "Vue.js",
                "WordPress",
                "Yoast SEO"
            ],
            "results": [
                {
                    "metric": "Engagement length",
                    "value": "21 months",
                    "detail": "Sustained work across SEO, analytics and platform"
                },
                {
                    "metric": "Average Google position",
                    "value": "18.5 \u2192 8.6",
                    "detail": "Over a five-month window, from the client's own weekly #seo-watch reporting"
                },
                {
                    "metric": "Google Search click-through rate",
                    "value": "6.1% \u2192 8.4%",
                    "detail": "Highest on record for the site, three consecutive weeks at the peak"
                },
                {
                    "metric": "Organic search traffic",
                    "value": "+4% YoY",
                    "detail": "Year over year, on lower paid spend than the prior year"
                },
                {
                    "metric": "Linking domains processed for disavow",
                    "value": "10,000+",
                    "detail": "Script-generated from the Search Console export, cross-checked against SEMrush, manually reviewed"
                },
                {
                    "metric": "Referring domains flagged toxic at audit",
                    "value": "~36%",
                    "detail": "Historical link profile, addressed by the disavow submission"
                },
                {
                    "metric": "Custom events defined in Google Tag Manager",
                    "value": "26",
                    "detail": "Client-side events pushed from the Vue apps inside the Laravel product"
                },
                {
                    "metric": "Meta standard events mapped",
                    "value": "6",
                    "detail": "AddPaymentInfo, CompleteRegistration, InitiateCheckout, Lead, Purchase, SubmitApplication"
                },
                {
                    "metric": "Meta server-side events before this work",
                    "value": "1",
                    "detail": "page_view was the only event defined in the Conversions API"
                },
                {
                    "metric": "Salient theme and child theme files removed",
                    "value": "1,771",
                    "detail": "Deleted from version control when the custom theme replaced them"
                },
                {
                    "metric": "WPBakery and Salient plugin files removed",
                    "value": "1,743",
                    "detail": "Across js_composer_salient, salient-core, salient-shortcodes, salient-social and salient-widgets"
                },
                {
                    "metric": "Files in the replacement theme",
                    "value": "30",
                    "detail": "basic-wp, a plain custom theme with no page builder"
                },
                {
                    "metric": "Blog posts preserved through the cutover window",
                    "value": "15",
                    "detail": "Published live after the content freeze, migrated by hand with images"
                },
                {
                    "metric": "Proxy launch approach",
                    "value": "reproduced on localhost first",
                    "detail": "Full nginx proxy topology rebuilt and proven locally before the production cutover"
                },
                {
                    "metric": "Organic signups attributable to the position and CTR gains",
                    "value": "+20-35%",
                    "detail": "Click-through up ~38% relative on a base of roughly 57,000 weekly organic clicks",
                    "estimated": true
                },
                {
                    "metric": "Ad spend efficiency",
                    "value": "10-20%",
                    "detail": "Standard effect of restoring accurate server-side conversion signal to platform bidding",
                    "estimated": true
                },
                {
                    "metric": "Blog page weight after the rebuild",
                    "value": "-40-60%",
                    "detail": "Page builder and commercial theme assets replaced by a 30-file theme with dequeued block styles and on-the-fly WebP",
                    "estimated": true
                },
                {
                    "metric": "Developer time removed from routine content operations",
                    "value": "2-4 hrs/mo",
                    "detail": "CMS-managed navigation, automatic updates and a self-generating table of contents",
                    "estimated": true
                }
            ]
        },
        {
            "client": "Legacy Memorial Products",
            "url": "https://www.kevinleary.net/case-studies/legacy-memorial-products/",
            "client_website": "https://www.legacymemorialproducts.com",
            "summary": "A patented keepsake urn had a product and no business around it; brand, site, copy, Stripe checkout and a browser-based engraving customizer that emits production-ready laser files took orders to same-day production while avoiding $1,200-$3,600 a year in platform licensing.",
            "client_location": "Brookline, MA, United States",
            "focus": [
                "Analytics and Measurement",
                "API Development",
                "Branding",
                "Cloud Infrastructure",
                "Content Strategy",
                "Conversion Tracking",
                "Copywriting",
                "Custom Plugin Development",
                "DevOps and Deployment",
                "Digital Fabrication Workflow",
                "Documentation",
                "eCommerce",
                "Front-end Development",
                "Google Tag Manager",
                "Information Architecture",
                "Payment Integration",
                "Performance Optimization",
                "Product Customization",
                "Security and Compliance",
                "SEO",
                "SVG Generation",
                "Theme Development",
                "Web Design",
                "WordPress Development"
            ],
            "tech_stack": [
                "Advanced Custom Fields",
                "Cloudflare",
                "Composer",
                "GA4",
                "Git",
                "Google Fonts",
                "Google Search Console",
                "Google Tag Manager",
                "JavaScript",
                "Kinsta",
                "LightBurn",
                "model-viewer",
                "PHP",
                "SCSS",
                "Stripe",
                "Stripe Checkout",
                "SVG",
                "Vue.js",
                "WordPress",
                "WP-CLI"
            ],
            "results": [
                {
                    "metric": "Launch",
                    "value": "live",
                    "detail": "Kinsta hosting with Cloudflare in front"
                },
                {
                    "metric": "Pages written from scratch",
                    "value": "10",
                    "detail": "Home, product, About, FAQs, Reviews, Contact, Terms, Shipping, Privacy, confirmation"
                },
                {
                    "metric": "Engravable sides supported",
                    "value": "6",
                    "detail": "Independently configured and priced per side"
                },
                {
                    "metric": "Typefaces offered",
                    "value": "39",
                    "detail": "Custom picker rendering each option in its own face"
                },
                {
                    "metric": "Design files produced per order",
                    "value": "1",
                    "detail": "Down from 4+ on multi-sided orders before the consolidation fix"
                },
                {
                    "metric": "Manual drawing steps between checkout and laser",
                    "value": "0",
                    "detail": "The site emits the production SVG directly into the media library and Stripe metadata"
                },
                {
                    "metric": "WooCommerce and customizer SaaS licences",
                    "value": "0",
                    "detail": "Custom Stripe Checkout and a custom Vue customizer instead of WooCommerce and Zakeke"
                },
                {
                    "metric": "Product catalog entries maintained",
                    "value": "0",
                    "detail": "Prices computed per configuration at checkout"
                },
                {
                    "metric": "Customization paths",
                    "value": "2",
                    "detail": "In-browser text mode at $195 and uploaded-SVG mode at $295, plus $30 per additional side"
                },
                {
                    "metric": "Complete design directions delivered",
                    "value": "2",
                    "detail": "The original build, then a full legacy-style rebuild"
                },
                {
                    "metric": "Custom tables and API endpoints",
                    "value": "1 each",
                    "detail": "wp_forms and /api/contact/, validated and sanitized"
                },
                {
                    "metric": "Environments",
                    "value": "3",
                    "detail": "Local, test.legacymemorialproducts.com and production, with a safe deploy path"
                },
                {
                    "metric": "Founder and fabricator hours returned per order",
                    "value": "0.5-1.5 hrs",
                    "detail": "Artwork interpretation, re-drawing and back-and-forth removed from every sale",
                    "estimated": true
                },
                {
                    "metric": "Order to production turnaround",
                    "value": "same day",
                    "detail": "The engraving file exists the moment payment clears",
                    "estimated": true
                },
                {
                    "metric": "Licensing and platform cost avoided",
                    "value": "$1,200-$3,600/yr",
                    "detail": "Hosted product customizer subscription plus WooCommerce extensions at typical list pricing",
                    "estimated": true
                },
                {
                    "metric": "Addressable buying window",
                    "value": "24/7",
                    "detail": "A category where the purchase decision is frequently made outside business hours",
                    "estimated": true
                }
            ]
        },
        {
            "client": "MIT",
            "url": "https://www.kevinleary.net/case-studies/mit/",
            "client_website": "https://www.mit.edu",
            "summary": "Four MIT research sites were being edited directly on production with no version control; local environments, git deploys and two purpose-built plugins made them versioned, deployable software and cut the effort of a people-page change 90%.",
            "client_location": "Cambridge, MA, United States",
            "focus": [
                "Content Management",
                "Custom Plugin Development",
                "Editorial Publishing",
                "Maintenance and Support",
                "Performance Optimization",
                "Security and Compliance",
                "Theme Development",
                "Web Design",
                "WordPress Development"
            ],
            "tech_stack": [
                "Advanced Custom Fields",
                "Astra",
                "Cloudflare",
                "Elementor",
                "Elementor Pro",
                "Git",
                "MySQL",
                "PHP",
                "SCSS",
                "SG Cachepress",
                "SiteGround",
                "WordPress",
                "WP Migrate DB Pro"
            ],
            "results": [
                {
                    "metric": "MIT research properties supported",
                    "value": "4",
                    "detail": "scram.mit.edu, internetpolicy.mit.edu, futureofdata.mit.edu and computersciencelaw.org, each given a local environment, version control and a deploy path"
                },
                {
                    "metric": "Custom functionality plugins written",
                    "value": "2",
                    "detail": "mit-scram and mit-future-of-data, each splitting site behavior into team profiles, security, performance and asset modules"
                },
                {
                    "metric": "Team profiles built",
                    "value": "18",
                    "detail": "Rendering on scram.mit.edu/people/ from the post type, taxonomy and shortcode built in this engagement, across the cyber risk team and alumni"
                },
                {
                    "metric": "Research entries restored",
                    "value": "11",
                    "detail": "Across five years on the SCRAM research page, each linked to ArXiv, the Harvard Data Science Review, the OECD iLibrary or the thesis"
                },
                {
                    "metric": "Lines removed from the public web root",
                    "value": "1,512",
                    "detail": "Including 862 lines of PHP stack traces served over HTTP from php_errorlog, plus readme.html, license.txt and a leftover Default.html"
                },
                {
                    "metric": "Components updated in one documented cycle",
                    "value": "7",
                    "detail": "ACF Pro, Elementor, Elementor Pro, SG Cachepress, Astra Sites, WP Migrate DB Pro and Astra, tested locally, deployed once confirmed stable"
                },
                {
                    "metric": "Effort of a people-page change",
                    "value": "-90%",
                    "detail": "A staff member adding a post and picking a group, instead of a developer editing a page-builder layout",
                    "estimated": true
                },
                {
                    "metric": "Time per symposium program",
                    "value": "-6 to 8 hrs",
                    "detail": "Generated session tables and a reusable event title and address module replacing hand-assembled markup for each year",
                    "estimated": true
                },
                {
                    "metric": "Deploy downtime",
                    "value": "0",
                    "detail": "A push to a bare remote pointing at public_html, replacing production edits and an unreliable host git integration",
                    "estimated": true
                },
                {
                    "metric": "Account-existence disclosure at the login form",
                    "value": "-100%",
                    "detail": "Email-only authentication, uniform error copy across login and lost password, and the failure animation suppressed",
                    "estimated": true
                }
            ]
        },
        {
            "client": "MIT Sloan Management Review",
            "url": "https://www.kevinleary.net/case-studies/wordpress-ecommerce-mit-sloan-review/",
            "client_website": "https://sloanreview.mit.edu",
            "summary": "Corporate subscriptions were sold, provisioned and invoiced by hand; a custom WordPress commerce layer automated the full cycle and grew corporate subscription revenue 30%.",
            "client_location": "Cambridge, MA, United States",
            "focus": [
                "Data Warehousing",
                "eCommerce",
                "Payments Integration",
                "Server-Side Tracking",
                "Subscriptions and Membership"
            ],
            "tech_stack": [
                "BigQuery",
                "Piano",
                "Stripe",
                "WordPress"
            ],
            "results": [
                {
                    "metric": "Corporate subscription revenue",
                    "value": "fully automated",
                    "detail": "Companies self-serve purchase and manage employee access"
                },
                {
                    "metric": "Manual provisioning and invoicing",
                    "value": "eliminated",
                    "detail": "No staff involvement in account setup"
                },
                {
                    "metric": "Corporate subscription revenue growth",
                    "value": "+30%",
                    "detail": "Self-serve tiered pricing removing the sales-cycle bottleneck",
                    "estimated": true
                }
            ]
        },
        {
            "client": "MIT Sloan Management Review",
            "url": "https://www.kevinleary.net/case-studies/wordpress-developer-mit-sloan-review/",
            "client_website": "https://sloanreview.mit.edu",
            "summary": "Corporate group subscriptions were being provisioned by hand for every account; custom WordPress development automated provisioning end to end and cut page load 40%.",
            "client_location": "Cambridge, MA, United States",
            "focus": [
                "Custom Plugin Development",
                "Data Warehousing",
                "Performance Optimization",
                "Subscriptions and Membership",
                "WordPress Development"
            ],
            "tech_stack": [
                "BigQuery",
                "Google Tag Manager",
                "Gravity Forms",
                "Piano",
                "WordPress"
            ],
            "results": [
                {
                    "metric": "Corporate group subscriptions",
                    "value": "built",
                    "detail": "Block group memberships inside Piano, unavailable in any existing plugin"
                },
                {
                    "metric": "Manual account provisioning",
                    "value": "eliminated",
                    "detail": "Companies self-serve purchase and manage employee access"
                },
                {
                    "metric": "Page load time",
                    "value": "-40%",
                    "detail": "Plugin dependencies cut and the codebase optimized",
                    "estimated": true
                }
            ]
        },
        {
            "client": "MIT Technology Review",
            "url": "https://www.kevinleary.net/case-studies/wordpress-developer-mit-techologyreview/",
            "client_website": "https://www.technologyreview.com",
            "summary": "A publication with an archive digitized 100+ years needed an architecture that would outlast its redesigns; the custom WordPress build carried 2M+ monthly visitors for more than seven years.",
            "client_location": "Cambridge, MA, United States",
            "focus": [
                "eCommerce",
                "Headless WordPress",
                "Migrations",
                "Search",
                "WordPress Development"
            ],
            "tech_stack": [
                "React",
                "WordPress"
            ],
            "results": [
                {
                    "metric": "Architecture lifespan",
                    "value": "7+ years",
                    "detail": "Headless CMS powering the site for years after launch"
                },
                {
                    "metric": "Monthly visitors supported",
                    "value": "2M+",
                    "detail": "Frontend holding up under sustained editorial traffic"
                },
                {
                    "metric": "Archive digitized",
                    "value": "100+ years",
                    "detail": "Legacy content organized into an accessible digital archive"
                }
            ]
        },
        {
            "client": "NetBrain",
            "url": "https://www.kevinleary.net/case-studies/gtm-netbrain/",
            "client_website": "https://www.netbraintech.com/",
            "role": "GTM Consultant",
            "project": "Event-Based Conversion Tracking and Ad Platform Optimization",
            "summary": "Campaigns were being judged on inflated pageview metrics; event-based conversion tracking reconciled against Salesforce showed which spend actually produced pipeline, doubling qualified leads on 40% less ad spend.",
            "client_location": "Burlington, MA, United States",
            "focus": [
                "Advertising Optimization",
                "Conversion Tracking",
                "CRM Integration",
                "Google Tag Manager"
            ],
            "tech_stack": [
                "BigQuery",
                "GA4",
                "Google Tag Manager",
                "Marketo",
                "Salesforce",
                "WordPress"
            ],
            "results": [
                {
                    "metric": "Ad spend",
                    "value": "-40%",
                    "detail": "Accurate conversion data exposing campaigns propped up by inflated pageview metrics"
                },
                {
                    "metric": "Lead generation",
                    "value": "+100%",
                    "detail": "Qualified lead volume doubled while spending less"
                },
                {
                    "metric": "CRM data match",
                    "value": "verified",
                    "detail": "Reported conversions reconciled against Salesforce records"
                }
            ]
        },
        {
            "client": "NetBrain",
            "url": "https://www.kevinleary.net/case-studies/wordpress-developer-netbrain/",
            "client_website": "https://www.netbraintech.com/",
            "summary": "A network automation vendor needed a site that performed globally, including behind the Great Firewall, and conversion data it could trust; custom development with event-based tracking delivered sub-3s load times in China, doubled lead generation and cut ad spend 40%.",
            "client_location": "Burlington, MA, United States",
            "focus": [
                "Advertising Optimization",
                "CRM Integration",
                "Performance Optimization",
                "Search",
                "SEO",
                "WordPress Development"
            ],
            "tech_stack": [
                "Google Analytics",
                "Google Tag Manager",
                "Marketo",
                "Salesforce",
                "WordPress"
            ],
            "results": [
                {
                    "metric": "Ad spend",
                    "value": "-40%",
                    "detail": "Underperforming campaigns cut once conversion data became trustworthy"
                },
                {
                    "metric": "Lead generation",
                    "value": "+100%",
                    "detail": "Qualified lead volume doubled on the same team"
                },
                {
                    "metric": "Global load time behind the China firewall",
                    "value": "sub-3s",
                    "detail": "Site configured to perform in every market they sell into",
                    "estimated": true
                }
            ]
        },
        {
            "client": "Northstar Travel Group",
            "url": "https://www.kevinleary.net/case-studies/gtm-northstar/",
            "client_website": "https://www.northstartravelgroup.com",
            "role": "GTM Consultant",
            "project": "Analytics Consolidation Across 50+ Properties with BigQuery Reporting",
            "summary": "Fifty-plus travel brands each reported separately, costing thirty hours a month to assemble; one GA4 and BigQuery reporting stack replaced the manual work at no incremental query cost.",
            "client_location": "Rutherford, NJ, United States",
            "focus": [
                "Analytics and Measurement",
                "Data Warehousing",
                "Google Tag Manager"
            ],
            "tech_stack": [
                "BigQuery",
                "GA4",
                "Google Tag Manager",
                "Looker Studio",
                "WordPress"
            ],
            "results": [
                {
                    "metric": "Properties on one reporting stack",
                    "value": "50+",
                    "detail": "A single cohesive view replacing hours of manual report assembly"
                },
                {
                    "metric": "BigQuery query cost",
                    "value": "$0 incremental",
                    "detail": "Partitioning and clustering keeping queries inside the free tier at this volume"
                },
                {
                    "metric": "Monthly reporting time",
                    "value": "-30 hrs",
                    "detail": "Automated dashboards replacing per-property manual assembly",
                    "estimated": true
                }
            ]
        },
        {
            "client": "Northstar Travel Group",
            "url": "https://www.kevinleary.net/case-studies/northstar-travel-group/",
            "client_website": "https://www.northstartravelgroup.com",
            "summary": "A decade of analytics history was days from deletion with Universal Analytics, and event registrations could not be attributed; 21 properties were moved into BigQuery before the cutoff and cross-domain tracking repaired, recovering roughly 98% of previously unattributable event campaign spend and 20-40 hours a month of reporting assembly.",
            "client_location": "301 Route 17 North, Rutherford, NJ 07070, United States",
            "focus": [
                "Analytics and Measurement",
                "API Integration",
                "Attribution",
                "Business Intelligence",
                "Conversion Tracking",
                "Data Warehousing",
                "Documentation",
                "ETL Pipelines",
                "Google Tag Manager",
                "Migrations",
                "Performance Optimization"
            ],
            "tech_stack": [
                "Airbyte",
                "BigQuery",
                "Bombora",
                "Cvent",
                "GA4",
                "Git",
                "Google Cloud",
                "Google Tag Manager",
                "Looker Studio",
                "SQL",
                "Stova",
                "Tableau",
                "Ubuntu",
                "Universal Analytics"
            ],
            "results": [
                {
                    "metric": "Properties migrated off Universal Analytics",
                    "value": "21",
                    "detail": "All before Google shut off Reporting API access"
                },
                {
                    "metric": "Migration paths evaluated before committing",
                    "value": "6",
                    "detail": "Reporting API, bulk CSV, Fivetran, Segment, RudderStack and Airbyte; Airbyte chosen for its data structures"
                },
                {
                    "metric": "Added cloud compute cost for the migration",
                    "value": "$0",
                    "detail": "Airbyte configured on an existing Ubuntu machine with roughly the compute of a paid Cloud Compute instance"
                },
                {
                    "metric": "Reporting API quota worked around",
                    "value": "50,000 req/day",
                    "detail": "Per-run day ranges tuned and a second Google Cloud project configured as overflow"
                },
                {
                    "metric": "Warehouse table design",
                    "value": "partitioned + 4-column cluster",
                    "detail": "reporting.ga4-flattened partitioned by event_date, clustered on stream_id, event_date, event_name, session_id"
                },
                {
                    "metric": "Attribution models carried in one row",
                    "value": "3",
                    "detail": "Collected UTM, last-click session and all-time first touch, so the model is a query decision rather than a schema decision"
                },
                {
                    "metric": "Tableau-facing views",
                    "value": "6",
                    "detail": "Daily and monthly, each at totals, medium, and medium plus source"
                },
                {
                    "metric": "Reporting refresh",
                    "value": "daily, 12:01 AM UTC",
                    "detail": "Scheduled query appending the previous day, with 2 status tables reporting freshness"
                },
                {
                    "metric": "UTM codes with attributed registrations, at audit",
                    "value": "10 of 568",
                    "detail": "Cross-domain tracking had never been configured in the events GTM container"
                },
                {
                    "metric": "Worst single case found",
                    "value": "209 registrations, 0 attributed",
                    "detail": "GTM West, before the cross-domain fix"
                },
                {
                    "metric": "Registration vendors unified under one approach",
                    "value": "3",
                    "detail": "Cvent, Stova and GES / Visit Cloud, standardized on the final-step registration pageview"
                },
                {
                    "metric": "Historical attribution refresh",
                    "value": "every 12 hours",
                    "detail": "Device and geolocation fingerprint ID, recovering attribution for events that had already run"
                },
                {
                    "metric": "Event conversion views built",
                    "value": "3",
                    "detail": "reporting.event-conversions__pageviews, __registration-complete and __registration-views"
                },
                {
                    "metric": "Pre-GA4 history that would otherwise be lost",
                    "value": "21 properties",
                    "detail": "Unrecoverable at any price once Google shut off access",
                    "estimated": true
                },
                {
                    "metric": "Monthly reporting assembly time recovered",
                    "value": "20-40 hrs",
                    "detail": "Portfolio-level reporting compiled property by property before the consolidated tables existed",
                    "estimated": true
                },
                {
                    "metric": "Event campaign spend previously unattributable",
                    "value": "~98%",
                    "detail": "558 of 568 UTM codes had no registration attached before the cross-domain fix",
                    "estimated": true
                },
                {
                    "metric": "Warehouse query cost avoided",
                    "value": "50-90%",
                    "detail": "Partitioning and clustering against a full-history scan at hundreds of millions of rows",
                    "estimated": true
                }
            ]
        },
        {
            "client": "OneGuide",
            "url": "https://www.kevinleary.net/case-studies/oneguide/",
            "client_website": "https://www.askoneguide.com",
            "summary": "Fourteen private equity firms each wanted their own branded portal, and a ten-person company could not maintain fourteen WordPress installs; one multisite codebase with host-derived branding and a curation-only admin cut per-portal curation effort 75% and member onboarding effort 90%.",
            "client_location": "1312 17th Street, Unit #2239, Denver, CO 80202, United States",
            "focus": [
                "API Development",
                "Cloud Infrastructure",
                "CRM Integration",
                "Custom Plugin Development",
                "Database Optimization",
                "Editorial Publishing",
                "Email Deliverability",
                "Maintenance and Support",
                "Performance Optimization",
                "Security and Compliance",
                "Subscriptions and Membership",
                "WordPress Development"
            ],
            "tech_stack": [
                "Advanced Custom Fields",
                "BuddyBoss",
                "BuddyPress",
                "Crocoblock",
                "Elementor",
                "FluentCRM",
                "JetEngine",
                "Leaky Paywall",
                "LearnDash",
                "miniOrange SAML",
                "MySQL",
                "PapaParse",
                "PHP",
                "Query Monitor",
                "Redis",
                "RunCloud",
                "SCSS",
                "SearchWP",
                "ThreeWP Broadcast",
                "Uncanny Automator",
                "WordPress",
                "WP Fusion",
                "WP-CLI"
            ],
            "results": [
                {
                    "metric": "Sites in one network",
                    "value": "19",
                    "detail": "Fourteen client firm portals plus the hub, shared library, template, demo and marketing site, from one codebase and one deploy"
                },
                {
                    "metric": "Firm portals on the client's own hostname",
                    "value": "7",
                    "detail": "White-labeled to the firm, with the cookie domain and Redis cache prefix derived from the request host"
                },
                {
                    "metric": "Authoring surfaces for the whole network",
                    "value": "1",
                    "detail": "Guides and expert profiles written on the hub and syndicated, with arrival status set per firm by a setting rather than by code"
                },
                {
                    "metric": "Verbs in the client-facing admin",
                    "value": "2",
                    "detail": "Show/Hide and Recommend, on list tables stripped of edit links, row actions and draft badges for everyone outside OneGuide staff and network admins"
                },
                {
                    "metric": "Post types in the visibility cascade",
                    "value": "2",
                    "detail": "Hiding a guide hides its expert profile and hiding an expert hides every guide they wrote, resolved through JetEngine relations"
                },
                {
                    "metric": "Hidden content reachable by direct URL",
                    "value": "0",
                    "detail": "Unpublished guides and expert profiles redirect on the front end, so curation choices actually hold"
                },
                {
                    "metric": "Plugins under a tested update cycle",
                    "value": "74",
                    "detail": "Promoted local to staging to production across 13 recorded update batches at exact versions"
                },
                {
                    "metric": "Environments behind one deploy command",
                    "value": "4",
                    "detail": "Local, dev, staging and production on RunCloud, shipping only custom code and config, then purging Redis"
                },
                {
                    "metric": "Member onboarding effort per cohort",
                    "value": "-90%",
                    "detail": "A validated CSV import creating the WordPress user, BuddyPress profile type, FluentCRM contact and custom fields in one pass",
                    "estimated": true
                },
                {
                    "metric": "Portal response time",
                    "value": "-30%",
                    "detail": "Redis object caching, reduced write pressure and a system cron replacing WP-Cron, counting only the performance changes that stayed shipped",
                    "estimated": true
                },
                {
                    "metric": "Per-portal curation effort",
                    "value": "-75%",
                    "detail": "Show, hide and feature decisions made from a single list table instead of the WordPress editor",
                    "estimated": true
                }
            ]
        },
        {
            "client": "Paperless Parts",
            "url": "https://www.kevinleary.net/case-studies/wordpress-developer-paperless-parts/",
            "client_website": "https://www.paperlessparts.com",
            "summary": "A manufacturing platform's marketing site had to satisfy ITAR-driven security review while staying editable by marketing; the custom build met the requirements in full, cut page load 45% and grew organic search traffic 35%.",
            "client_location": "Boston, MA, United States",
            "focus": [
                "CRM Integration",
                "GEO",
                "Performance Optimization",
                "Search",
                "Security and Compliance",
                "SEO",
                "Theme Development",
                "WordPress Development"
            ],
            "tech_stack": [
                "Google Tag Manager",
                "HubSpot",
                "Sage (Roots)",
                "WordPress"
            ],
            "results": [
                {
                    "metric": "ITAR security requirements",
                    "value": "fully compliant",
                    "detail": "Security measures meeting their certification obligations"
                },
                {
                    "metric": "Page load time",
                    "value": "-45%",
                    "detail": "Caching and deployment improvements on the Sage theme",
                    "estimated": true
                },
                {
                    "metric": "Organic search traffic",
                    "value": "+35%",
                    "detail": "Targeted SEO/GEO work plus an advanced on-site search rebuild",
                    "estimated": true
                }
            ]
        },
        {
            "client": "Paperless Parts",
            "url": "https://www.kevinleary.net/case-studies/paperless-parts/",
            "client_website": "https://www.paperlessparts.com",
            "summary": "An agency-built theme could not deploy to a read-only production filesystem and marketing filed a ticket for every content change; four years of continuous engineering made the site self-serviceable and defensible under ITAR-driven security review, cutting page load 45% and growing organic traffic 35%.",
            "client_location": "101 Federal Street, Floor 9, Boston, MA 02110, United States",
            "focus": [
                "Advertising Optimization",
                "Analytics and Measurement",
                "API Development",
                "Conversion Tracking",
                "CRM Integration",
                "Custom Plugin Development",
                "Data Warehousing",
                "GEO",
                "Google Tag Manager",
                "Maintenance and Support",
                "Performance Optimization",
                "Search",
                "Security and Compliance",
                "SEO",
                "Theme Development",
                "WordPress Development"
            ],
            "tech_stack": [
                "Advanced Custom Fields",
                "Ahrefs",
                "BigQuery",
                "Cloudflare",
                "GA4",
                "Google Tag Manager",
                "Gravity Forms",
                "Greenhouse",
                "HubSpot",
                "Looker Studio",
                "PHP",
                "Relevanssi",
                "Sage (Roots)",
                "Salesforce",
                "Screaming Frog",
                "Sentry",
                "Wordfence",
                "WordPress",
                "WP Engine"
            ],
            "results": [
                {
                    "metric": "POWER conference cycles from one CMS system",
                    "value": "4",
                    "detail": "Four consecutive annual cycles delivered from the same template, with the marketing team running content themselves each year"
                },
                {
                    "metric": "Security scan findings closed or justified",
                    "value": "6 of 6",
                    "detail": "HSTS, X-Frame-Options, X-Content-Type-Options, Server header, weak TLS ciphers and CSP accepted into the compliance record"
                },
                {
                    "metric": "Page load time",
                    "value": "-45%",
                    "detail": "Caching, compile and deployment rework, image optimization and unused libraries removed from the build",
                    "estimated": true
                },
                {
                    "metric": "Organic search traffic",
                    "value": "+35%",
                    "detail": "Four years of technical SEO remediation, structured data, deliberate deindexing of thin content and the AI-search work layered on top",
                    "estimated": true
                }
            ]
        },
        {
            "client": "PayWay",
            "url": "https://www.kevinleary.net/case-studies/payway/",
            "client_website": "https://www.payway.com",
            "summary": "A payment vendor's official WooCommerce gateway is many merchants' first contact with the brand, and it had fallen behind platform standards; a full rewrite with complete subscriptions support and hardened checkout validation kept 90+ merchant installs running cleanly and saved 2-4 support hours per install.",
            "client_location": "491 Maple Street, Suite 305, Danvers, MA, United States",
            "focus": [
                "API Integration",
                "Custom Plugin Development",
                "eCommerce",
                "Maintenance and Support",
                "Payments Integration",
                "Security and Compliance",
                "Subscriptions and Membership",
                "WordPress Development"
            ],
            "tech_stack": [
                "JavaScript",
                "jQuery",
                "PHP",
                "Subversion",
                "WooCommerce",
                "WooCommerce Subscriptions",
                "WordPress",
                "WordPress Coding Standards"
            ],
            "results": [
                {
                    "metric": "Installs behind the fix",
                    "value": "90+ active, 2,459 downloads",
                    "detail": "Every one a merchant whose checkout depends on the plugin loading"
                },
                {
                    "metric": "Merchant support turnaround",
                    "value": "days",
                    "detail": "Public support-forum requests answered with a commitment and closed on schedule"
                },
                {
                    "metric": "WooCommerce capabilities declared",
                    "value": "13, 10 subscription-specific",
                    "detail": "Cancellation, suspension, reactivation, amount and date changes, payment-method changes by customer and admin, and multiple concurrent subscriptions"
                },
                {
                    "metric": "Checkout fields validated server-side",
                    "value": "4",
                    "detail": "Cardholder name, number, expiry and CVC, each with its own inline validation message"
                },
                {
                    "metric": "Credentials moved into WooCommerce settings",
                    "value": "4",
                    "detail": "Company ID, Source ID, username and password, with nothing to edit into a file"
                },
                {
                    "metric": "Gateway environments behind one setting",
                    "value": "2",
                    "detail": "Live and test hosts, defaulting to test, so a merchant rehearses a real checkout before taking a real card"
                },
                {
                    "metric": "Directory tags brought inside the limit",
                    "value": "17 \u2192 5",
                    "detail": "WordPress.org honours only five; \"Tested up to\" also advanced from 6.2 to 6.6"
                },
                {
                    "metric": "Listed contributors on the directory listing",
                    "value": "1",
                    "detail": "Sole contributor since the 1.0.2 handover from the previous development team"
                },
                {
                    "metric": "Support time recovered per blocked merchant",
                    "value": "2-4 hrs",
                    "detail": "Vendor-side and merchant-side effort saved on every new install",
                    "estimated": true
                }
            ]
        },
        {
            "client": "proto.life",
            "url": "https://www.kevinleary.net/case-studies/proto-life/",
            "client_website": "https://proto.life",
            "summary": "An independent publication needed an engineering department it could not afford to hire; one engineer built the editorial theme, ad platform, Apple News channel and analytics warehouse and executed a live rebrand, clearing 149 Core Web Vitals failures, cutting spam signups 90% and growing organic traffic 30%.",
            "client_location": "United States",
            "focus": [
                "Advertising Optimization",
                "Analytics and Measurement",
                "Custom Plugin Development",
                "Data Warehousing",
                "eCommerce",
                "Editorial Publishing",
                "Email Marketing",
                "Maintenance and Support",
                "Performance Optimization",
                "Rebranding",
                "Search",
                "SEO",
                "Spam and Abuse Prevention",
                "Theme Development",
                "WordPress Development"
            ],
            "tech_stack": [
                "Action Scheduler",
                "Advanced Custom Fields",
                "Apple News",
                "BigQuery",
                "Cloudflare",
                "GA4",
                "Google Tag Manager",
                "Gutenberg",
                "Kinsta",
                "Mailchimp",
                "MySQL",
                "PHP",
                "Rank Math",
                "Relevanssi",
                "SCSS",
                "Shopify",
                "Timber",
                "Twig",
                "WordPress",
                "WP-CLI",
                "Zapier"
            ],
            "results": [
                {
                    "metric": "Article topper systems in the CMS",
                    "value": "4",
                    "detail": "Simple, Split Title, Giant Text and Side by Side, each with per-article color theming an editor controls without a developer"
                },
                {
                    "metric": "Ad tracking overhead",
                    "value": "10-30ms",
                    "detail": "Impression, scroll and click events streamed to BigQuery through deferred background processing, with automatic retirement at the impression cap"
                },
                {
                    "metric": "Core Web Vitals failures cleared",
                    "value": "149 URLs",
                    "detail": "Mobile layout shift on art-directed toppers brought under the 0.25 threshold without compromising the design"
                },
                {
                    "metric": "Publication renamed on a live site",
                    "value": "NEO.LIFE to proto.life",
                    "detail": "Database, logo, social presence, edge redirect map and search rankings transitioned with the audience intact"
                },
                {
                    "metric": "Online after the engagement ended",
                    "value": "2+ years",
                    "detail": "Left self-sustaining and drawing enough traffic to exceed its hosting plan visit allowance two years on"
                },
                {
                    "metric": "Spam newsletter signups reaching the list",
                    "value": "-90%",
                    "detail": "Viewport gating, per-IP rate limiting, edge firewall rules, IP reputation checks, MX validation and name-pattern filtering, layered",
                    "estimated": true
                },
                {
                    "metric": "Page load time",
                    "value": "-40%",
                    "detail": "CDN image delivery and format work, build cleanup, lazyloading and Cloudflare edge configuration",
                    "estimated": true
                },
                {
                    "metric": "Organic search traffic",
                    "value": "+30%",
                    "detail": "Rank Math migration, metadata and archive work, canonical repair and successive rounds of Search Console remediation",
                    "estimated": true
                }
            ]
        },
        {
            "client": "Puck",
            "url": "https://www.kevinleary.net/case-studies/puck/",
            "client_website": "https://puck.news",
            "summary": "A subscription media business ran its revenue on a custom Stripe engine nobody could safely change; twenty-two months owning checkout, consent, analytics and DevOps cut involuntary churn 10-15%, lifted paid conversion 10-20% and dropped origin load 40-60% during traffic spikes.",
            "client_location": "107 Greenwich Street, 23rd Floor, New York, NY, United States",
            "focus": [
                "Analytics and Measurement",
                "API Integration",
                "Attribution",
                "Conversion Optimization",
                "Custom Plugin Development",
                "DevOps and Deployment",
                "eCommerce",
                "Editorial Publishing",
                "Google Tag Manager",
                "Maintenance and Support",
                "Payments Integration",
                "Paywall Architecture",
                "Performance Optimization",
                "Privacy and Consent Management",
                "Security and Compliance",
                "Subscriptions and Membership",
                "Theme Development",
                "WordPress Development"
            ],
            "tech_stack": [
                "Advanced Custom Fields",
                "Apple News",
                "Beehiiv",
                "BigQuery",
                "Blade",
                "Cloudflare",
                "Cloudflare Turnstile",
                "Cookiebot",
                "Customer.io",
                "Filament",
                "GA4",
                "Git",
                "Google Tag Manager",
                "Growthbook",
                "JavaScript",
                "Kinsta",
                "Lando",
                "Laravel",
                "Livewire",
                "MariaDB",
                "MySQL",
                "PHP",
                "Roots Sage",
                "SCSS",
                "Stripe",
                "WordPress"
            ],
            "results": [
                {
                    "metric": "Engagement length",
                    "value": "22 months",
                    "detail": "Twenty-two months of continuous ownership across commerce, consent, analytics and DevOps"
                },
                {
                    "metric": "Commerce plugins on the critical path",
                    "value": "0",
                    "detail": "Stripe Payment Intents and webhooks direct, with an embedded on-site checkout, no WooCommerce, no membership plugin"
                },
                {
                    "metric": "Recurring subscribers billed",
                    "value": "50,000+",
                    "detail": "Carried forward from the existing engagement record"
                },
                {
                    "metric": "Monthly page views supported",
                    "value": "4M+",
                    "detail": "Carried forward from the existing engagement record"
                },
                {
                    "metric": "Cookies audited, categorized and published",
                    "value": "Every cookie set site-wide",
                    "detail": "Bucketed into marketing, analytics, essential and preferences, then published at /cookie-report/ for legal review"
                },
                {
                    "metric": "GDPR consent rollout",
                    "value": "1% \u2192 5% of traffic",
                    "detail": "Raised only after consent_initiated and consent_updated were verified firing in GA4 live metrics"
                },
                {
                    "metric": "Plugins removed from production",
                    "value": "4",
                    "detail": "WP Webhooks, Query Monitor, WPCode and Code Snippets, the last two after moving their contents into the theme"
                },
                {
                    "metric": "Environments behind one deploy path",
                    "value": "4",
                    "detail": "Localhost, staging, QA and production, from a starting point of production plus a staging site nobody could reliably reach"
                },
                {
                    "metric": "Apple News: approval to publishing",
                    "value": "~8 weeks",
                    "detail": "Alley Interactive plugin, a custom Apple News Format template, code-set category mapping and a PuckSerifDisplay-Dropcap font variant cut for Apple's renderer"
                },
                {
                    "metric": "Involuntary churn",
                    "value": "-10 to -15%",
                    "detail": "Correct proration, role assignment on successful payment, and newsletter preferences that survive renewal and upgrade",
                    "estimated": true
                },
                {
                    "metric": "Paid conversion rate",
                    "value": "+10 to +20%",
                    "detail": "Redirect-to preservation, correct product selection at checkout, a working IC upgrade path and tested paywall variants",
                    "estimated": true
                },
                {
                    "metric": "Origin load during traffic spikes",
                    "value": "-40 to -60%",
                    "detail": "Transient caching on menu queries, main-nav API caching, hero post caching and Cloudflare rules",
                    "estimated": true
                },
                {
                    "metric": "Analyst hours recovered per month",
                    "value": "6-10 hrs",
                    "detail": "Category dimensions and audiences in GA4 replacing manual segmentation, plus a GTM container organized enough to change without a developer",
                    "estimated": true
                }
            ]
        },
        {
            "client": "Puck",
            "url": "https://www.kevinleary.net/case-studies/gtm-puck/",
            "client_website": "https://puck.news",
            "role": "GTM Consultant",
            "project": "Server-Side Conversion Tracking, Consent Management, and Subscription Funnel Analytics",
            "summary": "Browser tracking was missing subscription revenue and everything an opt-out visitor did; server-side Stripe events with consent management put 100% of revenue into GA4 and recovered roughly 25% of the conversions lost to consent.",
            "client_location": "New York, NY, United States",
            "focus": [
                "Conversion Tracking",
                "Google Tag Manager",
                "Security and Compliance",
                "Server-Side Tracking",
                "Subscriptions and Membership"
            ],
            "tech_stack": [
                "BigQuery",
                "GA4",
                "Google Cloud",
                "Google Tag Manager",
                "Stripe",
                "WordPress"
            ],
            "results": [
                {
                    "metric": "Subscription revenue tracked",
                    "value": "100%",
                    "detail": "Server-side Stripe events capturing revenue browser tracking never sees"
                },
                {
                    "metric": "Conversions recovered from consent loss",
                    "value": "+25%",
                    "detail": "Server-side events preserving measurement for visitors who opt out",
                    "estimated": true
                },
                {
                    "metric": "Funnel coverage",
                    "value": "end to end",
                    "detail": "Every stage of the subscriber journey instrumented for editorial and business teams"
                }
            ]
        },
        {
            "client": "Puck",
            "url": "https://www.kevinleary.net/case-studies/wordpress-ecommerce-pucknews/",
            "client_website": "https://puck.news",
            "summary": "Off-the-shelf commerce plugins could not carry 50,000+ recurring subscribers or the entitlement model the paywall required; a purpose-built Stripe engine billed them with millisecond entitlement checks and cut cart abandonment 20%.",
            "client_location": "New York, NY, United States",
            "focus": [
                "eCommerce",
                "Payments Integration",
                "Performance Optimization",
                "Subscriptions and Membership"
            ],
            "tech_stack": [
                "Google Tag Manager",
                "React",
                "Sage (Roots)",
                "Stripe",
                "WordPress"
            ],
            "results": [
                {
                    "metric": "Active subscribers billed",
                    "value": "50,000+",
                    "detail": "Custom engine processing recurring billing without eCommerce plugin bloat"
                },
                {
                    "metric": "Entitlement check time",
                    "value": "milliseconds",
                    "detail": "Performance scores preserved on a 4M page view/month site"
                },
                {
                    "metric": "Cart abandonment",
                    "value": "-20%",
                    "detail": "Embedded on-site checkout replacing the hosted redirect flow",
                    "estimated": true
                }
            ]
        },
        {
            "client": "Puck",
            "url": "https://www.kevinleary.net/case-studies/wordpress-developer-pucknews/",
            "client_website": "https://puck.news",
            "summary": "A subscription publication serving 4M+ monthly page views needed GDPR-compliant measurement and a platform its own team could operate; custom WordPress development delivered both and cut subscription support overhead 50%.",
            "client_location": "New York, NY, United States",
            "focus": [
                "Custom Plugin Development",
                "Security and Compliance",
                "Subscriptions and Membership",
                "WordPress Development"
            ],
            "tech_stack": [
                "Google Tag Manager",
                "Sage (Roots)",
                "Stripe",
                "WooCommerce",
                "WordPress"
            ],
            "results": [
                {
                    "metric": "Monthly page views served",
                    "value": "4M+",
                    "detail": "Custom subscription plugin running on the high-traffic Sage site"
                },
                {
                    "metric": "GDPR consent",
                    "value": "compliant",
                    "detail": "Integrated directly with Google consent management"
                },
                {
                    "metric": "Subscription support overhead",
                    "value": "-50%",
                    "detail": "Purpose-built membership management replacing plugin workarounds",
                    "estimated": true
                }
            ]
        },
        {
            "client": "Recon Analytics",
            "url": "https://www.kevinleary.net/case-studies/recon-analytics/",
            "client_website": "https://www.reconanalytics.com",
            "summary": "A five-person research firm sold its reports by hand and had a podcast library nobody could search; a rebuilt site with automated transcript publishing and a Stripe storefront with per-page watermarked delivery opened a 24/7 buying window and returned 20-40 analyst hours a month.",
            "client_location": "Dedham, MA, United States",
            "focus": [
                "Analytics and Measurement",
                "API Development",
                "API Integration",
                "Cloud Infrastructure",
                "Content Management",
                "Content Strategy",
                "Conversion Tracking",
                "CRM Integration",
                "Custom Plugin Development",
                "Data Warehousing",
                "DevOps and Deployment",
                "Documentation",
                "eCommerce",
                "Editorial Publishing",
                "Email Deliverability",
                "Email Marketing",
                "ETL Pipelines",
                "Google Tag Manager",
                "Maintenance and Support",
                "Payment Integration",
                "PDF Generation",
                "Performance Optimization",
                "Privacy and Consent",
                "Security and Compliance",
                "SEO",
                "Spam and Abuse Prevention",
                "Subscriptions and Membership",
                "Technical SEO",
                "Theme Development",
                "Web Design",
                "WordPress Development"
            ],
            "tech_stack": [
                "Advanced Custom Fields",
                "Anthropic Claude",
                "BigQuery",
                "Cloudflare",
                "Cloudflare Turnstile",
                "GA4",
                "Git",
                "Google Cloud Storage",
                "Google Search Console",
                "Google Tag Manager",
                "Gravity Forms",
                "Gutenberg",
                "JavaScript",
                "Kinsta",
                "Mailgun",
                "OpenAI",
                "PHP",
                "Schema.org",
                "SCSS",
                "Stripe",
                "Tableau",
                "TinyMCE",
                "Vue.js",
                "WordPress",
                "WP-CLI",
                "Yoast SEO"
            ],
            "results": [
                {
                    "metric": "Site launch",
                    "value": "zero downtime",
                    "detail": "After six months of design and build, with no downtime at cutover"
                },
                {
                    "metric": "eCommerce launch",
                    "value": "Stripe store live",
                    "detail": "First report promoted four days after the store launched"
                },
                {
                    "metric": "Podcast episodes transcribed",
                    "value": "248",
                    "detail": "Back catalog transcribed via OpenAI Whisper with diarization through DeepSeek"
                },
                {
                    "metric": "Ongoing podcast publishing",
                    "value": "100% automated",
                    "detail": "Deepgram Nova-3 transcription, summary, speaker labels, episode numbers, SEO and platform links"
                },
                {
                    "metric": "Reports in the store",
                    "value": "8",
                    "detail": "Live digital products priced $5K-$50K"
                },
                {
                    "metric": "Manual fulfillment steps per sale",
                    "value": "0",
                    "detail": "Checkout, account creation, licensed delivery, receipt and team alert all automatic"
                },
                {
                    "metric": "Product catalog entries maintained",
                    "value": "0",
                    "detail": "Stripe Checkout Sessions with prices created on the fly; PDFs dropped in a directory become products"
                },
                {
                    "metric": "Services pages",
                    "value": "10",
                    "detail": "Consumer Pulse and Business Pulse product lines, including two Spanish-language editions"
                },
                {
                    "metric": "Domains consolidated",
                    "value": "8",
                    "detail": "Moved from GoDaddy and IONOS into Cloudflare; both legacy registrar accounts closed"
                },
                {
                    "metric": "Custom conversion events",
                    "value": "6",
                    "detail": "cta_click, podcast_play, product_viewed, service_viewed, begin_checkout, purchase"
                },
                {
                    "metric": "Data destinations fed automatically",
                    "value": "4",
                    "detail": "GA4, Search Console, BigQuery and MotherDuck via a WordPress to GCS to MotherDuck ETL"
                },
                {
                    "metric": "Report licensing protection",
                    "value": "per-page watermark",
                    "detail": "'Report Licensed to {Email}' on every page, served only to the purchasing account in production"
                },
                {
                    "metric": "Stripe and email observability",
                    "value": "2 log tables + WP Admin UI",
                    "detail": "wp_recon_logs_stripe and wp_recon_logs_email, filterable in the dashboard"
                },
                {
                    "metric": "Hosting cost correction",
                    "value": "$400 avoided / $171 credited",
                    "detail": "Kinsta moved from visits-based to bandwidth-based billing"
                },
                {
                    "metric": "Analyst hours returned",
                    "value": "20-40 hrs/mo",
                    "detail": "Transcription, content re-typing, report fulfillment and manual invoicing removed from a five-person team",
                    "estimated": true
                },
                {
                    "metric": "Indexable page count from transcripts",
                    "value": "5-10x",
                    "detail": "248 episodes converted from audio-only to full-text landing pages",
                    "estimated": true
                },
                {
                    "metric": "Addressable buying window",
                    "value": "24/7",
                    "detail": "Reports previously sold only during business hours through a human",
                    "estimated": true
                }
            ]
        },
        {
            "client": "Recon Analytics",
            "url": "https://www.kevinleary.net/case-studies/wordpress-ecommerce-recon-analytics/",
            "client_website": "https://www.reconanalytics.com",
            "summary": "Selling research reports through WooCommerce meant maintaining a product catalog the firm did not need; a Stripe Checkout implementation ten times smaller supports thousands of digital products at 60% lower annual maintenance cost.",
            "client_location": "MA, United States",
            "focus": [
                "API Development",
                "eCommerce",
                "Payments Integration",
                "Performance Optimization"
            ],
            "tech_stack": [
                "Stripe",
                "WordPress"
            ],
            "results": [
                {
                    "metric": "Code footprint vs WooCommerce",
                    "value": "10x smaller",
                    "detail": "API-driven architecture with zero database bloat"
                },
                {
                    "metric": "Digital products supported",
                    "value": "thousands",
                    "detail": "Dynamic pricing through Stripe Checkout Sessions"
                },
                {
                    "metric": "Annual maintenance cost",
                    "value": "-60%",
                    "detail": "Technical debt removed with the eCommerce plugin stack",
                    "estimated": true
                }
            ]
        },
        {
            "client": "RW Thrive",
            "url": "https://www.kevinleary.net/case-studies/rw-thrive/",
            "client_website": "https://www.crexo.com",
            "summary": "A new holding company had three weeks to reach the market, and a 255-page HubSpot export that needed complete rework; crexo.com launched in 23 days and strawbees.com moved onto owned infrastructure with 321 redirects, recovering 15-30% organic traffic and avoiding $10-30k a year in platform cost.",
            "client_location": "2709 Mondovi Road, Eau Claire, WI 54701, United States",
            "focus": [
                "Analytics and Measurement",
                "Content Management",
                "Design Implementation",
                "DevOps and Deployment",
                "Front-end Development",
                "Information Architecture",
                "Maintenance and Support",
                "Performance Optimization",
                "Privacy and Consent",
                "SEO",
                "Theme Development",
                "Website Migration",
                "WordPress Development"
            ],
            "tech_stack": [
                "ACF Local JSON",
                "Advanced Custom Fields",
                "Cloudflare",
                "CodeKit",
                "GA4",
                "Git",
                "Google Consent Mode",
                "Google Search Console",
                "Google Tag Manager",
                "Gutenberg",
                "HTML Tidy",
                "HubSpot",
                "HubSpot CMS",
                "JavaScript",
                "jQuery",
                "Kinsta",
                "PHP",
                "Prettier",
                "SCSS",
                "Shopify",
                "Static HTML",
                "WordPress",
                "WP-CLI"
            ],
            "results": [
                {
                    "metric": "Engagement phases",
                    "value": "8 months",
                    "detail": "From the first Strawbees work through the final scheduled call"
                },
                {
                    "metric": "Brand launch turnaround",
                    "value": "23 days",
                    "detail": "Empty crexo.com repository to public brand launch in 23 days"
                },
                {
                    "metric": "Static pages migrated off HubSpot CMS",
                    "value": "255",
                    "detail": "strawbees.com exported, repaired, relinked and rehosted on Kinsta"
                },
                {
                    "metric": "Broken URLs redirected",
                    "value": "321",
                    "detail": "Against 600+ Google Search Console errors, with a second sweep adding rewrites and a 302 homepage fallback"
                },
                {
                    "metric": "Child brands served from one codebase",
                    "value": "4 + DataSnap",
                    "detail": "BirdBrain Technologies, Strawbees, Tinkering Labs and Tinkering Labs Resources, plus the DataSnap catalog"
                },
                {
                    "metric": "CMS-managed navigation zones",
                    "value": "6",
                    "detail": "Off Canvas, Utility (Main), Utility (Brands), Header, Footer, Social"
                },
                {
                    "metric": "SCSS component partials",
                    "value": "18",
                    "detail": "Brands, products, support, awards, news, posts, hero, header, footer, forms, DataSnap and 404"
                },
                {
                    "metric": "Front-end frameworks used",
                    "value": "0",
                    "detail": "basic-wp starter theme: PHP, SCSS, vanilla JS and ACF, no React, Vue, Tailwind or page builder"
                },
                {
                    "metric": "Third-party CMS licence eliminated",
                    "value": "HubSpot CMS",
                    "detail": "Strawbees hosting and templating brought in-house onto infrastructure RW Thrive controls"
                },
                {
                    "metric": "Analytics ownership",
                    "value": "transferred to client",
                    "detail": "GA4 and GTM with Consent Mode built, then admin rights handed to the marketing team"
                },
                {
                    "metric": "Portfolio migration plan delivered",
                    "value": "delivered in writing",
                    "detail": "A written plan covering the group's remaining web properties"
                },
                {
                    "metric": "Organic traffic recovered on strawbees.com",
                    "value": "+15-30%",
                    "detail": "Typical recovery once 321 indexed URLs stop returning 404 and Search Console errors clear",
                    "estimated": true
                },
                {
                    "metric": "Marketing time returned",
                    "value": "8-15 hrs/mo",
                    "detail": "DataSnap in Gutenberg, per-brand ACF link fields, six editable menu zones and duplicate-a-brand replacing developer-mediated edits",
                    "estimated": true
                },
                {
                    "metric": "Annual platform cost avoided",
                    "value": "$10-30k",
                    "detail": "HubSpot CMS Hub licensing for a multi-page marketing site, replaced by Kinsta hosting",
                    "estimated": true
                },
                {
                    "metric": "Time to launch the next brand page",
                    "value": "hours, not weeks",
                    "detail": "Duplicate an existing brand, set the ACF fields, publish",
                    "estimated": true
                }
            ]
        },
        {
            "client": "SafeHire Inc.",
            "url": "https://www.kevinleary.net/case-studies/safehire-inc/",
            "client_website": "https://www.askcip.com",
            "summary": "Background screening ran on printed forms, email attachments and a spreadsheet; one Laravel application took intake, e-signature, investigation, PDF reporting and card-on-file payment end to end, cutting turnaround 70% and collecting on 100% of completed reports.",
            "client_location": "801 Cambridge Street, Cambridge, MA 02141, United States",
            "focus": [
                "API Integration",
                "Cloud Infrastructure",
                "Email Deliverability",
                "Laravel Development",
                "Maintenance and Support",
                "Payment Integration",
                "PDF Generation",
                "Product Development",
                "Security and Compliance",
                "Web Application Development"
            ],
            "tech_stack": [
                "Algolia Places",
                "Amazon S3",
                "AWS",
                "Blade",
                "DOMPDF",
                "fail2ban",
                "Google Places API",
                "Laravel",
                "Laravel Forge",
                "Mailgun",
                "Mailhog",
                "MySQL",
                "PHP",
                "Stripe",
                "TinyMCE",
                "Vue"
            ],
            "results": [
                {
                    "metric": "Manual process replaced end to end",
                    "value": "1 application",
                    "detail": "Intake, e-signature, investigation, PDF report, delivery and payment, previously email, paper and a spreadsheet"
                },
                {
                    "metric": "Screening services in the product catalog",
                    "value": "13",
                    "detail": "Each with its own report section, conditional PDF rendering, per-unit pricing and Stripe line item"
                },
                {
                    "metric": "Time in production",
                    "value": "5 years",
                    "detail": "Built and operated continuously for five years, until the client exited the background screening business"
                },
                {
                    "metric": "Sensitive documents served directly",
                    "value": "0",
                    "detail": "Every resume, signed release and CORI acknowledgement gated behind an ownership check and a 15-minute signed S3 URL"
                },
                {
                    "metric": "Stripe DMARC requirement",
                    "value": "met before deadline",
                    "detail": "SMTP DMARC policy in place ahead of the vendor deadline, keeping payment receipts and intake email deliverable"
                },
                {
                    "metric": "SSH brute-force exposure",
                    "value": "closed",
                    "detail": "Thousands of logged attempts against the production server ended with fail2ban and firewall rules"
                },
                {
                    "metric": "Background check turnaround time",
                    "value": "-70%",
                    "detail": "A private intake link and a drawn signature replacing the print, sign, scan and email loop",
                    "estimated": true
                },
                {
                    "metric": "Administrative effort",
                    "value": "-10 hrs/mo",
                    "detail": "Chasing forms, retyping boilerplate, assembling documents and raising invoices by hand, all removed",
                    "estimated": true
                },
                {
                    "metric": "Collection rate on completed reports",
                    "value": "100%",
                    "detail": "Payment taken from a card already on file the moment a report is marked complete",
                    "estimated": true
                }
            ]
        },
        {
            "client": "Saint-Gaudens Memorial",
            "url": "https://www.kevinleary.net/case-studies/saint-gaudens-memorial/",
            "client_website": "https://www.saint-gaudens.org",
            "summary": "A nonprofit was on failing shared hosting with no security edge, no measurement and no way to edit its own concerts page; hosting, DNS, WAF, analytics and Google Ad Grants were rebuilt in one engagement, activating up to $10k a month of in-kind ad spend and returning 10-20 staff hours a season.",
            "client_location": "139 Saint-Gaudens Road, Cornish, NH 03745, United States",
            "focus": [
                "Advertising Optimization",
                "Analytics and Measurement",
                "Attribution",
                "Content Management",
                "Conversion Tracking",
                "DevOps and Deployment",
                "Documentation",
                "Front-end Development",
                "Information Architecture",
                "Maintenance and Support",
                "Security and Compliance",
                "SEO",
                "Site Migration",
                "Spam and Abuse Prevention",
                "Technical SEO",
                "Theme Development",
                "WordPress Development"
            ],
            "tech_stack": [
                "ACF Local JSON",
                "Advanced Custom Fields",
                "Cloudflare",
                "CodeKit",
                "Composer",
                "GA4",
                "Git",
                "Google Ads",
                "Google Search Console",
                "Google Tag Manager",
                "Gutenberg",
                "JavaScript",
                "jQuery",
                "Kinsta",
                "PHP",
                "Rank Math",
                "Schema.org",
                "SCSS",
                "Tailwind CSS",
                "Timber",
                "Twig",
                "WordPress",
                "WP-CLI"
            ],
            "results": [
                {
                    "metric": "Security threats mitigated",
                    "value": "44,207 in one month",
                    "detail": "Cloudflare's own monthly report for the month after the edge cutover, above network average for the site"
                },
                {
                    "metric": "Kickoff call to hardened, migrated site",
                    "value": "1 day",
                    "detail": "GoDaddy to Cloudflare and Kinsta, local environment, deploy script and rate limiting all live the day of kickoff"
                },
                {
                    "metric": "CMS fields replacing hard-coded content",
                    "value": "30 across 6 tabs",
                    "detail": "Programming page, plus 3 tabs on Concerts - both previously editable only in the Twig template"
                },
                {
                    "metric": "ACF field groups under version control",
                    "value": "29",
                    "detail": "ACF Local JSON in config/, so field changes deploy with the code"
                },
                {
                    "metric": "Reprint-free print campaign codes",
                    "value": "2",
                    "detail": "rack-card and trifold-direct-mail, both repointable from the WordPress admin indefinitely"
                },
                {
                    "metric": "Hard-coded meta tag blocks removed",
                    "value": "5",
                    "detail": "Title, description, Open Graph, Twitter Card and keywords, all overriding Rank Math on a theme with no wp_head()"
                },
                {
                    "metric": "Custom SEO variables for the concert season",
                    "value": "3",
                    "detail": "%concert_date%, %concert_time% and %concert_intro%, so every concert self-optimizes"
                },
                {
                    "metric": "Ad Grants campaigns restructured",
                    "value": "5 themed campaigns",
                    "detail": "Brand, Visit, Concerts, Sculptor and Exhibitions, plus 44 keywords and expanded geographic targeting"
                },
                {
                    "metric": "Ad Grants eligibility",
                    "value": "preserved",
                    "detail": "GA4 key events imported as Google Ads conversion actions, meeting the monthly conversion requirement"
                },
                {
                    "metric": "Redundant plugins removed",
                    "value": "3",
                    "detail": "Site Kit and two header/footer script plugins, replaced by gtag loaded directly in the theme"
                },
                {
                    "metric": "Documentation and training batch",
                    "value": "6 items",
                    "detail": "Concerts CMS, menu and QR documentation, YouTube embed fix and plugin guidance"
                },
                {
                    "metric": "Recurring seasonal maintenance eliminated",
                    "value": "Programming + Concerts",
                    "detail": "Both pages were rebuilt by hand each year; both now rebuild from content the staff already enters"
                },
                {
                    "metric": "Staff time returned per season",
                    "value": "10-20 hrs/yr",
                    "detail": "Programming and concerts pages, menu labels, QR destinations and press/blog moved from developer tickets to admin screens",
                    "estimated": true
                },
                {
                    "metric": "Developer spend avoided per season",
                    "value": "$1,500-3,000/yr",
                    "detail": "The annual rebuild-the-programming-page engagement that no longer needs to happen",
                    "estimated": true
                },
                {
                    "metric": "Organic visibility",
                    "value": "+20-40%",
                    "detail": "Rank Math actually taking effect after five overriding tag blocks were removed and wp_head() restored, plus per-concert SEO variables",
                    "estimated": true
                },
                {
                    "metric": "Ad Grants spend activated",
                    "value": "up to $10k/mo in-kind",
                    "detail": "Google Ad Grants awards up to $10,000/month in search advertising, and only serves while the account records conversions",
                    "estimated": true
                },
                {
                    "metric": "Hosting cost reduced",
                    "value": "$200-500/yr",
                    "detail": "GoDaddy web hosting cancelled after the Kinsta migration, registrar retained",
                    "estimated": true
                },
                {
                    "metric": "Print campaign attribution",
                    "value": "0% to measured",
                    "detail": "A direct-mail trifold and NPS rack cards that had \"no way to track the results\" now report scans as named GA4 campaigns",
                    "estimated": true
                }
            ]
        },
        {
            "client": "SBLI",
            "url": "https://www.kevinleary.net/case-studies/wordpress-ecommerce-sbli/",
            "client_website": "https://www.sbli.com/",
            "summary": "Quote to bind involved a manual step at every stage; a custom eCommerce and application workflow automated the whole path for eight-plus years and lifted return on advertising spend 45%.",
            "client_location": "Woburn, MA, United States",
            "focus": [
                "Custom Plugin Development",
                "eCommerce",
                "Growth Consulting",
                "Payments Integration",
                "Server-Side Tracking"
            ],
            "tech_stack": [
                "Angular",
                "Laravel",
                "Stripe",
                "WordPress"
            ],
            "results": [
                {
                    "metric": "Quote-to-bind workflow",
                    "value": "fully automated",
                    "detail": "Users quote, apply and pay for year one without agent intervention"
                },
                {
                    "metric": "Platform lifespan",
                    "value": "8+ years",
                    "detail": "Pricing engine and application flow reliable and performant throughout"
                },
                {
                    "metric": "Return on ad spend",
                    "value": "+45%",
                    "detail": "Server-side conversion accuracy feeding campaign optimization",
                    "estimated": true
                }
            ]
        },
        {
            "client": "SBLI",
            "url": "https://www.kevinleary.net/case-studies/wordpress-developer-sbli/",
            "client_website": "https://www.sbli.com/",
            "summary": "An insurer needed a quoting engine that actuarial staff could republish without a developer; the custom pricing platform ran for eight years, generated hundreds of thousands of leads and lifted conversions 362%.",
            "client_location": "Woburn, MA, United States",
            "focus": [
                "Advertising Optimization",
                "Analytics and Measurement",
                "API Development",
                "Custom Plugin Development",
                "WordPress Development"
            ],
            "tech_stack": [
                "Angular",
                "Laravel",
                "MySQL",
                "Segment",
                "WordPress"
            ],
            "results": [
                {
                    "metric": "Pricing engine uptime",
                    "value": "8 years",
                    "detail": "Ran in production generating leads with minimal upkeep"
                },
                {
                    "metric": "Leads generated",
                    "value": "hundreds of thousands",
                    "detail": "Real-time quoting running from launch onward"
                },
                {
                    "metric": "Conversions",
                    "value": "+362%",
                    "detail": "Full-funnel tracking including offline conversions from underwriting"
                }
            ]
        },
        {
            "client": "SBLI",
            "url": "https://www.kevinleary.net/case-studies/sbli/",
            "client_website": "https://www.sbli.com/",
            "summary": "A direct-to-consumer life insurer could not connect ad spend to policies actually issued across a 90-day underwriting cycle; a custom quoting engine, digital application and Segment-to-BigQuery pipeline that fed underwriting outcomes back to the ad platforms grew conversions 362% and cut acquisition cost 25%.",
            "client_location": "Woburn, MA, United States",
            "focus": [
                "Advertising Optimization",
                "Analytics and Measurement",
                "API Development",
                "Attribution",
                "Conversion Tracking",
                "CRM Integration",
                "Custom Plugin Development",
                "Data Warehousing",
                "eCommerce",
                "Growth Consulting",
                "Maintenance and Support",
                "Payments Integration",
                "Security and Compliance",
                "Server-Side Tracking",
                "Technical SEO",
                "Theme Development",
                "WordPress Development"
            ],
            "tech_stack": [
                "Advanced Custom Fields",
                "Angular",
                "AngularJS",
                "Azure",
                "BigQuery",
                "Bulma",
                "Express",
                "GA4",
                "Google Tag Manager",
                "Gravity Forms",
                "Heroku",
                "HubSpot",
                "Lob",
                "Looker Studio",
                "MySQL",
                "Node.js",
                "PHP",
                "SCSS",
                "Segment",
                "SendGrid",
                "SOAP",
                "Stripe",
                "Tableau",
                "Trustpilot",
                "Twig",
                "Twilio",
                "TypeScript",
                "WordPress",
                "WP Engine",
                "Yoast SEO"
            ],
            "results": [
                {
                    "metric": "Years in production",
                    "value": "8.6",
                    "detail": "Eight and a half years in production, spanning WordPress 4.x through 6.x"
                },
                {
                    "metric": "Developers on the consumer platform",
                    "value": "1",
                    "detail": "Quoting engine, online application, lead pipeline and analytics all built and maintained solo"
                },
                {
                    "metric": "Angular application surface",
                    "value": "31 components / 17 services",
                    "detail": "apply.sbli.com across 65 TypeScript files, with a WordPress PHP backend serving as the API layer"
                },
                {
                    "metric": "Custom PHP classes in one plugin",
                    "value": "31",
                    "detail": "Pricing, CRM, webhooks, analytics, security, SEO and redirects isolated from theme and content code"
                },
                {
                    "metric": "Documented Segment events",
                    "value": "37",
                    "detail": "Named on the Object Action Framework with properties mapped to ACORD life and annuity data standards"
                },
                {
                    "metric": "Partner lead webhooks in production",
                    "value": "4",
                    "detail": "PolicyScout, Mediaforce, ClientUp and a catch-all, each validating, logging, submitting a SOAP CreateLead and writing the result back"
                },
                {
                    "metric": "Rate table dimensions",
                    "value": "6 classes \u00d7 6 bands",
                    "detail": "Coverage from $100,000 to $5,000,000, imported straight from the actuarial XLSX"
                },
                {
                    "metric": "Time to publish new actuarial rates",
                    "value": "minutes",
                    "detail": "A dated import URL rebuilds the rate table from the spreadsheet, with no deploy and no developer"
                },
                {
                    "metric": "Handover documents written",
                    "value": "12",
                    "detail": "Angular architecture, Segment schema, SOAP interface spec, build and deploy runbooks, plus live knowledge-transfer sessions"
                },
                {
                    "metric": "Conversions",
                    "value": "+362%",
                    "detail": "Full-funnel tracking including offline conversions from underwriting"
                },
                {
                    "metric": "Attribution window covered",
                    "value": "90+ days",
                    "detail": "Ad click through medical exam to issued policy, reassembled in BigQuery"
                },
                {
                    "metric": "Recovered conversions from server-side tracking",
                    "value": "+25%",
                    "detail": "Facebook Conversions API and Measurement Protocol events with deduplication, capturing what browser privacy restrictions drop",
                    "estimated": true
                },
                {
                    "metric": "Customer acquisition cost",
                    "value": "-25%",
                    "detail": "Campaigns optimizing on policies issued rather than leads captured",
                    "estimated": true
                },
                {
                    "metric": "Wasted spend on leads that never underwrite",
                    "value": "-30%",
                    "detail": "Underwriting outcomes fed back to ad platforms so bidding stopped rewarding unqualified applicants",
                    "estimated": true
                },
                {
                    "metric": "Vendor-to-vendor reporting variance",
                    "value": "under 5%",
                    "detail": "One event definition distributed uniformly to every advertising vendor instead of each counting its own way",
                    "estimated": true
                }
            ]
        },
        {
            "client": "SBLI",
            "url": "https://www.kevinleary.net/case-studies/gtm-sbli/",
            "client_website": "https://www.sbli.com/",
            "role": "GTM Consultant",
            "project": "Unified Cross-Platform Conversion Tracking with Server-Side Events and Offline Integration",
            "summary": "Every advertising vendor counted conversions its own way across a 90-day insurance sales cycle; one shared event specification with server-side and offline conversions cut customer acquisition cost 30%.",
            "client_location": "Woburn, MA, United States",
            "focus": [
                "Advertising Optimization",
                "Attribution",
                "Data Warehousing",
                "Google Tag Manager",
                "Server-Side Tracking"
            ],
            "tech_stack": [
                "BigQuery",
                "Google Tag Manager",
                "Looker",
                "Microsoft Power BI",
                "Tableau",
                "WordPress"
            ],
            "results": [
                {
                    "metric": "Attribution window",
                    "value": "90+ days",
                    "detail": "Multi-touch attribution spanning online and offline underwriting touchpoints"
                },
                {
                    "metric": "Event definitions across vendors",
                    "value": "1 shared spec",
                    "detail": "Every ad vendor and internal team referencing the same conversion data"
                },
                {
                    "metric": "Customer acquisition cost",
                    "value": "-30%",
                    "detail": "Consistent data flowing to every ad platform, optimized with confidence",
                    "estimated": true
                }
            ]
        },
        {
            "client": "The World Bank",
            "url": "https://www.kevinleary.net/case-studies/wordpress-developer-worldbank/",
            "client_website": "https://www.worldbank.org",
            "summary": "Publishing a research report took weeks of manual production work; a custom WordPress publishing system delivered 480+ reports to 180 countries and cut time to publish 80%.",
            "client_location": "Washington, DC, United States",
            "focus": [
                "API Development",
                "Custom Plugin Development",
                "WordPress Development"
            ],
            "tech_stack": [
                "WordPress"
            ],
            "results": [
                {
                    "metric": "Reports published",
                    "value": "480+",
                    "detail": "Unique COVID-19 country reports generated through the PDF system"
                },
                {
                    "metric": "Countries reached",
                    "value": "180",
                    "detail": "Status reports distributed globally during the pandemic"
                },
                {
                    "metric": "Time to publish a report",
                    "value": "-80%",
                    "detail": "Automated generation replacing manual document production",
                    "estimated": true
                }
            ]
        },
        {
            "client": "TripAdvisor",
            "url": "https://www.kevinleary.net/case-studies/wordpress-developer-tripadvisor/",
            "client_website": "https://www.tripadvisor.com/blog",
            "summary": "Twelve localized domains needed one editorial platform without a multisite network to maintain; a single custom WordPress install served all of them for ten years and avoided 70% of the maintenance overhead.",
            "client_location": "Needham, MA, United States",
            "focus": [
                "Headless WordPress",
                "Performance Optimization",
                "Theme Development",
                "WordPress Development"
            ],
            "tech_stack": [
                "Angular",
                "nginx",
                "WordPress"
            ],
            "results": [
                {
                    "metric": "Localized domains from one install",
                    "value": "12",
                    "detail": "A single WordPress install behind an nginx reverse proxy, no multisite"
                },
                {
                    "metric": "Theme lifespan",
                    "value": "10 years",
                    "detail": "Survived multiple corporate redesigns without a rebuild"
                },
                {
                    "metric": "Multisite maintenance overhead avoided",
                    "value": "-70%",
                    "detail": "One codebase and one install instead of a network per locale",
                    "estimated": true
                }
            ]
        },
        {
            "client": "TripAdvisor",
            "url": "https://www.kevinleary.net/case-studies/tripadvisor/",
            "client_website": "https://www.tripadvisor.com",
            "summary": "Eight country domains needed one editorial platform without the cost of a multisite network; a single install resolving locale from a proxy header served all of them for eight and a half years, cutting maintenance overhead 70% and preserving 90% of search equity when the property was retired.",
            "client_location": "Needham, MA, United States",
            "focus": [
                "API Development",
                "CMS Migration",
                "Custom Plugin Development",
                "Editorial Publishing",
                "Headless WordPress",
                "Internationalization",
                "Maintenance and Support",
                "Performance Optimization",
                "Security and Compliance",
                "Technical SEO",
                "Theme Development",
                "WordPress Development"
            ],
            "tech_stack": [
                "Advanced Custom Fields",
                "AngularJS",
                "Apple News Format",
                "Elementor",
                "Express",
                "Google Tag Manager",
                "Heroku",
                "miniOrange SAML",
                "MySQL",
                "nginx",
                "Node.js",
                "Photon CDN",
                "PHP",
                "SCSS",
                "Timber",
                "TripAdvisor Partner API",
                "Twig",
                "WordPress",
                "WP Engine",
                "Yoast SEO"
            ],
            "results": [
                {
                    "metric": "Country domains served from one WordPress install",
                    "value": "8",
                    "detail": "Five languages behind an nginx reverse proxy, with the locale resolved from an X-TripAdvisor-Forwarded-Host header instead of a multisite network"
                },
                {
                    "metric": "Years in production",
                    "value": "8.5",
                    "detail": "Eight and a half years, spanning WordPress 4.x through 6.x"
                },
                {
                    "metric": "Brand identities absorbed without a rebuild",
                    "value": "3",
                    "detail": "Including a wordmark change applied across content, post meta, the options table and the theme source"
                },
                {
                    "metric": "Custom JSON API routes",
                    "value": "9",
                    "detail": "A shared request class with parameter whitelisting, per-locale caching and a 10-minute public cache lifetime, built instead of the WP REST API"
                },
                {
                    "metric": "Duplicate posts required for UK English",
                    "value": "0",
                    "detail": "British spelling and local links generated at request time from a curated word list rather than maintained as parallel content"
                },
                {
                    "metric": "Cross-domain content leaks",
                    "value": "0",
                    "detail": "A post requested on a domain it is not published to returns a hard 404, not a redirect or a soft canonical"
                },
                {
                    "metric": "Hand-mapped 301 redirects at retirement",
                    "value": "109",
                    "detail": "Each deep-linked to its replacement article across 7 country domains, plus a host-aware catch-all to /Articles"
                },
                {
                    "metric": "Templates, JS modules and SCSS partials in one theme",
                    "value": "41 / 68 / 35",
                    "detail": "With 8 compiled per-locale translation bundles"
                },
                {
                    "metric": "Sister properties delivered",
                    "value": "4",
                    "detail": "The engineering blog, the Japanese travel guide, a custom Apple News plugin and an experimental metadata API"
                },
                {
                    "metric": "Maintenance overhead versus a multisite network",
                    "value": "-70%",
                    "detail": "One install, one plugin stack and one deploy pipeline instead of eight",
                    "estimated": true
                },
                {
                    "metric": "Search equity preserved through retirement",
                    "value": "90%",
                    "detail": "Deep-linked per-article 301s with host-aware matching, replacing the ranking loss a blanket redirect or a shutdown would have caused",
                    "estimated": true
                },
                {
                    "metric": "Editorial effort for multi-market publishing",
                    "value": "-50%",
                    "detail": "One post syndicated across locales by taxonomy with generated UK English, rather than a separate copy per market",
                    "estimated": true
                }
            ]
        },
        {
            "client": "Twindo",
            "url": "https://www.kevinleary.net/case-studies/twindo/",
            "client_website": "https://www.twindo.com",
            "summary": "Paid Google Ads traffic was recording in HubSpot as organic search, and the funnel spanned two domains with no consent architecture; first-party attribution, server-decided consent and a full GTM audit corrected paid-search attribution 25-40% and returned 6-12 marketing hours a month.",
            "client_location": "Boulder, CO, United States",
            "focus": [
                "Advertising Optimization",
                "Analytics and Measurement",
                "Answer Engine Optimization",
                "API Development",
                "Attribution",
                "Content Strategy",
                "Conversion Tracking",
                "CRM Integration",
                "Custom Plugin Development",
                "DevOps and Deployment",
                "Documentation",
                "Front-end Development",
                "GEO",
                "Google Tag Manager",
                "Information Architecture",
                "Maintenance and Support",
                "Performance Optimization",
                "Privacy and Consent",
                "Security and Compliance",
                "SEO",
                "Site Migration",
                "Technical SEO",
                "Theme Development",
                "Web Design",
                "WordPress Development"
            ],
            "tech_stack": [
                "Advanced Custom Fields",
                "BEM",
                "CodeKit",
                "CookieConsent",
                "GA4",
                "Git",
                "Global Privacy Control",
                "Google Ads",
                "Google Consent Mode v2",
                "Google Search Console",
                "Google Tag Manager",
                "Gravity Forms",
                "Gutenberg",
                "HubSpot",
                "JavaScript",
                "Livid",
                "Meta Conversions API",
                "PHP",
                "Schema.org",
                "Screaming Frog",
                "SCSS",
                "Segment",
                "Tailwind CSS",
                "Vimeo",
                "WordPress",
                "WP Engine",
                "WP-CLI",
                "Yoast SEO"
            ],
            "results": [
                {
                    "metric": "Cumulative Layout Shift",
                    "value": "1.03 \u2192 0.24",
                    "detail": "GTM switched to the beacon transport type, with no change to what is tracked"
                },
                {
                    "metric": "Largest Contentful Paint",
                    "value": "0.91s \u2192 0.41s",
                    "detail": "Same change"
                },
                {
                    "metric": "Domain migration",
                    "value": "canvas.io \u2192 www.twindo.com",
                    "detail": "Launched with 301s and attribution continuity preserved"
                },
                {
                    "metric": "GTM tags audited",
                    "value": "40",
                    "detail": "Every tag, trigger and variable reviewed and corrected against the measurement plan"
                },
                {
                    "metric": "Attribution parameters captured",
                    "value": "5 UTMs + 9 click IDs",
                    "detail": "First-party JSON cookie scoped to .twindo.com so the app subdomain reads the same record"
                },
                {
                    "metric": "Legacy support URLs verified",
                    "value": "41 of 41",
                    "detail": "Automated shell test checked into the repo and re-run against production after deploy"
                },
                {
                    "metric": "Consent architecture",
                    "value": "Server-side GeoIP, dual-region",
                    "detail": "US opt-out with GPC honored, opt-in everywhere else, resolved in PHP before any tag loads"
                },
                {
                    "metric": "Homepage sections moved into the CMS",
                    "value": "11",
                    "detail": "Text, buttons, images, videos, testimonials, stats and FAQ, with shipped content as fallback"
                },
                {
                    "metric": "Machine-readable company record",
                    "value": "/llm-api/",
                    "detail": "Generated live from the CMS and advertised from a meta tag, in place of a hand-maintained llms.txt"
                },
                {
                    "metric": "Signup CTAs corrected",
                    "value": "6",
                    "detail": "Buttons pointing at /pricing/ instead of app.twindo.com/signup"
                },
                {
                    "metric": "Paid-search leads correctly attributed",
                    "value": "+25-40%",
                    "detail": "Google Ads leads previously misfiled as Organic Search in HubSpot by the ce=false consent flag",
                    "estimated": true
                },
                {
                    "metric": "Mobile PageSpeed score",
                    "value": "+25-40 points",
                    "detail": "Tailwind removal, GSAP deletion, async fonts, icon-font removal, WebP delivery and image sizing",
                    "estimated": true
                },
                {
                    "metric": "Marketing time returned",
                    "value": "6-12 hrs/mo",
                    "detail": "Homepage CMS fields, ACF JSON deployment and owned support content replacing developer-mediated edits",
                    "estimated": true
                },
                {
                    "metric": "Wasted ad spend avoided",
                    "value": "10-20%",
                    "detail": "Typical reallocation once GA4, HubSpot, Meta and Google Ads stop disagreeing about channel",
                    "estimated": true
                }
            ]
        },
        {
            "client": "Vital Strategies",
            "url": "https://www.kevinleary.net/case-studies/gtm-vital-strategies/",
            "client_website": "https://www.vitalstrategies.org",
            "role": "GTM Consultant",
            "project": "GA4 Migration, Conversion Tracking Architecture, and Multi-Touch Attribution",
            "summary": "Nobody could say which campaigns actually drove donations; a GA4 migration with multi-touch attribution and Looker reporting quantified the real traffic gap and cut cost per donation 20%.",
            "client_location": "New York, NY, United States",
            "focus": [
                "Analytics and Measurement",
                "Attribution",
                "Google Tag Manager",
                "Migrations"
            ],
            "tech_stack": [
                "BigQuery",
                "Cloudflare",
                "GA4",
                "Google Tag Manager",
                "Looker Studio",
                "WordPress"
            ],
            "results": [
                {
                    "metric": "Reported vs actual traffic gap",
                    "value": "quantified",
                    "detail": "Cloudflare integration exposing the true difference for the first time"
                },
                {
                    "metric": "Donation attribution",
                    "value": "multi-touch",
                    "detail": "Looker reporting showing which campaigns actually drive giving"
                },
                {
                    "metric": "Cost per donation",
                    "value": "-20%",
                    "detail": "Campaign spend shifted onto the channels attribution proved out",
                    "estimated": true
                }
            ]
        },
        {
            "client": "Yakima Valley Farm Workers Clinic",
            "url": "https://www.kevinleary.net/case-studies/yakima-valley-workers-clinic/",
            "client_website": "https://www.yvfwc.com",
            "summary": "A community health network needed an inherited agency build taken over and its Taleo careers system rebuilt; customization was quarantined into one maintainable plugin, the patient-facing clinic locator protected, and live job listings keep 100% of open requisitions current, cutting cost per application 10-20%.",
            "client_location": "601 N. Keys Rd., Yakima, WA 98901, United States",
            "focus": [
                "API Integration",
                "Content Management",
                "Custom Plugin Development",
                "Database Optimization",
                "DevOps and Deployment",
                "Documentation",
                "Front-end Development",
                "Information Architecture",
                "Maintenance and Support",
                "Performance Optimization",
                "Security and Compliance",
                "Theme Development",
                "WordPress Development"
            ],
            "tech_stack": [
                "Advanced Custom Fields",
                "Beaver Builder",
                "Cloudflare",
                "Composer",
                "FacetWP",
                "Git",
                "Google Maps",
                "Gravity Forms",
                "JavaScript",
                "jQuery",
                "Kinsta",
                "Oracle Taleo",
                "PHP",
                "Query Monitor",
                "SCSS",
                "SearchWP",
                "Twig",
                "WordPress",
                "WP Engine",
                "WP Migrate DB Pro",
                "WP Rocket",
                "WP-CLI",
                "WPML",
                "Yoast SEO"
            ],
            "results": [
                {
                    "metric": "Engagement phases",
                    "value": "2",
                    "detail": "An initial platform takeover, then a later rebuild of the Taleo careers system"
                },
                {
                    "metric": "Environments established",
                    "value": "3",
                    "detail": "Local, staging and live with git deploy and database sync - built twice, the second time on Kinsta"
                },
                {
                    "metric": "Plugins inherited and brought under management",
                    "value": "38",
                    "detail": "Including two competing events calendars and a seven-plugin WPML stack"
                },
                {
                    "metric": "Plugin updates shipped",
                    "value": "33 bumps / 21 packages",
                    "detail": "Four documented cycles, each tested locally before production"
                },
                {
                    "metric": "WP Rocket options scoped to one URL path",
                    "value": "81 filters",
                    "detail": "Full caching site-wide, fully disabled on /locations/ so the clinic locator cannot break"
                },
                {
                    "metric": "Customizations kept out of agency code",
                    "value": "100%",
                    "detail": "Every change lives in yvfwc-functionality; the Modern Tribe core plugin and theme were never edited"
                },
                {
                    "metric": "Task first reported as unachievable, then delivered",
                    "value": "Maps info window close control",
                    "detail": "Blocked by the vendor's missing build tooling, then shipped and extended with map-to-list focus"
                },
                {
                    "metric": "Clinical specialties mapped into the careers taxonomy",
                    "value": "14",
                    "detail": "An ambiguous request drawn out into a concrete provider list, then built"
                },
                {
                    "metric": "Taleo integration corrections shipped together",
                    "value": "3",
                    "detail": "JobCategories migration, backward-compatible provider parameter, new [job_categories] shortcode"
                },
                {
                    "metric": "Job listings kept current without manual editing",
                    "value": "100% of open requisitions",
                    "detail": "Positions come from the live Taleo pull rather than hand-maintained pages",
                    "estimated": true
                },
                {
                    "metric": "Recruitment-marketing time recovered",
                    "value": "4-8 hrs/mo",
                    "detail": "Shortcode-driven listings, a live category list and the /shortcodes/ reference replacing developer-mediated changes",
                    "estimated": true
                },
                {
                    "metric": "Cost per application on paid recruitment",
                    "value": "-10-20%",
                    "detail": "Typical effect of accurate, complete and correctly categorized listings behind an active ad spend",
                    "estimated": true
                }
            ]
        }
    ],
    "faqs": [
        {
            "topic": "Getting Started",
            "description": "How engagements begin, who you work with, and what kind of businesses are a fit.",
            "questions": [
                {
                    "question": "What services does Kevinleary.net provide?",
                    "answer": "I provide senior WordPress, analytics and AI expertise embedded directly in your team, on retainer, for the long term. The work covers custom WordPress development, enterprise CMS and headless builds, analytics and tag management, SEO and AI visibility, security and performance, privacy and consent compliance, accessibility, BigQuery data engineering, custom eCommerce and digital growth consulting. All of it is done by one senior engineer rather than split across vendors or handed between departments.",
                    "short_answer": "Senior WordPress, analytics, data and AI consulting from one engineer, on retainer.",
                    "keywords": [
                        "services",
                        "wordpress consultant",
                        "fractional engineer",
                        "retainer"
                    ],
                    "service_url": "https://www.kevinleary.net/services/",
                    "url": "https://www.kevinleary.net/faqs/#what-services-does-kevinleary-net-provide"
                },
                {
                    "question": "How do we get started?",
                    "answer": "We start with a short call on Google Meet to discuss your business, your current systems and what is not working. From there I review the site, the tag manager, the warehouse or whatever is in scope and come back with a written plan of action. If it makes sense for both sides, I integrate with your team and get to work.",
                    "short_answer": "A short call, a review of your current setup, then a written plan.",
                    "keywords": [
                        "get started",
                        "consultation",
                        "onboarding",
                        "discovery"
                    ],
                    "service_url": "https://www.kevinleary.net/contact/",
                    "url": "https://www.kevinleary.net/faqs/#how-do-we-get-started"
                },
                {
                    "question": "Is the initial consultation free?",
                    "answer": "Yes. The first conversation is a short consultation to understand your goals and confirm the work is a fit. Deeper reviews such as theme audits, GTM container audits or a BigQuery warehouse diagnostic are paid engagements, and you receive a written assessment and roadmap from those whether or not we continue together.",
                    "short_answer": "The intro call is free; formal audits and diagnostics are paid.",
                    "keywords": [
                        "free consultation",
                        "intro call",
                        "paid audit"
                    ],
                    "service_url": "https://www.kevinleary.net/contact/",
                    "url": "https://www.kevinleary.net/faqs/#is-the-initial-consultation-free"
                },
                {
                    "question": "Who will I actually be working with?",
                    "answer": "Me. There are no account managers, project managers or junior developers in between. The person you talk to on the first call is the person writing the code, configuring the tag manager and building the pipelines, and that stays true for the length of the engagement.",
                    "short_answer": "Kevin, directly, for the entire engagement.",
                    "keywords": [
                        "who does the work",
                        "account manager",
                        "direct access"
                    ],
                    "service_url": "https://www.kevinleary.net/about/",
                    "url": "https://www.kevinleary.net/faqs/#who-will-i-actually-be-working-with"
                },
                {
                    "question": "How is this different from hiring an agency?",
                    "answer": "With an agency you get layers: an account manager relaying updates, junior developers doing the work and a senior person reviewing it occasionally. With me you work directly with the senior engineer doing the work, which means faster decisions, clearer communication and no handoffs between strategy and implementation. The scope is comparable to an agency; the overhead is not.",
                    "short_answer": "Same scope as an agency, without the layers or the handoffs.",
                    "keywords": [
                        "agency vs freelancer",
                        "consultant vs agency",
                        "overhead"
                    ],
                    "service_url": "https://www.kevinleary.net/services/",
                    "url": "https://www.kevinleary.net/faqs/#how-is-this-different-from-hiring-an-agency"
                },
                {
                    "question": "What kinds of businesses do you work with?",
                    "answer": "Mostly organizations whose website is business-critical and often audited: banking and credit unions, insurance, fintech, healthcare and pharma, publishers and subscription media, universities, B2B software and manufacturers with compliance obligations. The common thread is a marketing or product team that needs a senior technical partner they can rely on for years rather than a vendor for one project.",
                    "short_answer": "Regulated, high-traffic or subscription businesses with business-critical websites.",
                    "keywords": [
                        "industries",
                        "clients",
                        "fit",
                        "enterprise"
                    ],
                    "service_url": "https://www.kevinleary.net/work/",
                    "url": "https://www.kevinleary.net/faqs/#what-kinds-of-businesses-do-you-work-with"
                },
                {
                    "question": "Is my company too small, or too large, to work with you?",
                    "answer": "Size matters less than the shape of the need. The best fit is a team that has real technical work every month across WordPress, analytics, security or data, and wants one senior person accountable for all of it. Very small sites with occasional needs are usually better served by a maintenance plan from their host; very large organizations tend to work with me as a fractional specialist alongside their in-house teams.",
                    "short_answer": "Fit depends on having ongoing technical need, not company size.",
                    "keywords": [
                        "company size",
                        "small business",
                        "enterprise",
                        "fit"
                    ],
                    "service_url": "https://www.kevinleary.net/services/",
                    "url": "https://www.kevinleary.net/faqs/#is-my-company-too-small-or-too-large-to"
                },
                {
                    "question": "Do you take on one-off projects, or only ongoing retainers?",
                    "answer": "Most of my client relationships are monthly retainers, and that is the model I recommend because the work compounds: security, compliance, analytics and performance all decay without upkeep. Standalone projects such as a rebuild, a migration, an audit or a consent implementation do happen, and many of them turn into retainers once the launch is behind us.",
                    "short_answer": "Primarily retainers; standalone projects happen and often become retainers.",
                    "keywords": [
                        "one-off project",
                        "retainer",
                        "project vs retainer"
                    ],
                    "service_url": "https://www.kevinleary.net/services/",
                    "url": "https://www.kevinleary.net/faqs/#do-you-take-on-one-off-projects-or-only"
                },
                {
                    "question": "How soon can you start?",
                    "answer": "It depends on current commitments. I deliberately limit the number of clients I support at once so every engagement gets real attention, which means start dates vary. Urgent, well-defined work such as a security finding or a launch deadline can often be fit in quickly; a new retainer or a full rebuild is scheduled around existing obligations. The intro call is the fastest way to get a real answer.",
                    "short_answer": "Varies with current client load; ask on the intro call.",
                    "keywords": [
                        "availability",
                        "start date",
                        "capacity"
                    ],
                    "service_url": "https://www.kevinleary.net/contact/",
                    "url": "https://www.kevinleary.net/faqs/#how-soon-can-you-start"
                },
                {
                    "question": "Where are you located, and do you work remotely?",
                    "answer": "I am based outside Boston, Massachusetts and work remotely on Eastern time with clients across the US and abroad. Meetings happen on Google Meet or in your own tools, and I join your Slack, standups and ticketing systems as needed.",
                    "short_answer": "Boston area, remote, Eastern time.",
                    "keywords": [
                        "location",
                        "remote",
                        "boston",
                        "timezone"
                    ],
                    "service_url": "https://www.kevinleary.net/about/",
                    "url": "https://www.kevinleary.net/faqs/#where-are-you-located-and-do-you-work-remotely"
                },
                {
                    "question": "Do you work with agencies?",
                    "answer": "Yes. The most common arrangement is building custom WordPress themes from an agency's detailed Figma designs: pixel-accurate implementation of layout, typography and components, the animation and interaction work, an ACF block system so the client's editors can compose pages after launch, and performance, accessibility and security handled as part of the build rather than fixed afterward. I work in the agency's repositories and tools, hit their launch dates and hand off documented code. Direct client relationships remain the core of the practice, so agency projects are scheduled around retainer commitments.",
                    "short_answer": "Yes, most often building custom themes from an agency's detailed Figma designs.",
                    "keywords": [
                        "agency partner",
                        "white label wordpress",
                        "figma to wordpress",
                        "agency development"
                    ],
                    "service_url": "https://www.kevinleary.net/services/",
                    "url": "https://www.kevinleary.net/faqs/#do-you-work-with-agencies"
                },
                {
                    "question": "Do you work on platforms other than WordPress?",
                    "answer": "WordPress is the core of the practice, but not the limit of it. I build headless stacks with Strapi, Payload, Ghost or Craft behind Next.js or React frontends, custom PHP and Laravel applications, and the analytics, warehouse and advertising systems around any website regardless of platform. Hosted page builders such as Wix or Squarespace are not something I build on, though I can integrate tracking and data around them.",
                    "short_answer": "WordPress first, plus headless CMSs, Laravel, and platform-agnostic analytics and data work.",
                    "keywords": [
                        "platforms",
                        "not wordpress",
                        "headless",
                        "laravel",
                        "shopify"
                    ],
                    "service_url": "https://www.kevinleary.net/services/headless-cms-developer/",
                    "url": "https://www.kevinleary.net/faqs/#do-you-work-on-platforms-other-than-wordpress"
                }
            ]
        },
        {
            "topic": "Retainers & Working Together",
            "description": "How the retainer model works, communication, response times, reporting and team integration.",
            "questions": [
                {
                    "question": "How does a monthly retainer work?",
                    "answer": "A retainer reserves a standing block of my time each month for your business, scoped to the estimated level of effort your site and stack need. It covers the recurring work (update cycles, monitoring, security scans, compliance checks) plus whatever else comes up that month: new features, fixes, tracking changes, performance work or urgent same-day requests. You get a senior engineer who knows your codebase and your goals, available on a predictable basis, without hiring a full-time employee.",
                    "short_answer": "A reserved monthly block of senior time covering upkeep plus whatever your business needs.",
                    "keywords": [
                        "retainer",
                        "how it works",
                        "monthly",
                        "fractional"
                    ],
                    "service_url": "https://www.kevinleary.net/services/",
                    "url": "https://www.kevinleary.net/faqs/#how-does-a-monthly-retainer-work"
                },
                {
                    "question": "What does a WordPress maintenance retainer include?",
                    "answer": "A typical month includes plugin, theme, WordPress core and PHP update cycles applied locally, verified on staging and then deployed to production; daily vulnerability scanning with every alert reviewed by hand; error log triage before notices become outages; backup verification and a tested restore path; uptime, SSL and vulnerability monitoring with real alert triage; and a written monthly report of what changed, what was found and what I recommend next. Remaining time goes toward whatever else you need that month.",
                    "short_answer": "Tested update cycles, daily scans, log triage, backups, monitoring and a written monthly report.",
                    "keywords": [
                        "maintenance",
                        "care plan",
                        "updates",
                        "monitoring",
                        "monthly report"
                    ],
                    "service_url": "https://www.kevinleary.net/services/wordpress-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#what-does-a-wordpress-maintenance-retainer-include"
                },
                {
                    "question": "Can retainer time be used for new features and projects, not just maintenance?",
                    "answer": "Yes. Maintenance is the floor, not the ceiling. Time beyond the recurring upkeep goes to whatever moves the business that month: a new landing page system, a HubSpot integration, a GA4 event overhaul, a Core Web Vitals pass or a rebrand find-and-replace. Larger initiatives are planned across months so they fit alongside the routine work.",
                    "short_answer": "Yes, anything beyond routine upkeep is fair game.",
                    "keywords": [
                        "retainer scope",
                        "new features",
                        "projects"
                    ],
                    "service_url": "https://www.kevinleary.net/services/",
                    "url": "https://www.kevinleary.net/faqs/#can-retainer-time-be-used-for-new-features-and"
                },
                {
                    "question": "What are your response times, and do you offer an SLA?",
                    "answer": "Retainer clients get defined response windows written into the agreement, and same-day turnaround on urgent, time-sensitive items such as a legal page change, a promo swap or a broken checkout is normal work rather than an escalation. Proactive monitoring catches most problems before anyone on your side notices them, which is what keeps genuine emergencies rare.",
                    "short_answer": "Defined response windows for retainer clients, with same-day handling of urgent work.",
                    "keywords": [
                        "sla",
                        "response time",
                        "urgent",
                        "same-day"
                    ],
                    "service_url": "https://www.kevinleary.net/services/wordpress-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#what-are-your-response-times-and-do-you-offer"
                },
                {
                    "question": "How do we communicate day to day?",
                    "answer": "In whatever your team already uses. I join Slack channels, work tickets in Asana, Jira, ClickUp or Linear, submit pull requests to your repositories and attend standups or marketing syncs when they are useful. For questions that need a written answer, email works well; for anything urgent, a message or a call reaches me directly.",
                    "short_answer": "Your tools: Slack, Asana, Jira, Git, standups, email.",
                    "keywords": [
                        "communication",
                        "slack",
                        "asana",
                        "jira",
                        "standups"
                    ],
                    "service_url": "https://www.kevinleary.net/services/",
                    "url": "https://www.kevinleary.net/faqs/#how-do-we-communicate-day-to-day"
                },
                {
                    "question": "What happens if the site goes down at 2am?",
                    "answer": "Uptime, error log and vulnerability monitoring are configured so problems surface as a notification to me rather than a phone call from your CEO, and most incidents are caught and handled before they affect visitors. When something urgent does happen I respond quickly. Everything I build is also documented and stable enough that your own team can act in an emergency if I am unreachable.",
                    "short_answer": "Monitoring catches most issues first; urgent problems get a fast response; documentation covers the rest.",
                    "keywords": [
                        "downtime",
                        "emergency",
                        "after hours",
                        "outage"
                    ],
                    "service_url": "https://www.kevinleary.net/services/security-performance-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#what-happens-if-the-site-goes-down-at-2am"
                },
                {
                    "question": "How do you report on the work you do?",
                    "answer": "Retainer clients receive a written monthly report covering what changed, what was found and what I recommend next, in plain language a marketing lead or executive can read. Compliance and security findings are reported the same way, and for larger initiatives I provide progress updates against the agreed roadmap. Analytics and warehouse work is often reported through automated dashboards or scheduled email reports built as part of the engagement.",
                    "short_answer": "A plain-language monthly report, plus roadmap updates and automated dashboards where relevant.",
                    "keywords": [
                        "reporting",
                        "monthly report",
                        "status updates"
                    ],
                    "service_url": "https://www.kevinleary.net/services/",
                    "url": "https://www.kevinleary.net/faqs/#how-do-you-report-on-the-work-you-do"
                },
                {
                    "question": "Will you work alongside our in-house developers and marketers?",
                    "answer": "Yes, and many clients specifically value that. I integrate as a team member rather than a competing vendor: I follow your sprint cadence, use your branching and review process, share knowledge openly and explain architecture decisions in terms both engineers and marketers can act on. The goal is to strengthen your existing team, not replace it.",
                    "short_answer": "Yes. I embed with your team and follow your process.",
                    "keywords": [
                        "in-house team",
                        "collaboration",
                        "embedded"
                    ],
                    "service_url": "https://www.kevinleary.net/services/",
                    "url": "https://www.kevinleary.net/faqs/#will-you-work-alongside-our-in-house-developers-and"
                },
                {
                    "question": "Isn't it risky to depend on one person?",
                    "answer": "It can be, which is why process and documentation are built into every engagement. Code lives in your repositories with clean Git history, GTM containers follow standard, self-documenting patterns, server-side code and pipelines are documented, and deployment runbooks and CMS editing guides are written for your team. I have transitioned clients to in-house teams when they were ready, with no black boxes and no vendor lock-in.",
                    "short_answer": "Everything is documented, version-controlled and handoff-ready by design.",
                    "keywords": [
                        "dependency",
                        "bus factor",
                        "documentation",
                        "vendor lock-in"
                    ],
                    "service_url": "https://www.kevinleary.net/services/",
                    "url": "https://www.kevinleary.net/faqs/#isn-t-it-risky-to-depend-on-one-person"
                },
                {
                    "question": "What if we later want to bring the work in-house?",
                    "answer": "That is a supported outcome, not a threat. Knowledge transfer is part of the offboarding process: theme and pipeline documentation, environment runbooks, version control setup for multi-developer teams and walkthroughs for whoever takes over. Because the work was built on standard patterns from the start, a competent developer can pick up where I left off.",
                    "short_answer": "Documentation and knowledge transfer make an in-house handoff straightforward.",
                    "keywords": [
                        "handoff",
                        "offboarding",
                        "in-house",
                        "knowledge transfer"
                    ],
                    "service_url": "https://www.kevinleary.net/services/wordpress-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#what-if-we-later-want-to-bring-the-work"
                },
                {
                    "question": "Do you deliver strategy, or only implementation?",
                    "answer": "Both, from the same person. Most consultants hand over a deck or an audit PDF and leave implementation to someone else; I write the recommendation, build it, wire up the measurement and read the results myself. The strategy is better because it is informed by what is actually possible in your codebase, and the implementation is better because it was designed by the person who understands the goal.",
                    "short_answer": "Both. I recommend it, build it and measure it.",
                    "keywords": [
                        "strategy",
                        "implementation",
                        "execution",
                        "consulting"
                    ],
                    "service_url": "https://www.kevinleary.net/services/digital-growth-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#do-you-deliver-strategy-or-only-implementation"
                },
                {
                    "question": "How do you handle sensitive data and compliance requirements?",
                    "answer": "I have worked on systems with HIPAA, PCI, SOC 2, ITAR and GDPR obligations and follow secure development practices throughout: authenticated integrations, PII-free logging, credentials managed in configuration rather than code, least-privilege access and verified backup policies. I also respond to vendor security questionnaires, penetration test findings and audit reports as part of the engagement.",
                    "short_answer": "Secure development practices and experience under HIPAA, PCI, SOC 2, ITAR and GDPR.",
                    "keywords": [
                        "compliance",
                        "hipaa",
                        "soc2",
                        "itar",
                        "pci",
                        "data security"
                    ],
                    "service_url": "https://www.kevinleary.net/services/security-performance-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#how-do-you-handle-sensitive-data-and-compliance-requirements"
                },
                {
                    "question": "Do you offer 24/7 support?",
                    "answer": "On a large enough retainer with a dedicated block of time, yes. In practice that means early or late hours on business days, weekend work during crunch periods such as launches or migrations and occasional holiday coverage where the business type calls for it, such as publishing or eCommerce. Critical alerts reach me by text message with ringtones that bypass quiet hours, so a security incident or a broken checkout gets a response outside normal hours. Smaller retainers get business-hours coverage with proactive monitoring filling the gaps.",
                    "short_answer": "Yes on a large dedicated retainer: off-hours, weekend crunch and holiday coverage as the business needs.",
                    "keywords": [
                        "24/7 support",
                        "after hours",
                        "weekend support",
                        "holiday coverage",
                        "emergency support"
                    ],
                    "service_url": "https://www.kevinleary.net/services/",
                    "url": "https://www.kevinleary.net/faqs/#do-you-offer-24-7-support"
                },
                {
                    "question": "What is your typical turnaround time for requests?",
                    "answer": "It depends on the request, but turnaround for retainer clients is now very rapid. Requests from Slack, Linear, ClickUp, Google Sheets, email and other task tools are consolidated into a single queue that lands in front of me immediately with push notifications, so nothing waits in an inbox. Small fixes and content changes are often same-day; larger work is scheduled and communicated up front. For security incidents and other business-critical issues, text alerts with ringtones that bypass silent hours are used so the response is immediate.",
                    "short_answer": "Rapid for retainer clients: requests are consolidated into one queue and pushed to me immediately.",
                    "keywords": [
                        "turnaround time",
                        "response time",
                        "request handling",
                        "slack requests",
                        "task intake"
                    ],
                    "service_url": "https://www.kevinleary.net/services/",
                    "url": "https://www.kevinleary.net/faqs/#what-is-your-typical-turnaround-time-for-requests"
                }
            ]
        },
        {
            "topic": "Pricing, Billing & Contracts",
            "description": "How work is priced and invoiced, commitments, ownership and paperwork.",
            "questions": [
                {
                    "question": "How do you price your work?",
                    "answer": "Retainers are priced as a flat monthly fee based on the estimated level of effort your site and stack require, agreed up front after reviewing what is in scope. Standalone projects such as rebuilds, migrations and audits are scoped and estimated after an initial review so the number reflects your actual codebase and requirements rather than a generic package. Pricing is discussed on the intro call once I understand the work.",
                    "short_answer": "Flat monthly retainers based on estimated effort; projects scoped after review.",
                    "keywords": [
                        "pricing",
                        "cost",
                        "rates",
                        "retainer fee"
                    ],
                    "service_url": "https://www.kevinleary.net/contact/",
                    "url": "https://www.kevinleary.net/faqs/#how-do-you-price-your-work"
                },
                {
                    "question": "Do you bill hourly or on a fixed fee?",
                    "answer": "Ongoing engagements run on a flat monthly retainer so budgets are predictable and I can prioritize outcomes over clock-watching. Some engagements, particularly short project work or overflow beyond the retainer, are billed on time spent. Which model applies is agreed in writing before work begins.",
                    "short_answer": "Flat monthly retainers for ongoing work; time-based billing for some project work.",
                    "keywords": [
                        "hourly",
                        "fixed fee",
                        "billing model"
                    ],
                    "service_url": "https://www.kevinleary.net/contact/",
                    "url": "https://www.kevinleary.net/faqs/#do-you-bill-hourly-or-on-a-fixed-fee"
                },
                {
                    "question": "Is there a minimum commitment?",
                    "answer": "Retainers are month-to-month agreements with an initial term set in the contract, because meaningful security, compliance and analytics work needs more than a few weeks to show results. Standalone projects are scoped to a defined deliverable. There is no lock-in beyond the agreed term, and clients stay because the work keeps paying off, not because of the paperwork.",
                    "short_answer": "An initial term for retainers, then month to month; projects are scoped to a deliverable.",
                    "keywords": [
                        "minimum commitment",
                        "contract length",
                        "term"
                    ],
                    "service_url": "https://www.kevinleary.net/contact/",
                    "url": "https://www.kevinleary.net/faqs/#is-there-a-minimum-commitment"
                },
                {
                    "question": "How does invoicing work?",
                    "answer": "Invoices are issued monthly and include a plain-language summary of the work completed. Retainer invoices are activity summaries rather than timesheets, and payment terms are stated on the invoice and in the agreement. Larger standalone projects may be invoiced in milestones agreed at the start.",
                    "short_answer": "Monthly invoices with a written activity summary.",
                    "keywords": [
                        "invoice",
                        "payment terms",
                        "billing"
                    ],
                    "service_url": "https://www.kevinleary.net/contact/",
                    "url": "https://www.kevinleary.net/faqs/#how-does-invoicing-work"
                },
                {
                    "question": "Do you offer paid audits or diagnostics?",
                    "answer": "Yes, and they are often the best first step. I offer theme and code audits of sites built by other developers, GTM container and tracking audits, cookie and consent audits, accessibility triage and a BigQuery warehouse diagnostic. Each one produces a written assessment and a prioritized roadmap you own regardless of whether we continue, and nearly every long-term engagement started this way.",
                    "short_answer": "Yes: theme, tracking, consent, accessibility and warehouse audits with a written roadmap.",
                    "keywords": [
                        "audit",
                        "diagnostic",
                        "assessment",
                        "roadmap"
                    ],
                    "service_url": "https://www.kevinleary.net/services/",
                    "url": "https://www.kevinleary.net/faqs/#do-you-offer-paid-audits-or-diagnostics"
                },
                {
                    "question": "Can we get an estimate before committing?",
                    "answer": "Yes. After the intro call and a look at what is in scope, I provide a written estimate or retainer proposal that describes the work, the approach and the cost. For anything with real uncertainty, a paid diagnostic first produces a far more accurate estimate than guessing from the outside.",
                    "short_answer": "Yes, a written proposal follows the intro call and initial review.",
                    "keywords": [
                        "estimate",
                        "proposal",
                        "quote"
                    ],
                    "service_url": "https://www.kevinleary.net/contact/",
                    "url": "https://www.kevinleary.net/faqs/#can-we-get-an-estimate-before-committing"
                },
                {
                    "question": "Who owns the code and work product?",
                    "answer": "You own the custom work built for your business: your theme, your integrations, your tracking configuration, your data models. I retain ownership of my own reusable tooling such as starter frameworks, internal libraries and build and deployment scripts, and you receive a perpetual license to use them on your properties. Open-source and third-party components stay under their own licenses. The specifics are spelled out in the agreement.",
                    "short_answer": "You own your custom work; my reusable tooling is licensed to you perpetually.",
                    "keywords": [
                        "ip",
                        "ownership",
                        "code ownership",
                        "license"
                    ],
                    "service_url": "https://www.kevinleary.net/contact/",
                    "url": "https://www.kevinleary.net/faqs/#who-owns-the-code-and-work-product"
                },
                {
                    "question": "Do you sign NDAs, MSAs and vendor agreements?",
                    "answer": "Yes. I work under a standard consulting agreement that covers scope, confidentiality, IP, term and termination, and I regularly sign client NDAs, data processing agreements and vendor onboarding paperwork. I operate as a Massachusetts LLC, carry commercial general liability insurance and can provide a certificate of insurance and W-9 on request for procurement.",
                    "short_answer": "Yes: NDAs, DPAs, vendor forms, insurance certificate and W-9 available.",
                    "keywords": [
                        "nda",
                        "msa",
                        "insurance",
                        "certificate of insurance",
                        "w-9",
                        "procurement"
                    ],
                    "service_url": "https://www.kevinleary.net/contact/",
                    "url": "https://www.kevinleary.net/faqs/#do-you-sign-ndas-msas-and-vendor-agreements"
                },
                {
                    "question": "What happens if our company is acquired or merges?",
                    "answer": "The agreement carries over to the successor organization so work is not disrupted mid-engagement, and either side can wind down the relationship with the notice period defined in the contract. Transitions like this are usually where documentation and clean handoff practices prove their value.",
                    "short_answer": "The agreement binds successors; wind-down follows the contract's notice terms.",
                    "keywords": [
                        "acquisition",
                        "merger",
                        "change of control",
                        "termination"
                    ],
                    "service_url": "https://www.kevinleary.net/contact/",
                    "url": "https://www.kevinleary.net/faqs/#what-happens-if-our-company-is-acquired-or-merges"
                }
            ]
        },
        {
            "topic": "Custom WordPress Development",
            "description": "Themes, plugins, block systems, cleanup, migrations, integrations and editorial support.",
            "questions": [
                {
                    "question": "What kinds of WordPress work do you do?",
                    "answer": "Custom theme development from scratch or from Figma designs, browser-based website design for teams without a design file, ACF-powered block and page-builder systems, plugin development, multisite networks, headless and REST API builds, WooCommerce and custom eCommerce, hosting migrations and launches, legacy code cleanup, PHP upgrades, performance and Core Web Vitals, security hardening, third-party API integrations and ongoing maintenance retainers. If it runs on WordPress and matters to your business, it is in scope.",
                    "short_answer": "Themes, block systems, plugins, multisite, headless, migrations, cleanup, performance, security and integrations.",
                    "keywords": [
                        "wordpress development",
                        "custom theme",
                        "plugin",
                        "multisite"
                    ],
                    "service_url": "https://www.kevinleary.net/services/wordpress-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#what-kinds-of-wordpress-work-do-you-do"
                },
                {
                    "question": "Do you build custom themes from scratch or from our designs?",
                    "answer": "Either. If you have Figma designs, I build a custom theme directly from them, including the frontend animation and interaction work. If you do not have a design file, I shape layout, typography and components directly in the browser and then build that as the theme. Themes are built on modern frameworks with performance, accessibility and maintainability as defaults rather than afterthoughts.",
                    "short_answer": "Both: from your Figma files, or designed in the browser when you have none.",
                    "keywords": [
                        "custom theme",
                        "figma",
                        "theme development",
                        "design"
                    ],
                    "service_url": "https://www.kevinleary.net/services/wordpress-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#do-you-build-custom-themes-from-scratch-or-from"
                },
                {
                    "question": "Can you design the website as well as build it?",
                    "answer": "Yes. My background covers UI design as well as engineering, so for teams without a designer I handle layout, typography, component design and conversion-focused page structure and then build it. For teams with a design department, I work from their files and collaborate on the details that affect accessibility, performance and conversion.",
                    "short_answer": "Yes, design and development from one person when you need it.",
                    "keywords": [
                        "web design",
                        "ui design",
                        "designer developer"
                    ],
                    "service_url": "https://www.kevinleary.net/services/wordpress-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#can-you-design-the-website-as-well-as-build"
                },
                {
                    "question": "Do you use page builders like Elementor, Divi or WPBakery?",
                    "answer": "Not for new builds. Heavy visual builders add plugin dependency, performance overhead and markup your team cannot control. Instead I build modular, ACF-powered block systems tailored to your content team, which gives editors a structured, frustration-free way to compose pages without a developer, and it sets the site up for a far more AI-driven content process than Gutenberg does. I do support and stabilize existing builder-based sites, and where a builder is genuinely the right fit for a self-managed site I will say so.",
                    "short_answer": "Not for new builds; I use ACF-based block systems, but I support existing builder sites.",
                    "keywords": [
                        "elementor",
                        "divi",
                        "page builder",
                        "acf",
                        "blocks"
                    ],
                    "service_url": "https://www.kevinleary.net/services/wordpress-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#do-you-use-page-builders-like-elementor-divi-or"
                },
                {
                    "question": "What is an ACF block builder system?",
                    "answer": "It is a set of purpose-built, reusable content blocks defined with Advanced Custom Fields, each with exactly the fields your editors need and nothing they do not. Editors assemble pages from those blocks inside the WordPress editor, the markup stays clean and consistent, and the design system holds because nobody can drag a stray column width into production. It is a structured alternative to raw Gutenberg and to heavy visual builders.",
                    "short_answer": "Reusable, field-driven content blocks that let editors build pages without breaking the design.",
                    "keywords": [
                        "acf",
                        "block builder",
                        "gutenberg alternative",
                        "content blocks"
                    ],
                    "service_url": "https://www.kevinleary.net/services/wordpress-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#what-is-an-acf-block-builder-system"
                },
                {
                    "question": "Can you fix or clean up a site built by another developer or agency?",
                    "answer": "Yes, and it is a large share of my work. I start with a paid theme audit covering code quality, performance and security, delivered as a prioritized fix list. From there I refactor and stabilize what is worth keeping, and where a rebuild is the cheaper path I will tell you plainly. Sites that arrive full of bugs, plugin conflicts, white screens and slow admin screens leave stable and documented.",
                    "short_answer": "Yes. Audit first, then refactor or rebuild depending on what the audit finds.",
                    "keywords": [
                        "legacy cleanup",
                        "inherited site",
                        "theme audit",
                        "broken site"
                    ],
                    "service_url": "https://www.kevinleary.net/services/wordpress-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#can-you-fix-or-clean-up-a-site-built"
                },
                {
                    "question": "Do you develop custom WordPress plugins?",
                    "answer": "Yes. I create custom plugins for functionality that does not belong in the theme, and I support, fix and improve plugins built by other agencies or programmers. The guiding principle is fewer plugins, not more: I solve problems with lightweight, maintainable code where that is the better approach and only reach for a third-party plugin when it is the right fit for your stack.",
                    "short_answer": "Yes, custom plugin development and support for existing plugins, with a bias toward fewer plugins.",
                    "keywords": [
                        "plugin development",
                        "custom plugin",
                        "plugin bloat"
                    ],
                    "service_url": "https://www.kevinleary.net/services/wordpress-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#do-you-develop-custom-wordpress-plugins"
                },
                {
                    "question": "Do you work with WordPress multisite?",
                    "answer": "Yes, extensively. That includes subdomain and subdirectory networks, domain mapping, shared components and per-brand theming across a network, and the governance model that lets multiple brands or regions share one codebase without stepping on each other.",
                    "short_answer": "Yes, including domain mapping and multi-brand networks.",
                    "keywords": [
                        "multisite",
                        "network",
                        "multi-brand",
                        "domain mapping"
                    ],
                    "service_url": "https://www.kevinleary.net/services/wordpress-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#do-you-work-with-wordpress-multisite"
                },
                {
                    "question": "Do you handle site launches and migrations?",
                    "answer": "Yes. Launches are run in phases with checklists, 301 redirect mapping, DNS and email cutover planning and go-live coordination timed to your business. Migrations cover host-to-host moves, site consolidations, multi-domain management and moves off legacy platforms, with URLs, SEO equity and content history preserved.",
                    "short_answer": "Yes, phased launches with redirect mapping, plus host and platform migrations.",
                    "keywords": [
                        "migration",
                        "launch",
                        "301 redirects",
                        "go-live",
                        "hosting migration"
                    ],
                    "service_url": "https://www.kevinleary.net/services/wordpress-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#do-you-handle-site-launches-and-migrations"
                },
                {
                    "question": "Is WordPress secure enough for a bank, healthcare organization or regulated business?",
                    "answer": "Yes, when it is built and operated properly. WordPress is targeted more often because it is the most widely used CMS, but the platform itself is sound; problems come from poor-quality plugins, neglected updates and bad practices. With hardened configuration, a minimal plugin footprint, daily vulnerability scanning, Cloudflare in front, security headers and a tested update cycle, WordPress meets the expectations of monthly external audits and compliance programs.",
                    "short_answer": "Yes, with proper hardening, scanning, updates and a minimal plugin footprint.",
                    "keywords": [
                        "wordpress security",
                        "regulated",
                        "banking",
                        "healthcare"
                    ],
                    "service_url": "https://www.kevinleary.net/services/security-performance-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#is-wordpress-secure-enough-for-a-bank-healthcare-organization"
                },
                {
                    "question": "Can WordPress scale to high traffic and complex requirements?",
                    "answer": "Yes. WordPress powers some of the largest publishers and enterprises on the web, and I have built and supported it for sites with millions of monthly visitors, tens of thousands of paying subscribers and multi-country content networks. The keys are a clean theme, correct caching layers, a tuned database, sensible architecture for high-volume data and hosting matched to the load. Scale problems on WordPress are almost always build problems, not platform problems.",
                    "short_answer": "Yes, with the right architecture, caching and hosting.",
                    "keywords": [
                        "scalability",
                        "high traffic",
                        "enterprise wordpress"
                    ],
                    "service_url": "https://www.kevinleary.net/services/wordpress-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#can-wordpress-scale-to-high-traffic-and-complex-requirements"
                },
                {
                    "question": "Do you handle PHP version upgrades?",
                    "answer": "Yes. PHP upgrades are tested locally and on staging first, with deprecated code and plugin incompatibilities fixed before anything reaches production. I coordinate with your host on server-level settings and roll the change out in a window that suits your traffic.",
                    "short_answer": "Yes, tested locally and on staging before production.",
                    "keywords": [
                        "php upgrade",
                        "php 8",
                        "deprecated"
                    ],
                    "service_url": "https://www.kevinleary.net/services/wordpress-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#do-you-handle-php-version-upgrades"
                },
                {
                    "question": "Which third-party systems can you integrate with WordPress?",
                    "answer": "I have connected WordPress to hundreds of platforms, including HubSpot, Salesforce, Marketo, Pardot, Stripe, Shopify, BigQuery, Segment, Mixpanel, Twilio, Mailgun, Customer.io, Zapier, n8n, Veeva Vault, Zoho, SOAP services and internal client APIs secured with enterprise authentication such as Microsoft Entra and SAML. If a system has an API, it can be wired in cleanly and securely.",
                    "short_answer": "HubSpot, Salesforce, Marketo, Stripe, BigQuery, Segment, Twilio, Zapier, Veeva and more.",
                    "keywords": [
                        "integrations",
                        "api",
                        "hubspot",
                        "salesforce",
                        "stripe",
                        "entra"
                    ],
                    "service_url": "https://www.kevinleary.net/services/wordpress-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#which-third-party-systems-can-you-integrate-with-wordpress"
                },
                {
                    "question": "Can our content team manage the site without a developer?",
                    "answer": "That is the goal of every build. Custom post types, taxonomies, ACF field architecture, block systems, landing page templates and custom admin screens are designed so editors can publish, reorganize and launch pages themselves. Training and in-admin documentation are included so the team knows how to use what was built.",
                    "short_answer": "Yes. Builds are designed for editors, with training and documentation included.",
                    "keywords": [
                        "content management",
                        "editors",
                        "training",
                        "documentation"
                    ],
                    "service_url": "https://www.kevinleary.net/services/wordpress-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#can-our-content-team-manage-the-site-without-a"
                },
                {
                    "question": "Why do our WordPress emails land in spam, and can you fix it?",
                    "answer": "Almost always because mail is sent straight from the web server with no authentication behind it. The fix is to route all WordPress mail through authenticated infrastructure such as SendGrid, Mailgun, Microsoft 365, Google Workspace or a verified SMTP relay, then publish SPF, DKIM and DMARC records in DNS so receiving servers can prove the mail is really from you. That also protects your domain from spoofing and satisfies vendors that now require a DMARC policy.",
                    "short_answer": "Unauthenticated sending. Fixed with an authenticated relay plus SPF, DKIM and DMARC.",
                    "keywords": [
                        "email deliverability",
                        "spam",
                        "spf",
                        "dkim",
                        "dmarc",
                        "smtp"
                    ],
                    "service_url": "https://www.kevinleary.net/services/wordpress-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#why-do-our-wordpress-emails-land-in-spam-and"
                },
                {
                    "question": "Do you provide documentation and editor training?",
                    "answer": "Yes. Deliverables include theme documentation, in-admin help menus, environment and deployment runbooks, version control setup for multi-developer teams and knowledge-transfer sessions for editors and developers. Documentation is part of the work, not an add-on.",
                    "short_answer": "Yes, documentation and training are part of every build.",
                    "keywords": [
                        "documentation",
                        "training",
                        "runbook"
                    ],
                    "service_url": "https://www.kevinleary.net/services/wordpress-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#do-you-provide-documentation-and-editor-training"
                },
                {
                    "question": "Can you handle urgent, same-day changes?",
                    "answer": "Yes. A legal page that has to change today, a promo that swaps at midnight, a sitewide rename after a rebrand or a scripted vendor URL cutover timed to a migration window is normal work for me rather than an emergency escalation. Retainer clients get priority on this kind of request.",
                    "short_answer": "Yes, same-day legal, promo and content changes are routine.",
                    "keywords": [
                        "urgent",
                        "same-day",
                        "legal page",
                        "rebrand"
                    ],
                    "service_url": "https://www.kevinleary.net/services/wordpress-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#can-you-handle-urgent-same-day-changes"
                },
                {
                    "question": "Do you support publishing and editorial operations for media teams?",
                    "answer": "Yes. That includes to-the-minute scheduled and embargoed publishing, video embeds and filterable resource libraries, podcast feed automation, dynamic content such as latest-resource heroes and geo-targeted calls to action, author and role administration and editor training. I support editorial teams the way an in-house platform engineer would.",
                    "short_answer": "Yes, embargo publishing, resource libraries, feeds and editorial tooling.",
                    "keywords": [
                        "editorial",
                        "publishing",
                        "embargo",
                        "podcast feed",
                        "media"
                    ],
                    "service_url": "https://www.kevinleary.net/services/wordpress-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#do-you-support-publishing-and-editorial-operations-for-media"
                },
                {
                    "question": "What is your approach to custom theme development?",
                    "answer": "Simple, minimal and effective. I pick the simplest approach that fits the site and the team that will run it, and most of the time that is conventional, time-tested WordPress theme development rather than a framework layered on top. I know the major frameworks well and use them when a client's team has standardized on one; when the choice is mine, I keep the codebase lean because lean themes are the easiest to test, monitor, hand off and maintain, and that matters more every year.",
                    "short_answer": "The simplest approach that fits, which is usually conventional, lean WordPress theme development.",
                    "keywords": [
                        "theme development approach",
                        "frameworks",
                        "minimal code",
                        "development philosophy"
                    ],
                    "service_url": "https://www.kevinleary.net/services/wordpress-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#what-is-your-approach-to-custom-theme-development"
                },
                {
                    "question": "What does a modern WordPress web stack look like?",
                    "answer": "Cloudflare in front for DNS, performance and security. Managed hosting such as Kinsta, with a staging environment on a subdomain so tracking, GTM container updates and code changes can be fully verified before production. Cookie consent wired through to Google Consent Mode v2, using an open-source banner when you know what you are doing or a platform such as CookieYes when the business wants a CMP. WordPress itself runs with minimal plugins, typically an SEO plugin and ACF Pro for advanced CMS controls, which I recommend over Gutenberg because it supports a far more AI-driven content process going forward. Uptime monitoring runs through Cloudflare or a worker with rules that verify key parts of the site actually work, not just an HTTP status. Client-side and server-side errors are captured cleanly, with no tolerance for PHP notices, warnings or fatals, because a handful of users hitting a broken lead form on one mobile browser costs real money and nobody sees it without error tracking. Pre-deploy testing of key flows, now much stronger with AI, and GitHub for all code changes with pull requests whenever more than one developer is involved.",
                    "short_answer": "Cloudflare, Kinsta, staging subdomain, Consent Mode v2, minimal plugins with ACF Pro, functional uptime checks, error tracking, pre-deploy testing and GitHub.",
                    "keywords": [
                        "modern wordpress stack",
                        "cloudflare",
                        "kinsta",
                        "acf pro",
                        "error tracking",
                        "uptime monitoring",
                        "github"
                    ],
                    "service_url": "https://www.kevinleary.net/services/wordpress-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#what-does-a-modern-wordpress-web-stack-look-like"
                }
            ]
        },
        {
            "topic": "Enterprise CMS & Headless",
            "description": "Enterprise content management, headless architectures, platform migrations and SSO.",
            "questions": [
                {
                    "question": "What do you mean by enterprise CMS development?",
                    "answer": "Web content management built for organizations where editors need to move fast, engineering needs stability and the business needs governance. That means structured content models, custom post types and taxonomies, editorial workflows with approvals and embargoes, role-based permissions, audit trails and the integrations around the CMS such as SSO, CRM and data warehouse. I build this on WordPress or on headless stacks depending on the requirements.",
                    "short_answer": "Structured, governed content management for organizations that publish at scale.",
                    "keywords": [
                        "enterprise cms",
                        "content management",
                        "governance",
                        "editorial workflow"
                    ],
                    "service_url": "https://www.kevinleary.net/services/headless-cms-developer/",
                    "url": "https://www.kevinleary.net/faqs/#what-do-you-mean-by-enterprise-cms-development"
                },
                {
                    "question": "When does a headless CMS make sense?",
                    "answer": "When one content source needs to feed several channels: a website, native iOS and Android apps, internal tools or partner systems. In that case an API-first CMS with a Next.js or React frontend is the right call, and I have shipped them at enterprise scale. When you only have a website, a well-built traditional WordPress theme is simpler, cheaper to run and easier for your team to own. Headless is a tool, not a default, and I will tell you which one you need.",
                    "short_answer": "When content must feed multiple channels. Otherwise a traditional build is usually better.",
                    "keywords": [
                        "headless cms",
                        "headless wordpress",
                        "next.js",
                        "api-first"
                    ],
                    "service_url": "https://www.kevinleary.net/services/headless-cms-developer/",
                    "url": "https://www.kevinleary.net/faqs/#when-does-a-headless-cms-make-sense"
                },
                {
                    "question": "Which CMS platforms and frontend frameworks do you work with?",
                    "answer": "On the backend: WordPress, headless WordPress, Strapi, Payload, Ghost and Craft. In the middle: REST and GraphQL API layers. On the frontend: Next.js and React, plus content APIs for native mobile apps. Recommendations are driven by your team, content model and budget, not a favorite tool.",
                    "short_answer": "WordPress, Strapi, Payload, Ghost, Craft; REST or GraphQL; Next.js and React.",
                    "keywords": [
                        "strapi",
                        "payload",
                        "ghost",
                        "craft",
                        "graphql",
                        "react"
                    ],
                    "service_url": "https://www.kevinleary.net/services/headless-cms-developer/",
                    "url": "https://www.kevinleary.net/faqs/#which-cms-platforms-and-frontend-frameworks-do-you-work"
                },
                {
                    "question": "Can you migrate us off Drupal, Sitecore, Adobe Experience Manager or HubSpot CMS?",
                    "answer": "Yes. Platform migrations include content and media export, a content model designed for the new platform, full URL mapping with 301 redirects, SEO preservation, editorial workflow rebuilds and a phased launch. The goal is that search equity, content history and your editors' muscle memory survive the move.",
                    "short_answer": "Yes, with URL mapping, redirects and SEO preserved.",
                    "keywords": [
                        "drupal migration",
                        "sitecore",
                        "aem",
                        "hubspot cms",
                        "platform migration"
                    ],
                    "service_url": "https://www.kevinleary.net/services/headless-cms-developer/",
                    "url": "https://www.kevinleary.net/faqs/#can-you-migrate-us-off-drupal-sitecore-adobe-experience"
                },
                {
                    "question": "Can you set up single sign-on and enterprise authentication?",
                    "answer": "Yes. I implement SSO with Microsoft Entra and SAML for admin and member access, and secure integrations between the CMS and internal APIs using enterprise authentication. Access follows your identity provider so onboarding and offboarding happen in one place.",
                    "short_answer": "Yes, Microsoft Entra and SAML SSO plus authenticated API integrations.",
                    "keywords": [
                        "sso",
                        "saml",
                        "microsoft entra",
                        "authentication"
                    ],
                    "service_url": "https://www.kevinleary.net/services/headless-cms-developer/",
                    "url": "https://www.kevinleary.net/faqs/#can-you-set-up-single-sign-on-and-enterprise"
                },
                {
                    "question": "Can one codebase support multiple brands or regional sites?",
                    "answer": "Yes. Multisite and multi-brand networks share one codebase, one governance model and one set of components, with domain mapping and per-brand theming on top. That keeps updates, security and design consistency centralized while each brand or region keeps its own identity and editors.",
                    "short_answer": "Yes, through multisite networks with shared components and per-brand theming.",
                    "keywords": [
                        "multi-brand",
                        "multisite",
                        "regional sites",
                        "localization"
                    ],
                    "service_url": "https://www.kevinleary.net/services/headless-cms-developer/",
                    "url": "https://www.kevinleary.net/faqs/#can-one-codebase-support-multiple-brands-or-regional-sites"
                },
                {
                    "question": "Can the CMS feed our mobile app and other channels?",
                    "answer": "Yes. An API-first CMS exposes structured content through REST or GraphQL so the same source feeds your website, iOS and Android apps, internal tools and, increasingly, AI answer engines. Content modeling is done with every channel in mind so nothing has to be re-entered or reformatted per platform.",
                    "short_answer": "Yes, one content API can serve web, apps, internal tools and AI feeds.",
                    "keywords": [
                        "mobile app cms",
                        "content api",
                        "omnichannel"
                    ],
                    "service_url": "https://www.kevinleary.net/services/headless-cms-developer/",
                    "url": "https://www.kevinleary.net/faqs/#can-the-cms-feed-our-mobile-app-and-other"
                }
            ]
        },
        {
            "topic": "Security & Performance",
            "description": "Cloudflare, hardening, scanning, audit remediation, Core Web Vitals, caching and database work.",
            "questions": [
                {
                    "question": "What does your security work include?",
                    "answer": "Cloudflare configuration as the front door (DNS, WAF, bot protection, rate limiting, edge caching), security headers including Content Security Policy delivered at the edge, daily vulnerability scanning with manual alert verification, login and access hardening, remediation of audit and penetration test findings in code, enrollment in government scanning programs where applicable and ongoing monitoring. It is delivered as continuous engineering rather than a one-time hardening pass.",
                    "short_answer": "Cloudflare, headers, daily scanning, login hardening, audit remediation and monitoring, ongoing.",
                    "keywords": [
                        "wordpress security",
                        "hardening",
                        "cloudflare",
                        "vulnerability scanning"
                    ],
                    "service_url": "https://www.kevinleary.net/services/security-performance-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#what-does-your-security-work-include"
                },
                {
                    "question": "How do you use Cloudflare?",
                    "answer": "As an active security and performance layer, not a switch that gets flipped once. I handle DNS migrations and record management, write WAF rules from real firewall event data, deploy Turnstile in place of reCAPTCHA, configure bot and DDoS mitigation, rate-limit login and admin URLs, tune edge cache and page rules with automatic purging, deliver security headers through a Cloudflare worker and troubleshoot origin certificate and SSL issues. Every tightening is tested against the forms, payment frames and ad scripts it could break.",
                    "short_answer": "As a continuously tuned WAF, bot, caching and headers layer, tested against what it could break.",
                    "keywords": [
                        "cloudflare",
                        "waf",
                        "turnstile",
                        "edge caching",
                        "dns"
                    ],
                    "service_url": "https://www.kevinleary.net/services/security-performance-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#how-do-you-use-cloudflare"
                },
                {
                    "question": "How does vulnerability scanning and patching work?",
                    "answer": "Scans run daily against MITRE CVE data and the wpscan.io database, with alerts routed to a real person rather than a dashboard. Every alert is verified by hand before it is dismissed or fixed, and plugin, theme and core patches are applied on a schedule after testing on staging. Uptime, error log and third-party script monitoring run alongside so changes are noticed when they happen.",
                    "short_answer": "Daily CVE and wpscan.io scans, manual verification, scheduled tested patching.",
                    "keywords": [
                        "vulnerability scan",
                        "cve",
                        "wpscan",
                        "patching"
                    ],
                    "service_url": "https://www.kevinleary.net/services/security-performance-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#how-does-vulnerability-scanning-and-patching-work"
                },
                {
                    "question": "Can you remediate findings from our penetration test or security audit?",
                    "answer": "Yes. I work through monthly external audits, web application penetration test reports, security scorecard results and third-party scan findings item by item, in the codebase, until they close. That includes cross-site scripting, injection, tab-nabbing and header findings, CSP configured to your audit's grading requirements and SSL or DNS findings resolved with your IT team. Findings come back as code and configuration changes with a written record, not a PDF that sits in a folder.",
                    "short_answer": "Yes, item by item, fixed in code, with a written record of what changed.",
                    "keywords": [
                        "penetration test",
                        "security audit",
                        "remediation",
                        "xss",
                        "csp"
                    ],
                    "service_url": "https://www.kevinleary.net/services/security-performance-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#can-you-remediate-findings-from-our-penetration-test-or"
                },
                {
                    "question": "What is the CISA scanning program and can you enroll us?",
                    "answer": "CISA offers a free vulnerability scanning service for public-facing domains that produces recurring reports on exposed services and known weaknesses. I have enrolled client domains in the program and triage and remediate the resulting reports alongside your compliance team, which gives regulated organizations an independent, government-run signal on top of commercial scanning.",
                    "short_answer": "A free federal scanning service for public domains; I enroll clients and work the reports.",
                    "keywords": [
                        "cisa",
                        "federal scanning",
                        "government scanning"
                    ],
                    "service_url": "https://www.kevinleary.net/services/security-performance-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#what-is-the-cisa-scanning-program-and-can-you"
                },
                {
                    "question": "How do you fix Core Web Vitals and site speed?",
                    "answer": "At the source, not behind another caching plugin. I profile the actual bottleneck and fix LCP, CLS and INP in the theme and template layer: hero image handling, layout shift, render-blocking CSS and JavaScript, third-party script deferral, images resized to their rendered dimensions and served as WebP, fonts loaded conditionally, HTML minified for TTFB and video embeds converted to click-to-load previews. Improvements are verified against field data and tracked over time, not a single lab run.",
                    "short_answer": "Profile the real bottleneck, fix it in the theme and verify with field data.",
                    "keywords": [
                        "core web vitals",
                        "page speed",
                        "lcp",
                        "cls",
                        "inp",
                        "performance"
                    ],
                    "service_url": "https://www.kevinleary.net/services/security-performance-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#how-do-you-fix-core-web-vitals-and-site"
                },
                {
                    "question": "How should caching be configured on a WordPress site?",
                    "answer": "Edge, full-page, object and browser caches all interact, and misconfigured they fight each other: stale prices, logged-in users seeing cached pages or a cart cookie bypassing the edge on every request. I configure them together: Cloudflare cache and page rules, s-maxage headers separating browser from edge cache, Redis or host-level object caching, transient caching for expensive queries and menus, and automatic purges when content is published. Caching goes on top of a fast site, not in front of a slow one.",
                    "short_answer": "Edge, page, object and browser caches configured to work together, on top of a fast codebase.",
                    "keywords": [
                        "caching",
                        "redis",
                        "object cache",
                        "edge cache",
                        "cloudflare cache"
                    ],
                    "service_url": "https://www.kevinleary.net/services/security-performance-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#how-should-caching-be-configured-on-a-wordpress-site"
                },
                {
                    "question": "Our site keeps hitting memory limits and the admin is slow. Can you fix that?",
                    "answer": "Yes. This is the work hosting support escalates rather than solves, and the cause is usually in the database or host configuration: memory exhaustion and fatal errors, postmeta and options table bloat, orphaned revisions, transients and meta, missing indexes, slow queries and excessive query counts in hot templates. I diagnose it, clean it up, repair and optimize the tables and reconfigure object caching so the problem does not return.",
                    "short_answer": "Yes. It is usually database bloat or host limits, and both are fixable at the source.",
                    "keywords": [
                        "memory limit",
                        "slow admin",
                        "database bloat",
                        "postmeta",
                        "slow queries"
                    ],
                    "service_url": "https://www.kevinleary.net/services/security-performance-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#our-site-keeps-hitting-memory-limits-and-the-admin"
                },
                {
                    "question": "Do you help with vendor security questionnaires and compliance programs?",
                    "answer": "Yes. I answer the engineering side of vendor security questionnaires, document what the site does today and support compliance programs including HIPAA, ITAR, PCI, SOC 2 and GDPR with the controls those frameworks expect: security headers, authenticated integrations, PII-free logging, access restrictions on admin, tested backups and a written change record.",
                    "short_answer": "Yes, engineering answers and controls for HIPAA, ITAR, PCI, SOC 2 and GDPR programs.",
                    "keywords": [
                        "security questionnaire",
                        "soc 2",
                        "hipaa",
                        "itar",
                        "pci",
                        "compliance"
                    ],
                    "service_url": "https://www.kevinleary.net/services/security-performance-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#do-you-help-with-vendor-security-questionnaires-and-compliance"
                },
                {
                    "question": "How do you protect the WordPress login and admin?",
                    "answer": "The overwhelming majority of attacks are automated attempts at the login screen and the REST API, and they are cheap to shut down. I rate-limit wp-login and wp-admin, mitigate brute force at the edge, block author and REST API user enumeration, roll out MFA, review credentials and roles, restrict admin behind Cloudflare Access or VPN where appropriate and block write attempts to upload directories.",
                    "short_answer": "Rate limiting, enumeration blocking, MFA, role review and admin access restrictions.",
                    "keywords": [
                        "login security",
                        "brute force",
                        "mfa",
                        "enumeration",
                        "wp-admin"
                    ],
                    "service_url": "https://www.kevinleary.net/services/security-performance-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#how-do-you-protect-the-wordpress-login-and-admin"
                },
                {
                    "question": "What are security headers and a Content Security Policy, and do we need them?",
                    "answer": "Security headers tell browsers what your site is allowed to do. A Content Security Policy controls which scripts can run at all, which is how you stop an injected third-party script from exfiltrating form data, and HSTS, referrer-policy and permissions-policy close other gaps. Audits and security questionnaires routinely require them. I roll CSP out in report-only mode, whitelist assets from real traffic, then enforce it, delivered through a Cloudflare worker so it is centrally managed, and fix rather than exempt the payment frames and embeds it initially blocks.",
                    "short_answer": "Browser-enforced rules on what your site can load. Audits expect them; I roll them out safely at the edge.",
                    "keywords": [
                        "content security policy",
                        "csp",
                        "security headers",
                        "hsts"
                    ],
                    "service_url": "https://www.kevinleary.net/services/security-performance-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#what-are-security-headers-and-a-content-security-policy"
                },
                {
                    "question": "What do you monitor on an ongoing basis?",
                    "answer": "Uptime and downtime, error logs, SSL expiry, daily vulnerability scan results, redirect loops and layout shift, new or changed third-party scripts loading on the site, Cloudflare firewall events and, for compliance clients, consent behavior and GTM container changes. Alerts go to me for triage so problems surface as a notification instead of a customer complaint.",
                    "short_answer": "Uptime, errors, SSL, vulnerabilities, third-party scripts, firewall events and consent behavior.",
                    "keywords": [
                        "monitoring",
                        "uptime",
                        "alerts",
                        "error logs"
                    ],
                    "service_url": "https://www.kevinleary.net/services/security-performance-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#what-do-you-monitor-on-an-ongoing-basis"
                }
            ]
        },
        {
            "topic": "Analytics & Tag Management",
            "description": "GTM, GA4, server-side tracking, conversion APIs, attribution and reporting.",
            "questions": [
                {
                    "question": "What does a GTM and GA4 engagement include?",
                    "answer": "Clean, organized Google Tag Manager containers with clear naming and structure; accurate GA4 tracking of standard and custom events across sites and devices; conversion tracking for every ad platform you use; server-side tracking synchronized with browser pixels; cross-domain tracking; UTM standards; eCommerce and funnel tracking; consent gating on every tag; and reporting through Looker Studio, BigQuery or your BI tool. Audits of existing setups and full rebuilds are both common starting points.",
                    "short_answer": "Clean GTM, accurate GA4, conversion tracking on every platform, server-side, consent-aware, reported.",
                    "keywords": [
                        "google tag manager",
                        "ga4",
                        "conversion tracking",
                        "analytics consultant"
                    ],
                    "service_url": "https://www.kevinleary.net/services/gtm-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#what-does-a-gtm-and-ga4-engagement-include"
                },
                {
                    "question": "Our GTM container is a mess. Can you clean it up?",
                    "answer": "Yes. Years of accumulated tags, paused experiments and inconsistent naming are the norm. I audit the container, identify what fires, what is redundant and what is missing consent controls, then rebuild it using a Provider-Action naming pattern, organized folders and documented consent classifications for every tag. The result is a self-documenting container any team member can understand on day one.",
                    "short_answer": "Yes. Audit, then rebuild with consistent naming, folders and consent classifications.",
                    "keywords": [
                        "gtm audit",
                        "container cleanup",
                        "tag naming"
                    ],
                    "service_url": "https://www.kevinleary.net/services/gtm-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#our-gtm-container-is-a-mess-can-you-clean"
                },
                {
                    "question": "What is server-side tracking and why does it matter?",
                    "answer": "Ad blockers, iOS privacy restrictions and browser tracking prevention now stop a large share of browser-based conversion events from ever being recorded. Server-side tracking sends those events from your server directly to platforms such as Meta, Google, TikTok and LinkedIn through their conversions APIs, deduplicated against the browser pixel. It recovers conversions the browser misses and gives ad platforms the signal quality they need to optimize campaigns, while still respecting consent.",
                    "short_answer": "Events sent from your server to ad platforms, recovering conversions browsers lose.",
                    "keywords": [
                        "server-side tracking",
                        "conversions api",
                        "meta capi",
                        "ad blockers"
                    ],
                    "service_url": "https://www.kevinleary.net/services/gtm-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#what-is-server-side-tracking-and-why-does-it"
                },
                {
                    "question": "Which ad platforms can you set up conversion tracking for?",
                    "answer": "Google Ads, Meta (Facebook and Instagram), TikTok, LinkedIn, Reddit, Snapchat, Microsoft Ads and others, on both the browser and server side. That includes Meta Conversions API with proper deduplication and event matching, TikTok Events API, Google Ads offline and enhanced conversions and product feeds for shopping campaigns. Every platform receives the same events with shared IDs so the numbers reconcile.",
                    "short_answer": "Google, Meta, TikTok, LinkedIn, Reddit, Snapchat, Microsoft and more, browser and server side.",
                    "keywords": [
                        "ad platforms",
                        "google ads",
                        "meta pixel",
                        "tiktok",
                        "linkedin",
                        "conversion api"
                    ],
                    "service_url": "https://www.kevinleary.net/services/gtm-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#which-ad-platforms-can-you-set-up-conversion-tracking"
                },
                {
                    "question": "Why do GA4, Google Ads and Meta all report different numbers?",
                    "answer": "Because each platform was wired separately, with different triggers, different definitions and no shared event identifiers. A unified event architecture fixes this at the root: one set of events defined in GTM, consistent naming conventions, shared event IDs for deduplication and a single source of truth flowing to every platform. Some variance is inherent to attribution windows, but the discrepancies that make nobody trust the data go away.",
                    "short_answer": "Separate, inconsistent wiring. A unified event architecture with shared IDs fixes it.",
                    "keywords": [
                        "data discrepancy",
                        "ga4 vs google ads",
                        "attribution mismatch"
                    ],
                    "service_url": "https://www.kevinleary.net/services/gtm-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#why-do-ga4-google-ads-and-meta-all-report"
                },
                {
                    "question": "Can you track users across multiple domains and subdomains?",
                    "answer": "Yes. Cross-domain tracking preserves session continuity as a visitor moves between your marketing site, application, checkout or partner domains, so attribution follows the real journey rather than resetting at every hop. First-party cookie strategies are used where possible to keep that continuity durable under browser restrictions.",
                    "short_answer": "Yes, with cross-domain configuration and first-party cookie strategies.",
                    "keywords": [
                        "cross-domain tracking",
                        "subdomains",
                        "session continuity"
                    ],
                    "service_url": "https://www.kevinleary.net/services/gtm-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#can-you-track-users-across-multiple-domains-and-subdomains"
                },
                {
                    "question": "Do you set up UTM and campaign naming standards?",
                    "answer": "Yes. I define campaign and UTM naming conventions that map cleanly to GA4's collected source and medium per event, content grouping dimensions and the schemas used in your warehouse, then enforce them across channels. Clean naming is what makes attribution reports readable a year later.",
                    "short_answer": "Yes, enforced conventions that map cleanly to GA4 and your warehouse.",
                    "keywords": [
                        "utm",
                        "campaign naming",
                        "taxonomy"
                    ],
                    "service_url": "https://www.kevinleary.net/services/gtm-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#do-you-set-up-utm-and-campaign-naming-standards"
                },
                {
                    "question": "Can you track eCommerce and subscription funnels?",
                    "answer": "Yes. Full-funnel tracking from product view through checkout to purchase with accurate revenue and product-level attribution, subscription events such as trial start, conversion, renewal and churn, and server-side purchase events tied to real payment webhooks rather than a thank-you page load.",
                    "short_answer": "Yes, full-funnel and subscription events with revenue tied to real payment events.",
                    "keywords": [
                        "ecommerce tracking",
                        "subscription analytics",
                        "purchase events"
                    ],
                    "service_url": "https://www.kevinleary.net/services/gtm-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#can-you-track-ecommerce-and-subscription-funnels"
                },
                {
                    "question": "How do you handle attribution and reporting beyond standard GA4 reports?",
                    "answer": "GA4 data exported to BigQuery enables SQL-based analysis of user behavior, conversion paths and multi-touch attribution at any scale, and connected CRM data extends that to closed revenue. I build automated reporting pipelines from BigQuery into Looker Studio, Tableau or Power BI, plus scheduled email reports for executives who will never log into a dashboard.",
                    "short_answer": "GA4 in BigQuery, joined with CRM data, reported through dashboards and scheduled emails.",
                    "keywords": [
                        "attribution",
                        "multi-touch",
                        "bigquery",
                        "looker studio",
                        "reporting"
                    ],
                    "service_url": "https://www.kevinleary.net/services/gtm-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#how-do-you-handle-attribution-and-reporting-beyond-standard"
                },
                {
                    "question": "Can you connect tracking to HubSpot, Salesforce or Marketo?",
                    "answer": "Yes. I wire website tracking, forms and lead data into HubSpot, Salesforce, Marketo and similar platforms so marketing and sales see the same journey, and I bring their tracking scripts under one consent management platform instead of their native banners. Offline conversion events from the CRM can be pushed back to ad platforms so campaigns optimize toward qualified leads and closed deals rather than form fills.",
                    "short_answer": "Yes, including consent-aware tracking and offline conversions pushed back to ad platforms.",
                    "keywords": [
                        "hubspot tracking",
                        "salesforce",
                        "marketo",
                        "offline conversions",
                        "crm integration"
                    ],
                    "service_url": "https://www.kevinleary.net/services/gtm-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#can-you-connect-tracking-to-hubspot-salesforce-or-marketo"
                },
                {
                    "question": "How do you keep up with platform changes from Google, Meta and others?",
                    "answer": "By doing the work every week. Ongoing retainer engagements include monitoring platform changes, updating consent configurations as new privacy laws take effect, adopting new measurement APIs and integrating new ad platforms as they matter. Active implementation keeps the knowledge current in a way reading release notes never does.",
                    "short_answer": "Through active implementation and ongoing retainer monitoring.",
                    "keywords": [
                        "platform changes",
                        "staying current",
                        "ga4 updates"
                    ],
                    "service_url": "https://www.kevinleary.net/services/gtm-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#how-do-you-keep-up-with-platform-changes-from"
                }
            ]
        },
        {
            "topic": "Privacy & Consent Compliance",
            "description": "Cookie consent, Consent Mode v2, GDPR and CCPA/CPRA implementation and documentation.",
            "questions": [
                {
                    "question": "We already have a cookie banner. Isn't that enough?",
                    "answer": "Usually not. Most banners on the web display and store a choice but never actually gate the tags, so marketing scripts fire regardless of what the visitor clicked. I audit what fires before opt-in, tag by tag, including obfuscated Custom HTML tags and vendor loaders, close each gap at the tag rather than the banner and verify the result at the network level under every consent state.",
                    "short_answer": "Not unless it actually blocks tags. Most do not, and I verify at the network level.",
                    "keywords": [
                        "cookie banner",
                        "consent gating",
                        "tags fire before consent"
                    ],
                    "service_url": "https://www.kevinleary.net/services/privacy-consent-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#we-already-have-a-cookie-banner-isn-t-that"
                },
                {
                    "question": "What is Google Consent Mode v2 and do we need it?",
                    "answer": "Consent Mode is Google's mechanism for passing a visitor's consent choices into Google Tag Manager, GA4 and Google Ads. Instead of tags being present or absent, they adapt: with consent denied they send cookieless pings and Google models the conversions it cannot observe directly. If you advertise with Google and serve visitors in the EEA, it is effectively required for remarketing and audience features to keep working. I implement a denied-by-default baseline set before GTM loads, a CMP-to-gtag bridge, consent state variables and triggers, the correct consent types per tag and verification in GA4.",
                    "short_answer": "Google's consent signaling layer; effectively required for Google Ads in the EEA. I implement it correctly.",
                    "keywords": [
                        "consent mode v2",
                        "google consent mode",
                        "gtm consent"
                    ],
                    "service_url": "https://www.kevinleary.net/services/privacy-consent-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#what-is-google-consent-mode-v2-and-do-we"
                },
                {
                    "question": "Will consent gating hurt our analytics and conversion tracking?",
                    "answer": "It changes it rather than ends it. Observed conversions drop for the share of visitors who decline, modeled conversions fill part of the gap and server-side tagging carries the signals you are still permitted to send. In practice the bigger risk is a broken implementation: consent defaults set after the tag loads, the wrong consent types required on a tag or a GA4 tag demanding all four consent types when it only needs analytics storage. Those mistakes suppress far more data than compliance does.",
                    "short_answer": "Less than you expect if Consent Mode and server-side signals are configured correctly.",
                    "keywords": [
                        "consent impact",
                        "lost data",
                        "modeled conversions"
                    ],
                    "service_url": "https://www.kevinleary.net/services/privacy-consent-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#will-consent-gating-hurt-our-analytics-and-conversion-tracking"
                },
                {
                    "question": "Which consent management platform should we use?",
                    "answer": "I have implemented Cookiebot, CookieYes, Usercentrics and the open-source CookieConsent library, and they all work when wired correctly. Licensed platforms bring automated cookie scanning, consent logging and per-region rule sets, priced per domain and pageview. Open-source has no license cost and full control over behavior and design, at the cost of building the scanning and logging you would otherwise buy. When a business wants a licensed CMP, CookieYes is my usual recommendation. The deciding factors are how many domains you run, whether legal wants formal consent records and how much design control you want over the banner.",
                    "short_answer": "Cookiebot, CookieYes, Usercentrics or open-source CookieConsent; the right one depends on domains, legal needs and design control.",
                    "keywords": [
                        "cmp",
                        "cookiebot",
                        "cookieyes",
                        "usercentrics",
                        "cookieconsent"
                    ],
                    "service_url": "https://www.kevinleary.net/services/privacy-consent-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#which-consent-management-platform-should-we-use"
                },
                {
                    "question": "Can you produce a cookie audit our legal team can approve?",
                    "answer": "Yes. I scan the whole site across templates and flows, work out which vendor sets each cookie and what it does, document purpose and duration, categorize everything as essential, analytics, marketing or preferences and publish a cookie report your attorneys can read and approve. Disclosures are updated to counsel's wording and the audit is repeated when new vendors are added.",
                    "short_answer": "Yes, a sitewide scan categorized and documented for legal review.",
                    "keywords": [
                        "cookie audit",
                        "cookie report",
                        "cookie classification"
                    ],
                    "service_url": "https://www.kevinleary.net/services/privacy-consent-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#can-you-produce-a-cookie-audit-our-legal-team"
                },
                {
                    "question": "How do you prove the implementation actually works?",
                    "answer": "Every implementation ships with a test matrix, not just a working popup. For each consent state and region I verify which tags fire in GTM, whether GA4 loads and transmits hits, how ad units behave and what cookies are written, down to the network request. You get the passing matrix in writing plus a region preview switch so your own team and counsel can reproduce the results.",
                    "short_answer": "A written, network-level test matrix per consent state and region that your team can reproduce.",
                    "keywords": [
                        "compliance verification",
                        "test matrix",
                        "documentation for counsel"
                    ],
                    "service_url": "https://www.kevinleary.net/services/privacy-consent-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#how-do-you-prove-the-implementation-actually-works"
                },
                {
                    "question": "How do we handle CCPA and CPRA data subject requests?",
                    "answer": "You need a way for California residents to submit access and deletion requests and a process that actually answers them. On the website side I build the intake: a request form matching your design, conditional logic for request types, server-side validation, authenticated delivery into your privacy platform or internal queue and a request ID shown to the visitor on submission so both sides have a reference. API credentials are managed in the CMS rather than hardcoded.",
                    "short_answer": "I build the intake form, validation and authenticated hand-off to whoever fulfills requests.",
                    "keywords": [
                        "dsar",
                        "ccpa request",
                        "cpra",
                        "data subject request",
                        "privacy request form"
                    ],
                    "service_url": "https://www.kevinleary.net/services/privacy-consent-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#how-do-we-handle-ccpa-and-cpra-data-subject"
                },
                {
                    "question": "What is Global Privacy Control and do we have to honor it?",
                    "answer": "Global Privacy Control is a browser-level signal that tells a site the visitor opts out of the sale and sharing of their personal information. Under CPRA, covered businesses must honor it, which means detecting the signal and applying the opt-out automatically without waiting for a banner interaction. It is a small piece of code and a frequently missed one, which is exactly why compliance scanners flag it. I wire it into the consent defaults along with the footer privacy choices link.",
                    "short_answer": "A browser opt-out signal that CPRA-covered businesses must honor automatically.",
                    "keywords": [
                        "global privacy control",
                        "gpc",
                        "cpra",
                        "opt-out signal"
                    ],
                    "service_url": "https://www.kevinleary.net/services/privacy-consent-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#what-is-global-privacy-control-and-do-we-have"
                },
                {
                    "question": "Can one site handle GDPR opt-in and CCPA opt-out visitors at the same time?",
                    "answer": "Yes. Server-side GeoIP determines the consent defaults before the page renders, so European visitors get denied-by-default and US visitors get the treatment their state requires, with no client-side flicker on first paint. Regional regimes such as GDPR, CCPA, CPRA, CPA, CTDPA and VCDPA run simultaneously on one implementation, and new state laws are added as they take effect.",
                    "short_answer": "Yes, with server-side region detection setting the right defaults before render.",
                    "keywords": [
                        "gdpr and ccpa",
                        "region-aware consent",
                        "geoip consent"
                    ],
                    "service_url": "https://www.kevinleary.net/services/privacy-consent-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#can-one-site-handle-gdpr-opt-in-and-ccpa"
                },
                {
                    "question": "We received a wiretapping or CIPA-style demand letter. Can you help?",
                    "answer": "Yes, on the engineering side. I have supported clients through active plaintiff claims by implementing banner and disclosure changes to outside counsel's exact specifications same-day, auditing every third-party script for exposure and monitoring the site with the same scanning tools plaintiff firms use to select targets. The implementation and its written documentation become part of your forward defense posture. The legal strategy itself belongs with your counsel.",
                    "short_answer": "Yes: same-day implementation of counsel's changes, script audits and ongoing scanning.",
                    "keywords": [
                        "wiretapping",
                        "cipa",
                        "demand letter",
                        "plaintiff claim",
                        "session replay"
                    ],
                    "service_url": "https://www.kevinleary.net/services/privacy-consent-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#we-received-a-wiretapping-or-cipa-style-demand-letter"
                },
                {
                    "question": "How does consent work with HubSpot, Marketo and ad pixels?",
                    "answer": "Each platform has its own consent behavior and, in HubSpot's case, its own banner that will compete with yours. The clean setup is one CMP as the source of truth, the platform's native banner disabled and a bridge that maps your consent categories onto the platform's consent API so attribution cookies load for visitors who accept and stay off for everyone else. Ad pixels are moved into GTM where they can be gated, given the correct consent types and checked for the ad_user_data and ad_personalization signals that some platforms' tags commonly miss.",
                    "short_answer": "One CMP as the source of truth, native banners off, every platform bridged and gated.",
                    "keywords": [
                        "hubspot cookie banner",
                        "marketo consent",
                        "pixel consent"
                    ],
                    "service_url": "https://www.kevinleary.net/services/privacy-consent-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#how-does-consent-work-with-hubspot-marketo-and-ad"
                },
                {
                    "question": "Is privacy compliance a one-time project or ongoing?",
                    "answer": "Point-in-time compliance decays. Every new pixel, heatmap tool, vendor script, redesign or state law reopens exposure. Most of my privacy work runs inside an ongoing retainer: scheduled re-verification of consent behavior, cookie re-classification, GTM container change review so new tags are consent-gated before they ship, multi-tool scanning and findings reported into your existing weekly and quarterly cadence.",
                    "short_answer": "Ongoing. A static implementation drifts out of compliance within months.",
                    "keywords": [
                        "compliance monitoring",
                        "ongoing compliance",
                        "re-verification"
                    ],
                    "service_url": "https://www.kevinleary.net/services/privacy-consent-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#is-privacy-compliance-a-one-time-project-or-ongoing"
                },
                {
                    "question": "Are you giving us legal advice?",
                    "answer": "No. I am an engineer, not an attorney, and the question of which laws apply to your business belongs with counsel. What I do is implement their guidance accurately, show them exactly what the site does today and give them documentation they can review, so legal decisions are made on real technical facts. I work directly with outside counsel and in-house legal teams throughout.",
                    "short_answer": "No. I implement and document; your counsel decides the legal questions.",
                    "keywords": [
                        "legal advice",
                        "attorney",
                        "counsel",
                        "disclaimer"
                    ],
                    "service_url": "https://www.kevinleary.net/services/privacy-consent-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#are-you-giving-us-legal-advice"
                },
                {
                    "question": "If a visitor rejects cookies, are the existing ones removed?",
                    "answer": "Only if you configured it. Most banners stop future scripts from loading but leave cookies already set by earlier visits sitting in the browser, which is exactly what a compliance scanner screenshots. I configure automatic clearing per category and then verify vendor by vendor that the cookies really disappear on reject rather than trusting library defaults.",
                    "short_answer": "Not by default. I configure per-category clearing and verify it per vendor.",
                    "keywords": [
                        "cookie clearing",
                        "reject cookies",
                        "autoclear"
                    ],
                    "service_url": "https://www.kevinleary.net/services/privacy-consent-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#if-a-visitor-rejects-cookies-are-the-existing-ones"
                }
            ]
        },
        {
            "topic": "Accessibility & WCAG",
            "description": "Audits, remediation in the theme, procurement reviews and keeping sites from regressing.",
            "questions": [
                {
                    "question": "What is WCAG and which version applies to us?",
                    "answer": "WCAG is the Web Content Accessibility Guidelines, the technical standard nearly every accessibility requirement points at. It has three conformance levels: A, AA and AAA, and AA is the practical target referenced by most laws, procurement policies and settlements. WCAG 2.1 AA is the common baseline today, with 2.2 adding a small number of further criteria around focus appearance and dragging. Which version you are held to is a question for your counsel; building to 2.1 AA and picking up 2.2 additions as you go is the practical approach.",
                    "short_answer": "The standard accessibility requirements point at. Build to 2.1 AA; counsel decides what you are held to.",
                    "keywords": [
                        "wcag",
                        "wcag 2.1",
                        "wcag 2.2",
                        "aa compliance"
                    ],
                    "service_url": "https://www.kevinleary.net/services/accessibility-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#what-is-wcag-and-which-version-applies-to-us"
                },
                {
                    "question": "Can we just install an accessibility overlay widget?",
                    "answer": "No. Overlays sit on top of your site and try to patch accessibility at runtime, and they consistently fail to fix the underlying markup while breaking assistive technology that already works. Sites running them have been frequently targeted in accessibility litigation and screen reader users have publicly opposed them in large numbers. If a vendor promises compliance from a single script tag, that is the strongest signal to fix the site properly instead. Fixes belong in your markup and CSS.",
                    "short_answer": "No. Overlays do not work and attract the attention you are trying to avoid.",
                    "keywords": [
                        "accessibility overlay",
                        "accessibe",
                        "userway",
                        "widget"
                    ],
                    "service_url": "https://www.kevinleary.net/services/accessibility-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#can-we-just-install-an-accessibility-overlay-widget"
                },
                {
                    "question": "How do you audit a site for accessibility?",
                    "answer": "Automated tooling first, because it is fast and finds real problems: Lighthouse and axe across representative templates rather than every page. Then manual testing, which is where the important failures show up: navigating by keyboard alone, checking focus visibility and order, reading the heading structure and testing forms end to end. The output is a triaged list where every finding gets a category, a recommendation and an effort estimate, and false positives are called out with the reason rather than quietly dropped.",
                    "short_answer": "Automated scans plus manual keyboard, focus, heading and form testing, delivered as a triaged fix list.",
                    "keywords": [
                        "accessibility audit",
                        "lighthouse",
                        "axe",
                        "triage"
                    ],
                    "service_url": "https://www.kevinleary.net/services/accessibility-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#how-do-you-audit-a-site-for-accessibility"
                },
                {
                    "question": "Can automated tools catch every accessibility issue?",
                    "answer": "No, and that gap is why so many sites with clean scan reports are still unusable. Automated tooling reliably catches roughly a third of WCAG criteria: missing alt attributes, contrast ratios, form labels, empty links. It cannot judge whether alt text is meaningful, whether tab order matches visual order, whether a custom component behaves sensibly under a screen reader or whether an error message tells someone what went wrong. Those need a person.",
                    "short_answer": "No. Scanners catch about a third of criteria; the rest needs manual testing.",
                    "keywords": [
                        "automated accessibility testing",
                        "manual testing",
                        "scanner limits"
                    ],
                    "service_url": "https://www.kevinleary.net/services/accessibility-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#can-automated-tools-catch-every-accessibility-issue"
                },
                {
                    "question": "Our scan report shows hundreds of issues. Is this a six-month project?",
                    "answer": "Usually not. Automated tools count every instance, so one bad component in a template repeated across two hundred pages reports as two hundred issues and takes one fix. Triage almost always collapses a frightening number into a much smaller set of real changes. For a typical corporate WordPress site the triaged list is days rather than months of work; custom interactive components, complex forms and video experiences take longer. The honest scope comes after triage, not before.",
                    "short_answer": "Rarely. Most findings repeat across templates, and one fix closes many instances.",
                    "keywords": [
                        "accessibility timeline",
                        "issue count",
                        "remediation effort"
                    ],
                    "service_url": "https://www.kevinleary.net/services/accessibility-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#our-scan-report-shows-hundreds-of-issues-is-this"
                },
                {
                    "question": "Will accessibility remediation require a redesign?",
                    "answer": "Almost never. Most remediation happens in the theme layer: focus styles, heading structure, labels, alt text, keyboard behavior and ARIA, none of which change how the site looks. Contrast is the one place design gets involved, and the usual answer is a slightly darker shade of a color you already use. I bring the measurements and options to your designers and implement whatever they choose consistently across the theme.",
                    "short_answer": "No. Nearly all fixes are invisible; contrast is the only design conversation.",
                    "keywords": [
                        "redesign",
                        "color contrast",
                        "brand colors"
                    ],
                    "service_url": "https://www.kevinleary.net/services/accessibility-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#will-accessibility-remediation-require-a-redesign"
                },
                {
                    "question": "Will we be WCAG 2.1 AA compliant when the work is done?",
                    "answer": "I will not certify that, and you should be skeptical of anyone who does. What I deliver is remediation of every finding we agree to address, documented, plus a clear statement of what remains and why. Formal conformance claims and legal exposure are a conversation for your counsel and, if needed, a specialist auditor I am happy to work alongside.",
                    "short_answer": "I remediate and document; formal conformance claims belong with counsel or a specialist auditor.",
                    "keywords": [
                        "wcag certification",
                        "compliance claim",
                        "conformance"
                    ],
                    "service_url": "https://www.kevinleary.net/services/accessibility-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#will-we-be-wcag-2-1-aa-compliant-when"
                },
                {
                    "question": "Can you help with a VPAT or a customer accessibility review?",
                    "answer": "I supply the engineering side: what the site does today, what has been remediated, what remains and why, in language a reviewer can evaluate. That is normally what stalls these questionnaires. The formal VPAT document itself is typically completed by your team or a specialist accessibility auditor, and I work alongside them. I also publish and link the accessibility statement and contact route reviewers look for first.",
                    "short_answer": "Yes, the engineering answers and documentation; the formal VPAT is completed with your team or an auditor.",
                    "keywords": [
                        "vpat",
                        "procurement",
                        "accessibility review",
                        "accessibility statement"
                    ],
                    "service_url": "https://www.kevinleary.net/services/accessibility-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#can-you-help-with-a-vpat-or-a-customer"
                },
                {
                    "question": "What accessibility problems do you find most often?",
                    "answer": "The same handful on almost every site: focus indicators removed in CSS because they looked untidy, header menus that only open on hover and cannot be reached by keyboard, a skip link that is broken or points at nothing, heading levels used as styling so the structure jumps from h2 to h5, images with missing or auto-generated alt text, decorative icons announced to screen readers as content and form fields with placeholder text instead of a real label.",
                    "short_answer": "Missing focus states, hover-only menus, broken skip links, bad heading order, missing alt text and unlabeled forms.",
                    "keywords": [
                        "common accessibility issues",
                        "focus states",
                        "skip link",
                        "alt text"
                    ],
                    "service_url": "https://www.kevinleary.net/services/accessibility-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#what-accessibility-problems-do-you-find-most-often"
                },
                {
                    "question": "Is accessibility a one-time project or ongoing?",
                    "answer": "Both happen, but a one-time pass decays. Every redesign, new page template, new plugin and content push reintroduces problems and the site drifts back within a year. Inside a maintenance retainer, new templates get checked before they ship, alt text enforcement lives in the CMS so editors cannot publish an image without a description and periodic re-scans catch regressions while they are small. That is where the standard actually holds.",
                    "short_answer": "Ongoing is where it holds. One-time passes drift back within a year.",
                    "keywords": [
                        "accessibility maintenance",
                        "regression prevention"
                    ],
                    "service_url": "https://www.kevinleary.net/services/accessibility-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#is-accessibility-a-one-time-project-or-ongoing"
                },
                {
                    "question": "Does accessibility work help SEO?",
                    "answer": "A fair amount of it overlaps. Correct heading structure, meaningful alt text, descriptive link text and semantic markup all help crawlers and AI answer engines interpret a page, and several of those items show up in both my accessibility and SEO fix lists. It is a genuine side benefit rather than the reason to do the work.",
                    "short_answer": "Partly. Headings, alt text and semantics help both, but it is a side benefit.",
                    "keywords": [
                        "accessibility seo",
                        "semantic markup"
                    ],
                    "service_url": "https://www.kevinleary.net/services/accessibility-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#does-accessibility-work-help-seo"
                }
            ]
        },
        {
            "topic": "SEO, AEO & AI Visibility",
            "description": "Technical SEO, structured data, LLM feeds, AI citation strategy and measurement.",
            "questions": [
                {
                    "question": "What is AEO or GEO (AI search optimization)?",
                    "answer": "Answer engine optimization, also called generative engine optimization, is the practice of making your brand and content the source that AI tools such as ChatGPT, Claude, Gemini, Perplexity and Google's AI Overviews cite when answering relevant questions. It builds on SEO fundamentals but emphasizes factual accuracy, comprehensive coverage, clear entity relationships, structured data and machine-readable infrastructure that keeps LLMs supplied with current information about your business.",
                    "short_answer": "Making your content the source AI answer engines cite.",
                    "keywords": [
                        "aeo",
                        "geo",
                        "generative engine optimization",
                        "ai search",
                        "llm visibility"
                    ],
                    "service_url": "https://www.kevinleary.net/services/aeo-ai-seo-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#what-is-aeo-or-geo-ai-search-optimization"
                },
                {
                    "question": "How is AEO different from traditional SEO?",
                    "answer": "SEO optimizes for ranking positions in search results. AEO optimizes for being cited as an authoritative source in AI responses. The tactics overlap, including structured data, content quality and authority signals, but AEO weights factual accuracy, information density and clear entity relationships more heavily than traditional factors like backlinks. Strong SEO fundamentals are the foundation; the work is extended, not replaced, and most businesses need both.",
                    "short_answer": "SEO targets rankings; AEO targets citations. They share foundations and you need both.",
                    "keywords": [
                        "aeo vs seo",
                        "geo vs seo"
                    ],
                    "service_url": "https://www.kevinleary.net/services/aeo-ai-seo-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#how-is-aeo-different-from-traditional-seo"
                },
                {
                    "question": "How do LLMs decide which content to cite?",
                    "answer": "They favor content that is factually accurate, comprehensive, well-structured and comes from sources with clear authority. Signals are similar to search engines but weighted differently: clarity, information density and consistency of facts across the web matter more than link counts. Consolidated, authoritative resources tend to outperform many thin pages targeting individual keywords.",
                    "short_answer": "Accuracy, depth, structure and clear authority outweigh traditional link signals.",
                    "keywords": [
                        "llm citations",
                        "how ai chooses sources",
                        "authority"
                    ],
                    "service_url": "https://www.kevinleary.net/services/aeo-ai-seo-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#how-do-llms-decide-which-content-to-cite"
                },
                {
                    "question": "Can you measure traffic and visibility from AI tools?",
                    "answer": "Yes, with the right setup. I implement custom tracking that identifies referrals from ChatGPT, Perplexity, Claude and other AI tools, and in many cases captures the specific prompts and questions that lead people to your site. Combined with monitoring of how your brand appears across LLMs for the questions that matter, that gives you a measurable view of AI visibility and how those visitors convert.",
                    "short_answer": "Yes: AI referral tracking, prompt capture and cross-LLM visibility monitoring.",
                    "keywords": [
                        "ai traffic",
                        "llm referrals",
                        "chatgpt traffic",
                        "ai visibility measurement"
                    ],
                    "service_url": "https://www.kevinleary.net/services/aeo-ai-seo-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#can-you-measure-traffic-and-visibility-from-ai-tools"
                },
                {
                    "question": "How long before we see results from AI optimization?",
                    "answer": "Initial improvements in AI visibility can appear within weeks of implementing changes, but meaningful traffic shifts typically take two to four months. Unlike SEO, you are not waiting only on crawl cycles; you are waiting for people to ask the right questions and for models and retrieval systems to pick up the updated signals.",
                    "short_answer": "Visibility changes in weeks; meaningful traffic shifts in two to four months.",
                    "keywords": [
                        "aeo timeline",
                        "results",
                        "how long"
                    ],
                    "service_url": "https://www.kevinleary.net/services/aeo-ai-seo-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#how-long-before-we-see-results-from-ai-optimization"
                },
                {
                    "question": "Should we add an llms.txt file?",
                    "answer": "It will not hurt, but do not expect it to do much. llms.txt is widely recommended, yet there is real evidence that major providers do not act on it. I will deploy one if you want the box checked, but what I recommend and have advocated from the start is a dynamic JSON API: endpoints that feed structured, always-current information about your business, products and frequently updated content directly to LLMs and AI agents. Unlike a static text file it keeps pace with content you publish daily.",
                    "short_answer": "Fine to add, but a dynamic JSON feed for LLMs is the approach that actually works.",
                    "keywords": [
                        "llms.txt",
                        "llm feed",
                        "json api for ai"
                    ],
                    "service_url": "https://www.kevinleary.net/services/aeo-ai-seo-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#should-we-add-an-llms-txt-file"
                },
                {
                    "question": "How does structured data help with AI visibility?",
                    "answer": "Schema.org markup and structured data help LLMs understand what your content is about, who created it and how authoritative it is. Clear entity relationships connecting your brand to products, people and topics make it easier for AI to confidently cite you. I implement detailed structured data and go further with machine-readable feeds designed specifically for LLM consumption.",
                    "short_answer": "It clarifies entities and authority so AI can cite you with confidence.",
                    "keywords": [
                        "schema markup",
                        "structured data",
                        "entity",
                        "knowledge graph"
                    ],
                    "service_url": "https://www.kevinleary.net/services/aeo-ai-seo-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#how-does-structured-data-help-with-ai-visibility"
                },
                {
                    "question": "Can you guarantee AI will cite our brand?",
                    "answer": "No one can guarantee specific AI citations, and anyone who does is not being straight with you. What I can commit to is implementing every known factor that increases the likelihood, measuring the results with real attribution and iterating based on data. If I cannot measure it, I do not recommend it.",
                    "short_answer": "No. I implement every known factor, measure and iterate; guarantees are not honest.",
                    "keywords": [
                        "guarantee",
                        "ai citations",
                        "expectations"
                    ],
                    "service_url": "https://www.kevinleary.net/services/aeo-ai-seo-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#can-you-guarantee-ai-will-cite-our-brand"
                },
                {
                    "question": "What type of content performs best for AI visibility?",
                    "answer": "Comprehensive, factually accurate content that directly answers specific questions. LLMs favor pages that cover a topic thoroughly over thin pages targeting individual keywords, so consolidating related content into authoritative resources often outperforms having many scattered pages. Understanding your product the way a customer would is what makes that precision possible; tools alone do not get you there.",
                    "short_answer": "Thorough, accurate, question-answering content, consolidated rather than scattered.",
                    "keywords": [
                        "content strategy",
                        "content consolidation",
                        "ai content"
                    ],
                    "service_url": "https://www.kevinleary.net/services/aeo-ai-seo-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#what-type-of-content-performs-best-for-ai-visibility"
                },
                {
                    "question": "Are there risks to using AI to create content?",
                    "answer": "Yes. LLMs can detect generic AI-generated content and may weight it less favorably, and the bigger risk is publishing inaccurate or diluted material that gets flagged during Google spam updates. What works is using AI to build solid templates and structures, then filling them with ideas that come from you and a full understanding of the business. Having AI generate the ideas themselves produces diluted content. Paired with genuine expertise and a review process, it increases output without degrading quality.",
                    "short_answer": "Yes if AI supplies the ideas. Use it for templates and structure; the ideas must come from you.",
                    "keywords": [
                        "ai generated content",
                        "content risk",
                        "ai workflows",
                        "google spam updates"
                    ],
                    "service_url": "https://www.kevinleary.net/services/aeo-ai-seo-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#are-there-risks-to-using-ai-to-create-content"
                },
                {
                    "question": "Do you analyze how competitors appear in AI answers?",
                    "answer": "Yes. Part of the process is competitive analysis specifically for AI visibility: testing how competitors appear across different LLMs for the questions your buyers ask, identifying where they are cited and you are not, and finding gaps you can take. Most companies have not started, which is usually the opportunity.",
                    "short_answer": "Yes, cross-LLM competitive visibility analysis is part of the process.",
                    "keywords": [
                        "competitor analysis",
                        "ai visibility comparison"
                    ],
                    "service_url": "https://www.kevinleary.net/services/aeo-ai-seo-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#do-you-analyze-how-competitors-appear-in-ai-answers"
                },
                {
                    "question": "Do you still do traditional technical SEO?",
                    "answer": "Yes. Technical SEO audits, Search Console fixes, redirect mapping, content architecture, Core Web Vitals, image and metadata cleanup and schema markup remain core work, and they are the foundation AI visibility is built on. Consolidating low-value pages so the pages that matter take their place has produced more clicks from fewer impressions in Search Console for clients while AI visibility grew over the same period.",
                    "short_answer": "Yes. Technical SEO is the foundation of the AI visibility work.",
                    "keywords": [
                        "technical seo",
                        "seo audit",
                        "search console",
                        "redirects"
                    ],
                    "service_url": "https://www.kevinleary.net/services/aeo-ai-seo-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#do-you-still-do-traditional-technical-seo"
                },
                {
                    "question": "Can you set up product feeds for ChatGPT shopping and other AI agents?",
                    "answer": "Yes. I build product and shopping feeds for OpenAI and ChatGPT shopping, TikTok catalogs and ad platform feeds, plus dynamic JSON endpoints that keep pricing, availability and product details current for AI agents. Feed structure follows each platform's published specification.",
                    "short_answer": "Yes, ChatGPT shopping, TikTok and ad platform feeds plus live JSON endpoints.",
                    "keywords": [
                        "product feed",
                        "chatgpt shopping",
                        "shopping feed",
                        "ai agents"
                    ],
                    "service_url": "https://www.kevinleary.net/services/aeo-ai-seo-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#can-you-set-up-product-feeds-for-chatgpt-shopping"
                },
                {
                    "question": "How do you handle AI crawlers and bots on our site?",
                    "answer": "Deliberately. I configure Cloudflare AI crawler and bot rules and robots.txt strategy so the crawlers you want to feed are allowed and the ones you do not are blocked or rate-limited, and where it makes sense I set up AI crawler licensing and monetization. The right policy depends on whether your content is a lead-generation asset or a product in itself.",
                    "short_answer": "Cloudflare and robots.txt rules that allow, block or monetize AI crawlers based on your goals.",
                    "keywords": [
                        "ai crawlers",
                        "robots.txt",
                        "cloudflare ai bots",
                        "crawler licensing"
                    ],
                    "service_url": "https://www.kevinleary.net/services/aeo-ai-seo-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#how-do-you-handle-ai-crawlers-and-bots-on"
                },
                {
                    "question": "What if the AI landscape changes completely?",
                    "answer": "The fundamentals of factual accuracy, comprehensive content, structured data and clear authority signals work across every LLM. Rather than optimizing for specific tools that may change, I focus on the principles that will matter regardless of which AI products dominate next year, and I keep measuring so strategy adapts as the signals do.",
                    "short_answer": "The fundamentals transfer. I optimize for principles, not one tool, and keep measuring.",
                    "keywords": [
                        "future proof",
                        "ai changes",
                        "durability"
                    ],
                    "service_url": "https://www.kevinleary.net/services/aeo-ai-seo-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#what-if-the-ai-landscape-changes-completely"
                },
                {
                    "question": "How do you measure SEO results and prove the work is producing positive outcomes?",
                    "answer": "With before-and-after comparisons in Google Search Console, supported by custom tooling such as AI Track for AI visibility. When an initiative begins, say six weeks of optimizations I recommended and implemented, I compare search performance for that window against the six weeks before it: positions, impressions and most importantly clicks through to the site, since impressions alone are not a result. It is rare for SEO firms to report this way because it shows whether the work actually moved anything, and most cannot guarantee that it will.",
                    "short_answer": "Search Console before-and-after comparisons focused on clicks, plus AI Track for AI visibility.",
                    "keywords": [
                        "seo measurement",
                        "search console",
                        "proving seo results",
                        "clicks vs impressions",
                        "seo reporting"
                    ],
                    "service_url": "https://www.kevinleary.net/services/aeo-ai-seo-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#how-do-you-measure-seo-results-and-prove-the"
                }
            ]
        },
        {
            "topic": "BigQuery & Data Engineering",
            "description": "Warehouses, GA4 pipelines, ETL, cost optimization and executive reporting.",
            "questions": [
                {
                    "question": "What does a BigQuery or data engineering engagement include?",
                    "answer": "Google Cloud project setup with IAM controls, GA4 and Search Console exports, server-side tagging pipelines that feed the warehouse directly, ETL from CRM and marketing platforms through Fivetran, Airbyte or custom pipelines, version-controlled SQL modeling with Dataform or dbt, scheduled queries as the reporting engine, dashboards in Looker Studio, Tableau or Power BI, automated executive email reports, cost and performance optimization, monitoring and continuous documentation. I work as your fractional data engineer.",
                    "short_answer": "Warehouse setup, pipelines, modeling, dashboards, executive reports, cost control and monitoring.",
                    "keywords": [
                        "bigquery consultant",
                        "data engineering",
                        "data warehouse",
                        "fractional data engineer"
                    ],
                    "service_url": "https://www.kevinleary.net/services/bigquery-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#what-does-a-bigquery-or-data-engineering-engagement-include"
                },
                {
                    "question": "How does a BigQuery engagement start?",
                    "answer": "With a paid diagnostic of your existing setup: the warehouse you inherited, the GA4 export nobody modeled or the query bill that keeps climbing. You get a written assessment and a concrete roadmap either way, with datasets, transformations and deliverables defined up front so the project does not fail on scope creep. Nearly every long-term data engagement I have began this way.",
                    "short_answer": "A paid diagnostic that produces a written assessment and roadmap.",
                    "keywords": [
                        "bigquery diagnostic",
                        "data audit",
                        "roadmap"
                    ],
                    "service_url": "https://www.kevinleary.net/services/bigquery-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#how-does-a-bigquery-engagement-start"
                },
                {
                    "question": "Can you set up the GA4 export to BigQuery and make it usable?",
                    "answer": "Yes. The native export is the starting point, but raw event tables are not reporting-ready. I connect GA4 and Search Console, add server-side GA4 and GTM pipelines that capture more than the native export does, then model sessions, users, conversions and attribution into clean tables that scheduled queries and dashboards can rely on.",
                    "short_answer": "Yes, export plus server-side pipelines, modeled into reporting-ready tables.",
                    "keywords": [
                        "ga4 bigquery export",
                        "ga4 modeling",
                        "session modeling"
                    ],
                    "service_url": "https://www.kevinleary.net/services/bigquery-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#can-you-set-up-the-ga4-export-to-bigquery"
                },
                {
                    "question": "Our BigQuery bill keeps climbing. Can you reduce it?",
                    "answer": "Yes. Cost reduction comes from clustering and partitioning, query plan execution analysis, rewriting expensive queries, pruning unused scheduled jobs, choosing between on-demand and dedicated compute pricing correctly and configuring cost limits and forecasts so surprises stop. I have optimized terabyte-scale queries, and warehouse takeovers routinely lower the bill while fixing what was broken.",
                    "short_answer": "Yes, through partitioning, clustering, query optimization, pricing model choice and cost limits.",
                    "keywords": [
                        "bigquery cost",
                        "query optimization",
                        "partitioning",
                        "clustering"
                    ],
                    "service_url": "https://www.kevinleary.net/services/bigquery-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#our-bigquery-bill-keeps-climbing-can-you-reduce-it"
                },
                {
                    "question": "Which data tools do you work with?",
                    "answer": "Dataform and dbt for version-controlled SQL modeling, Fivetran and Airbyte for managed connectors, Google Cloud Functions and Pub/Sub for custom and streaming ETL, Looker, Looker Studio, Tableau and Power BI for visualization, BigQuery ML for forecasting and DuckDB or MotherDuck where a full BigQuery deployment is overkill. The stack is matched to the workload, not the trend.",
                    "short_answer": "Dataform, dbt, Fivetran, Airbyte, Pub/Sub, Cloud Functions, Looker, Tableau, Power BI, DuckDB.",
                    "keywords": [
                        "dataform",
                        "dbt",
                        "fivetran",
                        "airbyte",
                        "looker",
                        "tableau",
                        "duckdb"
                    ],
                    "service_url": "https://www.kevinleary.net/services/bigquery-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#which-data-tools-do-you-work-with"
                },
                {
                    "question": "Can you connect our CRM and marketing platforms to the warehouse?",
                    "answer": "Yes. HubSpot, Salesforce, Marketo, Intercom, Zoho, Google Ads, Segment and similar platforms are connected through managed connectors or custom ETL so leadership can measure sales and marketing performance end to end, from first touch through closed revenue, in one place.",
                    "short_answer": "Yes, CRM and marketing data flows into the warehouse for end-to-end reporting.",
                    "keywords": [
                        "hubspot bigquery",
                        "salesforce bigquery",
                        "crm pipeline",
                        "etl"
                    ],
                    "service_url": "https://www.kevinleary.net/services/bigquery-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#can-you-connect-our-crm-and-marketing-platforms-to"
                },
                {
                    "question": "Does consent and privacy compliance break warehouse reporting?",
                    "answer": "It does not have to. Measurement architecture is designed so BigQuery data stays coherent under GDPR and CCPA consent regimes: partial consent is modeled rather than treated as broken data, PII is excluded at collection and governance scanning reports compliance issues against standards such as GDPR, HIPAA, PCI DSS and CCPA.",
                    "short_answer": "No, if measurement is designed to be consent-aware from the start.",
                    "keywords": [
                        "consent-aware measurement",
                        "data governance",
                        "privacy compliance warehouse"
                    ],
                    "service_url": "https://www.kevinleary.net/services/bigquery-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#does-consent-and-privacy-compliance-break-warehouse-reporting"
                },
                {
                    "question": "Can executives get reports without logging into a dashboard?",
                    "answer": "Yes. I productize weekly or monthly email reports driven directly from BigQuery and delivered to leadership inboxes with the numbers that matter: revenue, leads, channel effectiveness and whatever KPIs the business runs on. Dashboards remain available for people who want to dig in.",
                    "short_answer": "Yes, scheduled email reports straight from the warehouse.",
                    "keywords": [
                        "executive reporting",
                        "automated email reports",
                        "kpi reports"
                    ],
                    "service_url": "https://www.kevinleary.net/services/bigquery-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#can-executives-get-reports-without-logging-into-a-dashboard"
                },
                {
                    "question": "Can you take over a data warehouse someone else built?",
                    "answer": "Yes. Warehouse takeovers start by documenting what exists, then fixing what is broken, cutting what you do not need and lowering the bill along the way. Continuous documentation follows so you always know what each dataset is, where it came from, who has access and what it can be used for.",
                    "short_answer": "Yes: document, fix, prune, reduce cost, then keep it documented.",
                    "keywords": [
                        "inherited warehouse",
                        "warehouse audit",
                        "takeover"
                    ],
                    "service_url": "https://www.kevinleary.net/services/bigquery-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#can-you-take-over-a-data-warehouse-someone-else"
                },
                {
                    "question": "Can you migrate data from Snowflake, Redshift, Oracle or other systems into BigQuery?",
                    "answer": "Yes. I plan and execute large-scale migrations from Snowflake, Amazon Redshift, Oracle and other platforms, including schema design for BigQuery, validation of migrated data and cutover of the reporting that depends on it.",
                    "short_answer": "Yes, with schema design, validation and reporting cutover.",
                    "keywords": [
                        "snowflake to bigquery",
                        "redshift migration",
                        "data migration"
                    ],
                    "service_url": "https://www.kevinleary.net/services/bigquery-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#can-you-migrate-data-from-snowflake-redshift-oracle-or"
                },
                {
                    "question": "Can you identify which companies are visiting our website?",
                    "answer": "Yes. Reverse-DNS enrichment in the warehouse identifies the organizations behind visits, feeding account-based marketing and sales intelligence from your own first-party data without a third-party subscription. The same data can drive on-site personalization such as geo- or industry-targeted calls to action.",
                    "short_answer": "Yes, via reverse-DNS enrichment in your own warehouse.",
                    "keywords": [
                        "visitor company identification",
                        "reverse dns",
                        "account-based marketing"
                    ],
                    "service_url": "https://www.kevinleary.net/services/bigquery-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#can-you-identify-which-companies-are-visiting-our-website"
                },
                {
                    "question": "What happens to the pipelines after launch?",
                    "answer": "A warehouse is not finished at handoff. Schemas drift, costs creep and scheduled queries break silently, so I set up monitoring and error notifications for every scheduled job and stay available after delivery to tune costs, fix breakages and extend what was built. Most organizations keep me on long-term for exactly that.",
                    "short_answer": "Monitoring and alerting are built in, and I stay on to maintain and extend.",
                    "keywords": [
                        "pipeline monitoring",
                        "ongoing data support",
                        "scheduled query failures"
                    ],
                    "service_url": "https://www.kevinleary.net/services/bigquery-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#what-happens-to-the-pipelines-after-launch"
                }
            ]
        },
        {
            "topic": "Custom eCommerce",
            "description": "Purpose-built checkout, subscriptions, paywalls and Stripe integrations on WordPress.",
            "questions": [
                {
                    "question": "Do you work with WooCommerce?",
                    "answer": "Yes, and often. A large share of that work is performance audits and evaluations of existing WooCommerce stores: slow checkouts, database bloat from order and product meta, plugin conflicts, payment gateway configuration, product feeds to ad platforms and conversion pixels tied to real checkout events. For new builds with specific purchasing flows, subscription models or very high volume, I also build purpose-built systems that integrate directly with Stripe and use custom database schemas instead of a plugin stack. Which path fits depends on the product, the volume and the team running it, and I will recommend the one that does.",
                    "short_answer": "Yes. Audits, performance work and support for existing Woo stores, plus purpose-built Stripe systems when the requirements call for it.",
                    "keywords": [
                        "woocommerce",
                        "woocommerce audit",
                        "woocommerce performance",
                        "custom ecommerce",
                        "stripe wordpress"
                    ],
                    "service_url": "https://www.kevinleary.net/services/custom-wordpress-ecommerce/",
                    "url": "https://www.kevinleary.net/faqs/#do-you-work-with-woocommerce"
                },
                {
                    "question": "When is a purpose-built system a better fit than WooCommerce?",
                    "answer": "When the purchasing flow is specific to your product, when subscriptions or tiered pricing drive the business model or when order volume is high enough that WooCommerce's data model becomes the bottleneck. WooCommerce stores much of its data in wp_postmeta, so every order adds dozens of unindexed rows and reporting and admin slow down as volume grows, and a large plugin stack adds upgrade risk. For standard catalogs run by a small team, WooCommerce is the right tool and I keep it fast; beyond that, a lean application that happens to run on WordPress avoids the bloat and gives you a checkout designed around your product.",
                    "short_answer": "Custom flows, subscriptions or high volume. For standard catalogs, WooCommerce is fine and I keep it fast.",
                    "keywords": [
                        "woocommerce vs custom",
                        "postmeta",
                        "plugin bloat",
                        "when to go custom"
                    ],
                    "service_url": "https://www.kevinleary.net/services/custom-wordpress-ecommerce/",
                    "url": "https://www.kevinleary.net/faqs/#when-is-a-purpose-built-system-a-better-fit"
                },
                {
                    "question": "Can WordPress handle high volumes of customers and orders?",
                    "answer": "Yes, when high-volume data is kept out of the standard wp_users and wp_posts tables. I handle custom user and order management in purpose-designed tables, which makes the system as lean and scalable as a framework application while keeping the CMS your team already knows. I have built subscription systems on this approach that support tens of thousands of paying customers with ease.",
                    "short_answer": "Yes, with custom schemas instead of the default WordPress tables for high-volume data.",
                    "keywords": [
                        "wordpress scale ecommerce",
                        "custom tables",
                        "subscribers"
                    ],
                    "service_url": "https://www.kevinleary.net/services/custom-wordpress-ecommerce/",
                    "url": "https://www.kevinleary.net/faqs/#can-wordpress-handle-high-volumes-of-customers-and-orders"
                },
                {
                    "question": "We have thousands of products. How does that work with Stripe?",
                    "answer": "With a variable-price product pattern. Instead of syncing ten thousand items to Stripe, which is unmanageable, a single master product exists in Stripe and the price, name and metadata are passed dynamically into each Checkout Session. That powers very large catalogs with zero friction and avoids the slowdowns large catalogs often hit in a plugin-based store.",
                    "short_answer": "One master Stripe product with dynamic price and metadata per checkout.",
                    "keywords": [
                        "large catalog",
                        "stripe checkout",
                        "dynamic pricing"
                    ],
                    "service_url": "https://www.kevinleary.net/services/custom-wordpress-ecommerce/",
                    "url": "https://www.kevinleary.net/faqs/#we-have-thousands-of-products-how-does-that-work"
                },
                {
                    "question": "Do you build subscriptions, paywalls and member accounts?",
                    "answer": "Yes. Recurring billing, renewals, upgrades and cancellations through Stripe, group and corporate subscriptions with bulk membership support, paywalled content and digital product delivery, customer portals and the back-office tools your team uses to manage it all. Systems are designed around MRR, churn and LTV, not just a checkout button.",
                    "short_answer": "Yes, Stripe subscriptions, group memberships, paywalls, portals and back office.",
                    "keywords": [
                        "subscriptions",
                        "paywall",
                        "membership",
                        "customer portal",
                        "recurring billing"
                    ],
                    "service_url": "https://www.kevinleary.net/services/custom-wordpress-ecommerce/",
                    "url": "https://www.kevinleary.net/faqs/#do-you-build-subscriptions-paywalls-and-member-accounts"
                },
                {
                    "question": "How do you handle reporting and monitoring for transactions?",
                    "answer": "Custom database tables log raw data from Stripe webhooks, and custom dashboards act as a translation layer so the data is simple to interpret without the false positives of raw logs. Because the schema is minimal and purpose-built, precise SQL produces reports instantly instead of freezing the database the way plugin queries do. Server-side conversion tracking is tied to the same real payment events.",
                    "short_answer": "Webhook logging in custom tables, readable dashboards and instant SQL reporting.",
                    "keywords": [
                        "transaction monitoring",
                        "stripe webhooks",
                        "ecommerce reporting"
                    ],
                    "service_url": "https://www.kevinleary.net/services/custom-wordpress-ecommerce/",
                    "url": "https://www.kevinleary.net/faqs/#how-do-you-handle-reporting-and-monitoring-for-transactions"
                },
                {
                    "question": "Can we accept ACH payments to save on fees?",
                    "answer": "Yes, but ACH can take days to settle, which is the challenge. I build custom logic to handle pending states so access to high-value products is not granted until funds are actually secured, with the delays and financial risk handled automatically rather than by someone watching a dashboard.",
                    "short_answer": "Yes, with pending-state logic that protects you until funds settle.",
                    "keywords": [
                        "ach payments",
                        "bank debit",
                        "stripe ach"
                    ],
                    "service_url": "https://www.kevinleary.net/services/custom-wordpress-ecommerce/",
                    "url": "https://www.kevinleary.net/faqs/#can-we-accept-ach-payments-to-save-on-fees"
                },
                {
                    "question": "How do you handle transactional email for receipts and account notices?",
                    "answer": "Through WordPress's built-in mail system routed to authenticated infrastructure rather than heavy plugins: Microsoft 365 or Google Workspace for standard volume, or AWS SES for high-volume, low-cost delivery, with SPF, DKIM and DMARC in place. I also build tools so your team can manage email copy while I handle the code and delivery reliability.",
                    "short_answer": "Authenticated delivery via Microsoft 365, Google Workspace or AWS SES, with editable copy.",
                    "keywords": [
                        "transactional email",
                        "aws ses",
                        "receipts",
                        "smtp"
                    ],
                    "service_url": "https://www.kevinleary.net/services/custom-wordpress-ecommerce/",
                    "url": "https://www.kevinleary.net/faqs/#how-do-you-handle-transactional-email-for-receipts-and"
                },
                {
                    "question": "Why build on WordPress instead of Laravel or React?",
                    "answer": "Pure framework applications often require keeping developers on staff just to manage daily operations. With a hybrid approach, management tools are built into WordPress so your team controls the business, while lean, purpose-built code handles the transactional logic and keeps maintenance close to zero. You get the flexibility of the world's most popular CMS with the performance of a custom application. Where a client already runs Laravel, I work in that stack too.",
                    "short_answer": "Your team can run it without a standing dev team, and it performs like a custom app.",
                    "keywords": [
                        "wordpress vs laravel",
                        "hybrid architecture",
                        "custom application"
                    ],
                    "service_url": "https://www.kevinleary.net/services/custom-wordpress-ecommerce/",
                    "url": "https://www.kevinleary.net/faqs/#why-build-on-wordpress-instead-of-laravel-or-react"
                },
                {
                    "question": "How do you handle PCI compliance and payment security?",
                    "answer": "Card data never touches your server: payment collection runs through Stripe's hosted and tokenized flows, which keeps your PCI scope minimal. Around that I apply strict security standards for customer PII in portals and back-office tools, authenticated webhooks, PII-free logging, Content Security Policy and the same hardening used for regulated clients.",
                    "short_answer": "Tokenized Stripe flows keep PCI scope minimal; everything around them is hardened.",
                    "keywords": [
                        "pci compliance",
                        "payment security",
                        "stripe security"
                    ],
                    "service_url": "https://www.kevinleary.net/services/custom-wordpress-ecommerce/",
                    "url": "https://www.kevinleary.net/faqs/#how-do-you-handle-pci-compliance-and-payment-security"
                },
                {
                    "question": "Can you add AI features to our eCommerce or lead generation flows?",
                    "answer": "Yes. I integrate APIs from OpenAI, Anthropic and Google Gemini to automate complex tasks: classifying and blocking spam form submissions, enriching leads, generating and reviewing content, powering onboarding assistants and handling workflows that used to need manual review. The integration is built into your own system so you own the data and the logic.",
                    "short_answer": "Yes, OpenAI, Anthropic and Gemini APIs built into your own workflows.",
                    "keywords": [
                        "ai integration",
                        "openai api",
                        "anthropic",
                        "spam filtering",
                        "ai features"
                    ],
                    "service_url": "https://www.kevinleary.net/services/custom-wordpress-ecommerce/",
                    "url": "https://www.kevinleary.net/faqs/#can-you-add-ai-features-to-our-ecommerce-or"
                }
            ]
        },
        {
            "topic": "Digital Growth, Advertising & CRM",
            "description": "Lead generation, conversion optimization, ad platform integration and HubSpot or CRM implementation.",
            "questions": [
                {
                    "question": "What does a digital growth consultant do?",
                    "answer": "I act as your technical growth partner, like a fractional CMO who can also design, code and analyze. That means managing the website, optimizing for search and AI visibility, building analytics and advertising infrastructure, integrating the CRM and creating lead generation and conversion systems, all as one coherent machine rather than a set of disconnected vendors. Strategy and execution come from the same person.",
                    "short_answer": "A fractional growth lead who designs, builds and measures the whole funnel.",
                    "keywords": [
                        "digital growth consultant",
                        "fractional cmo",
                        "growth marketing"
                    ],
                    "service_url": "https://www.kevinleary.net/services/digital-growth-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#what-does-a-digital-growth-consultant-do"
                },
                {
                    "question": "Can one person really cover development, SEO, ads, analytics and CRM?",
                    "answer": "Yes, because these areas are all connected. A website needs SEO to be found, SEO needs analytics to be measured and ads need a fast landing page to convert. My expertise is in understanding the whole system and implementing pieces that work together, which matters more than having a separate specialist for each channel who never talks to the others.",
                    "short_answer": "Yes. The disciplines are connected, and making them work together is the job.",
                    "keywords": [
                        "breadth",
                        "generalist vs specialist",
                        "one person"
                    ],
                    "service_url": "https://www.kevinleary.net/services/digital-growth-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#can-one-person-really-cover-development-seo-ads-analytics"
                },
                {
                    "question": "Which advertising platforms do you work with, and do you manage spend?",
                    "answer": "Google Ads, Meta, TikTok, LinkedIn, Reddit, Snapchat and others. I configure and integrate every platform with server-side conversion events, product feeds and offline conversions so campaigns optimize toward real revenue, and I have managed budgets from modest monthly tests to six-figure monthly programs with a focus on CAC, ROAS and actual revenue impact rather than vanity metrics.",
                    "short_answer": "All major platforms, wired for accurate optimization, with budgets managed against CAC and ROAS.",
                    "keywords": [
                        "paid advertising",
                        "ad management",
                        "google ads",
                        "meta ads",
                        "roas"
                    ],
                    "service_url": "https://www.kevinleary.net/services/digital-growth-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#which-advertising-platforms-do-you-work-with-and-do"
                },
                {
                    "question": "Can you implement HubSpot or another CRM for us?",
                    "answer": "Yes. Complete HubSpot setup including forms, automation, email templates, lead scoring, attribution and Salesforce sync, plus website integration so leads flow cleanly from page to pipeline. The same applies to Marketo, Pardot and similar platforms. Consent and tracking are wired in correctly from day one.",
                    "short_answer": "Yes, full HubSpot and CRM implementation with website and Salesforce integration.",
                    "keywords": [
                        "hubspot implementation",
                        "crm setup",
                        "marketing automation",
                        "lead scoring"
                    ],
                    "service_url": "https://www.kevinleary.net/services/digital-growth-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#can-you-implement-hubspot-or-another-crm-for-us"
                },
                {
                    "question": "What kinds of lead generation systems do you build?",
                    "answer": "Custom onboarding and quoting flows, calculators, AI-powered tools, conversion-focused landing page systems and forms that identify and block spam before it reaches your sales team. Each is designed around how your buyers actually decide, measured end to end and iterated based on what the data shows.",
                    "short_answer": "Onboarding flows, calculators, AI tools, landing page systems and spam-proof forms.",
                    "keywords": [
                        "lead generation",
                        "calculators",
                        "onboarding flow",
                        "landing pages",
                        "cro"
                    ],
                    "service_url": "https://www.kevinleary.net/services/digital-growth-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#what-kinds-of-lead-generation-systems-do-you-build"
                },
                {
                    "question": "How do you use AI in content and marketing workflows?",
                    "answer": "As a productivity multiplier paired with real expertise. I build AI-assisted workflows using APIs and fine-tuning to increase content output while improving quality, automate repetitive marketing operations and productionize AI-generated pages and prototypes so they meet the same standards as everything else on the site. Generic, unreviewed AI content is not something I ship.",
                    "short_answer": "AI-assisted workflows that raise output and quality, with expert review built in.",
                    "keywords": [
                        "ai content marketing",
                        "ai workflows",
                        "fine-tuning",
                        "content automation"
                    ],
                    "service_url": "https://www.kevinleary.net/services/digital-growth-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#how-do-you-use-ai-in-content-and-marketing"
                },
                {
                    "question": "Do you do conversion rate optimization?",
                    "answer": "Yes. Strategy is built around identifying your most valuable clicks and increasing those, quality over quantity. I design the experiment, build the landing page or flow, wire up the tracking and read the results myself, so ideas do not die in a backlog between a strategist and a developer.",
                    "short_answer": "Yes, from hypothesis to build to measurement, by the same person.",
                    "keywords": [
                        "conversion rate optimization",
                        "cro",
                        "experiments",
                        "landing page testing"
                    ],
                    "service_url": "https://www.kevinleary.net/services/digital-growth-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#do-you-do-conversion-rate-optimization"
                },
                {
                    "question": "What results can we expect?",
                    "answer": "A more stable, faster website, clearer and more accurate analytics and a marketing funnel that converts better and is measured honestly. I do not report vanity metrics; the goal is honest data and changes that lead to more qualified leads, higher conversion rates and better return on ad spend. Specific targets are set once I understand your baseline.",
                    "short_answer": "A better site, honest data and a funnel that measurably converts more.",
                    "keywords": [
                        "results",
                        "expectations",
                        "roi"
                    ],
                    "service_url": "https://www.kevinleary.net/services/digital-growth-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#what-results-can-we-expect"
                }
            ]
        },
        {
            "topic": "Hosting, DevOps & Infrastructure",
            "description": "Managed WordPress hosts, deployment workflows, DNS and email infrastructure.",
            "questions": [
                {
                    "question": "Which hosting providers do you work with?",
                    "answer": "I am a certified or recommended consultant at Kinsta, WP Engine, Flywheel, IONOS and Cloudflare, have development and administration experience on WordPress VIP and also work on Pantheon, Pressable, Cloudways, AWS Lightsail and Google Cloud. That includes account and server management, bandwidth and capacity planning, host coordination on server-level limits and firewall behavior and migrations between providers.",
                    "short_answer": "Kinsta, WP Engine, WordPress VIP, Flywheel, Pantheon, Pressable, Cloudways, IONOS, AWS, Google Cloud.",
                    "keywords": [
                        "wordpress hosting",
                        "kinsta",
                        "wp engine",
                        "wordpress vip",
                        "cloudflare partner"
                    ],
                    "service_url": "https://www.kevinleary.net/services/wordpress-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#which-hosting-providers-do-you-work-with"
                },
                {
                    "question": "Do you provide hosting yourself?",
                    "answer": "No. You keep your own hosting account with a provider that fits your traffic, security and budget, and I recommend, configure and manage it on your behalf. That keeps you in control of your infrastructure and avoids the lock-in that comes with an agency reselling hosting.",
                    "short_answer": "No. You own the hosting account; I recommend and manage it.",
                    "keywords": [
                        "hosting reseller",
                        "who hosts the site",
                        "own your hosting"
                    ],
                    "service_url": "https://www.kevinleary.net/services/wordpress-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#do-you-provide-hosting-yourself"
                },
                {
                    "question": "How do you deploy changes safely?",
                    "answer": "Every change moves through a local, staging, production workflow with version control. Git-based deployment is configured so releases are repeatable and zero-downtime, staging environments mirror production for testing updates and new features, and rollback is planned before anything ships. Multi-developer teams get branching and review conventions documented.",
                    "short_answer": "Local to staging to production through Git, with zero-downtime deploys and rollback plans.",
                    "keywords": [
                        "git deploy",
                        "staging",
                        "deployment workflow",
                        "devops"
                    ],
                    "service_url": "https://www.kevinleary.net/services/wordpress-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#how-do-you-deploy-changes-safely"
                },
                {
                    "question": "Do you manage DNS, domains and email infrastructure?",
                    "answer": "Yes. DNS migrations and full record management, usually on Cloudflare, domain consolidation and multi-domain setups, SSL and origin certificate troubleshooting and the SPF, DKIM and DMARC records and authenticated relays that keep your email deliverable. Marketing sites live or die on these details and they are part of the retainer.",
                    "short_answer": "Yes, DNS, domains, SSL and email authentication are all handled.",
                    "keywords": [
                        "dns management",
                        "domains",
                        "ssl",
                        "email dns"
                    ],
                    "service_url": "https://www.kevinleary.net/services/security-performance-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#do-you-manage-dns-domains-and-email-infrastructure"
                },
                {
                    "question": "Are backups and disaster recovery covered?",
                    "answer": "Yes. Retainers include verification that backups actually run and a tested restore path so recovery works when it is needed rather than discovered broken during an incident. Host-level backups are supplemented where the host's retention or granularity is not enough for the business.",
                    "short_answer": "Yes, verified backups and tested restores are part of the retainer.",
                    "keywords": [
                        "backups",
                        "disaster recovery",
                        "restore"
                    ],
                    "service_url": "https://www.kevinleary.net/services/wordpress-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#are-backups-and-disaster-recovery-covered"
                },
                {
                    "question": "Do you work with WordPress VIP, and have you deployed and managed code there directly?",
                    "answer": "Yes. I have hands-on WordPress VIP development and administration experience: building against VIP's coding standards and code review requirements, working in VIP Go and VIP Platform Git repositories, deploying through their branch-based workflow, managing environments and configuration in the VIP dashboard and coordinating with VIP support on platform-level limits, caching and firewall behavior. Corporate sites running on VIP are a regular part of my custom WordPress work alongside WP Engine and Kinsta.",
                    "short_answer": "Yes, direct VIP development, Git-based deployments and platform administration.",
                    "keywords": [
                        "wordpress vip",
                        "vip platform",
                        "vip go",
                        "vip deployment",
                        "enterprise hosting"
                    ],
                    "service_url": "https://www.kevinleary.net/services/wordpress-consultant/",
                    "url": "https://www.kevinleary.net/faqs/#do-you-work-with-wordpress-vip-and-have-you"
                }
            ]
        },
        {
            "topic": "About Kevin",
            "description": "Background, certifications and how the work is done.",
            "questions": [
                {
                    "question": "What is your background?",
                    "answer": "I have worked as a WordPress engineer, data engineer and designer for more than eighteen years, building and supporting web platforms for publishers, financial institutions, universities, healthcare organizations and B2B software companies. I have been an independent consultant for most of that time and have contributed to the WordPress community since 2008. My writing has been published by Smashing Magazine, CSS-Tricks and The New Stack.",
                    "short_answer": "Eighteen-plus years as a WordPress engineer, data engineer and designer, independent for most of it.",
                    "keywords": [
                        "about kevin leary",
                        "experience",
                        "background"
                    ],
                    "service_url": "https://www.kevinleary.net/about/",
                    "url": "https://www.kevinleary.net/faqs/#what-is-your-background"
                },
                {
                    "question": "What certifications and partnerships do you hold?",
                    "answer": "Google Cloud Partner, certified Cloudflare consultant, and a certified or recommended provider at Kinsta, WP Engine, Flywheel and IONOS. I contribute BigQuery, GA4 and data pipeline guidance on Stack Overflow, Reddit and the Google Cloud Community.",
                    "short_answer": "Google Cloud Partner, Cloudflare certified, Kinsta and WP Engine recommended provider.",
                    "keywords": [
                        "certifications",
                        "google cloud partner",
                        "cloudflare certified",
                        "wp engine partner"
                    ],
                    "service_url": "https://www.kevinleary.net/about/",
                    "url": "https://www.kevinleary.net/faqs/#what-certifications-and-partnerships-do-you-hold"
                },
                {
                    "question": "How do you approach technical decisions?",
                    "answer": "Simple, durable solutions over fashionable ones. Fewer plugins, fewer moving parts and architecture chosen for your requirements rather than my favorite tool. I stay open and collaborative, explain tradeoffs in plain terms and leave ego out of it: assuming you already know the best way to do everything is a good way to never learn anything.",
                    "short_answer": "Simple, durable and requirement-driven, explained in plain terms.",
                    "keywords": [
                        "philosophy",
                        "approach",
                        "engineering principles"
                    ],
                    "service_url": "https://www.kevinleary.net/about/",
                    "url": "https://www.kevinleary.net/faqs/#how-do-you-approach-technical-decisions"
                },
                {
                    "question": "Can I see examples of your work and client feedback?",
                    "answer": "Yes. The case studies section covers custom WordPress builds, headless platforms, subscription systems, analytics architectures, security programs and data warehouses across publishing, finance, insurance, higher education and software, and the testimonials page collects feedback from the marketing and engineering leaders I have worked with. References are available on request for serious engagements.",
                    "short_answer": "Yes, see the case studies and testimonials pages; references available on request.",
                    "keywords": [
                        "case studies",
                        "portfolio",
                        "testimonials",
                        "references"
                    ],
                    "service_url": "https://www.kevinleary.net/work/",
                    "url": "https://www.kevinleary.net/faqs/#can-i-see-examples-of-your-work-and-client"
                },
                {
                    "question": "Does your site publish machine-readable information for AI tools?",
                    "answer": "Yes. Kevinleary.net exposes a structured JSON reference describing services, expertise, portfolio and availability so AI assistants and agents can answer questions about the practice accurately. It is the same approach I recommend to clients as a more effective alternative to a static llms.txt file.",
                    "short_answer": "Yes, a structured JSON reference at /llm-api/, the same approach I build for clients.",
                    "keywords": [
                        "llm api",
                        "machine readable",
                        "ai reference"
                    ],
                    "service_url": "https://www.kevinleary.net/llm-api/",
                    "url": "https://www.kevinleary.net/faqs/#does-your-site-publish-machine-readable-information-for-ai"
                },
                {
                    "question": "Do you use AI in your work?",
                    "answer": "Yes, like any modern practitioner, but in specific places. Its primary role is workflow automation: capturing and consolidating client requests and feedback from Slack, email and task tools the moment they arrive, running ongoing live testing of key site flows such as forms, checkout and signup, monitoring client sites for errors and downtime and triaging the alerts that come back. I do not use it for the communication I send to clients; that I write myself so everything is accurate and correct. The engineering judgment, architecture decisions and review of everything that ships are mine.",
                    "short_answer": "Yes, for request intake, live testing and site monitoring; never for client communication.",
                    "keywords": [
                        "ai usage",
                        "workflow automation",
                        "live testing",
                        "site monitoring",
                        "how work is done"
                    ],
                    "service_url": "https://www.kevinleary.net/about/",
                    "url": "https://www.kevinleary.net/faqs/#do-you-use-ai-in-your-work"
                }
            ]
        }
    ],
    "articles": [
        {
            "title": "Google&#8217;s August 2026 Spam Update: Consolidation Wins",
            "url": "https://www.kevinleary.net/blog/google-august-2026-spam-update/",
            "published": "2026-09-15",
            "updated": "2026-09-15",
            "topics": [
                "AI",
                "SEO"
            ],
            "summary": "What the August 2026 spam update targets, who it hits, and why content consolidation is now the recovery playbook Google itself points to"
        },
        {
            "title": "How I Build Custom WordPress Themes",
            "url": "https://www.kevinleary.net/blog/how-i-build-custom-wordpress-themes/",
            "published": "2026-09-15",
            "updated": "2026-09-15",
            "topics": [
                "WordPress"
            ],
            "summary": "The architecture behind every custom WordPress theme I ship: built to spec, minimal plugins, AI-friendly, and able to absorb full redesigns without a rebuild"
        },
        {
            "title": "Wsrv.nl (images.weserv.nl) Resizing Proxy &#038; CDN",
            "url": "https://www.kevinleary.net/blog/wsrv-nl-image-resizing-proxy-cdn/",
            "published": "2026-09-11",
            "updated": "2026-09-11",
            "topics": [
                "Web Development"
            ],
            "summary": "How to leverage the wsrv.nl image proxy to resize and optimize images on the fly"
        },
        {
            "title": "Working with Google&#8217;s Gemini CLI",
            "url": "https://www.kevinleary.net/blog/google-gemini-cli/",
            "published": "2026-09-11",
            "updated": "2026-09-11",
            "topics": [
                "AI"
            ],
            "summary": "Install and setup for Gemini CLI, Google's free open-source terminal coding agent"
        },
        {
            "title": "Working with Anthropic&#8217;s Claude Code",
            "url": "https://www.kevinleary.net/blog/claude-code-cli/",
            "published": "2026-09-11",
            "updated": "2026-09-11",
            "topics": [
                "AI"
            ],
            "summary": "Install, setup and real-world workflow for Claude Code, the AI coding agent I use daily for client work"
        },
        {
            "title": "Measuring AEO &#038; SEO Performance",
            "url": "https://www.kevinleary.net/blog/measuring-aeo-seo-performance/",
            "published": "2026-09-10",
            "updated": "2026-09-11",
            "topics": [
                "AI"
            ],
            "summary": "Know whether your SEO/AEO optimizations are helping or hurting your website, and whether an expensive SEO/AEO firm is worth the cost, by evaluating real data in Google Search Console."
        },
        {
            "title": "Using AI Generated Design &#038; Code in WordPress",
            "url": "https://www.kevinleary.net/blog/ai-generated-design-code-wordpress/",
            "published": "2026-09-03",
            "updated": "2026-09-03",
            "topics": [
                "AI"
            ],
            "summary": "Most WordPress sites are built in a way that makes AI coding tools nearly useless. A custom theme fixes that."
        },
        {
            "title": "Scaling n8n for AI Automation",
            "url": "https://www.kevinleary.net/blog/scaling-n8n-queue-with-helm/",
            "published": "2026-08-06",
            "updated": "2026-09-11",
            "topics": [
                "AI"
            ],
            "summary": "Properly scaling n8n in queue mode, auto-adjusting hardware to support workers based on queue size in Redis."
        },
        {
            "title": "OpenAI Ads Setup &#038; Conversion Tracking",
            "url": "https://www.kevinleary.net/blog/openai-ads-conversion-tracking/",
            "published": "2026-08-02",
            "updated": "2026-09-16",
            "topics": [
                "Analytics"
            ],
            "summary": "Everything you need to measure conversions from ChatGPT ads, from a basic pixel install to a fully synced server-side setup."
        },
        {
            "title": "Reddit&#8217;s True Association with AEO",
            "url": "https://www.kevinleary.net/blog/reddits-true-association-with-aeo/",
            "published": "2026-07-24",
            "updated": "2026-09-11",
            "topics": [
                "AI"
            ],
            "summary": "What actually earns AI visibility on Reddit."
        },
        {
            "title": "Self-Hosted Cookie Consent Management",
            "url": "https://www.kevinleary.net/blog/self-hosted-cookie-consent-management/",
            "published": "2026-07-16",
            "updated": "2026-09-11",
            "topics": [
                "Compliance"
            ],
            "summary": "How to use an open-source cookie banner with GTM's Consent Mode v2"
        },
        {
            "title": "#1 Rankings in AI: Proven Optimization That Works",
            "url": "https://www.kevinleary.net/blog/ai-optimization-that-works/",
            "published": "2026-04-14",
            "updated": "2026-09-03",
            "topics": [
                "AI"
            ],
            "summary": "How we optimized for AI and achieved #1 for ideal prompts in ChatGPT, Claude, Grok, DeepSeek, Gemini & Copilot."
        },
        {
            "title": "Consent Mode for Google Tag Manager",
            "url": "https://www.kevinleary.net/blog/consent-mode-google-tag-manager/",
            "published": "2026-03-15",
            "updated": "2026-03-15",
            "topics": [
                "Compliance"
            ],
            "summary": "The proper way to handle consent in Google Tag Manager without overpaying for tools or losing the data your business depends on."
        },
        {
            "title": "Web Visitor Company Identification",
            "url": "https://www.kevinleary.net/blog/web-visitor-company-identification/",
            "published": "2026-02-24",
            "updated": "2026-09-03",
            "topics": [
                "Analytics"
            ],
            "summary": "How to identify the company/organization of your website visitors with custom code and no third-party tools."
        },
        {
            "title": "Credit Unions, Banks &#038; Finance Organization that use WordPress",
            "url": "https://www.kevinleary.net/blog/credit-unions-banks-finance-wordpress-sites/",
            "published": "2026-01-15",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Inspirational list of professionally designed custom WordPress themes for bank and finance organizations."
        },
        {
            "title": "Google&#8217;s December 2025 Core Update",
            "url": "https://www.kevinleary.net/blog/googles-december-2025-core-update/",
            "published": "2025-12-14",
            "updated": "2026-09-03",
            "topics": [
                "Marketing"
            ],
            "summary": "Everything you need to know about Google's December 11, 2025 algorithm update."
        },
        {
            "title": "Facebook Conversions API Explained",
            "url": "https://www.kevinleary.net/blog/facebook-conversions-api-explained/",
            "published": "2025-12-10",
            "updated": "2026-09-12",
            "topics": [
                "Analytics"
            ],
            "summary": "Complete end-to-end walk-through of the best possible Facebook Pixel & Facebook Conversion API implementation for maximum match rate."
        },
        {
            "title": "Testing Redirects with Curl",
            "url": "https://www.kevinleary.net/blog/curl-redirect-testing/",
            "published": "2025-12-10",
            "updated": "2026-09-11",
            "topics": [
                "Development"
            ],
            "summary": "How to find and fix redirect issues at the source."
        },
        {
            "title": "Well-Built WordPress Websites (And Why They&#8217;re So Rare)",
            "url": "https://www.kevinleary.net/blog/rare-well-built-wordpress-websites/",
            "published": "2025-12-02",
            "updated": "2026-09-11",
            "topics": [
                "WordPress"
            ],
            "summary": "What separates a well-built WordPress site from the other 95%, and the shortcuts that create debt."
        },
        {
            "title": "The #1 Cost Efficient HubSpot Alternative",
            "url": "https://www.kevinleary.net/blog/mautic-hubspot-alternative/",
            "published": "2025-11-27",
            "updated": "2026-09-11",
            "topics": [
                "Marketing"
            ],
            "summary": "Not interested in paying $$$$$ for a CRM? Consider an open-source alternative, that may actually be better for your needs."
        },
        {
            "title": "BigQuery TABLESAMPLE: Faster, Cheaper Queries",
            "url": "https://www.kevinleary.net/blog/bigquery-tablesample-faster-cheaper-queries/",
            "published": "2025-11-09",
            "updated": "2026-09-11",
            "topics": [
                "Analytics"
            ],
            "summary": "Read only a percentage of rows to reduce cost and latency while producing approximate statistical query results."
        },
        {
            "title": "Automatic Redirects in WordPress",
            "url": "https://www.kevinleary.net/blog/automatic-redirects-in-wordpress/",
            "published": "2025-10-31",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "When and where WordPress will automatically add a redirect for a URL behind the scenes."
        },
        {
            "title": "Google&#8217;s Ranking Systems &#038; AI SEO",
            "url": "https://www.kevinleary.net/blog/googles-ranking-systems-ai-seo/",
            "published": "2025-10-28",
            "updated": "2026-09-11",
            "topics": [
                "AI"
            ],
            "summary": "Understanding how Google's ranking system works can tell us how to best approach AI SEO."
        },
        {
            "title": "Migrating from Hubspot CMS to WordPress",
            "url": "https://www.kevinleary.net/blog/hubspot-cms-to-wordpress/",
            "published": "2025-09-27",
            "updated": "2026-09-11",
            "topics": [
                "WordPress"
            ],
            "summary": "Step-by-step guide for moving a website from HubSpot CMS to WordPress without losing data or design integrity."
        },
        {
            "title": "Building Custom WordPress Themes with ACF",
            "url": "https://www.kevinleary.net/blog/building-custom-wordpress-themes-acf/",
            "published": "2025-09-27",
            "updated": "2026-09-11",
            "topics": [
                "WordPress"
            ],
            "summary": "Foundations of building and maintaining a good custom WordPress theme."
        },
        {
            "title": "Server-Side Event Tracking: A Complete Implementation Guide",
            "url": "https://www.kevinleary.net/blog/server-side-event-tracking-implementation-guide/",
            "published": "2025-09-26",
            "updated": "2026-09-03",
            "topics": [
                "Analytics"
            ],
            "summary": "Understand how a server-side analytics system works, and why it leads to more accurate analytics data and better advertising optimization."
        },
        {
            "title": "Creating Custom AI Models on a Macbook Pro",
            "url": "https://www.kevinleary.net/blog/custom-ai-models-macbook-pro/",
            "published": "2025-09-18",
            "updated": "2026-09-03",
            "topics": [
                "AI"
            ],
            "summary": "Training a custom LLMs on a Macbook Pro M3+ using WordPress posts as fine-tuning data."
        },
        {
            "title": "AI Generated SQL for BigQuery",
            "url": "https://www.kevinleary.net/blog/ai-generated-sql-bigquery/",
            "published": "2025-08-10",
            "updated": "2025-08-10",
            "topics": [
                "AI"
            ],
            "summary": "How to create the best, most accurate, AI-generated SQL for BigQuery data exploration."
        },
        {
            "title": "Fixing Slow Looker Studio Reports",
            "url": "https://www.kevinleary.net/blog/slow-looker-studio/",
            "published": "2025-08-10",
            "updated": "2026-09-11",
            "topics": [
                "Analytics"
            ],
            "summary": "Are your Looker Studio reports running much slower in the browser than they should be?"
        },
        {
            "title": "GPT-5: Initial Developer Opinions",
            "url": "https://www.kevinleary.net/blog/gpt-5-developer-opinions/",
            "published": "2025-08-08",
            "updated": "2026-09-03",
            "topics": [
                "AI"
            ],
            "summary": "GPT-5 isnt revolutionary, it's largest benefit is reduced token cost, and we're now seeing a curve forming with each release cycle."
        },
        {
            "title": "WP-CRON Vulnerability Report Emails: Bogus?",
            "url": "https://www.kevinleary.net/blog/wp-cron-vulnerability-report-emails-bogus/",
            "published": "2025-08-05",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "A response to recent bogus vulnerability reports targeting WordPress wp-cron.php functionality"
        },
        {
            "title": "Advanced SEO Checklist for Website Redesigns",
            "url": "https://www.kevinleary.net/blog/advanced-seo-checklist-website-redesigns/",
            "published": "2025-08-04",
            "updated": "2026-09-03",
            "topics": [
                "Marketing"
            ],
            "summary": "SEO is often overlooked during a redesign process, which can have a very negative impact on search rankings."
        },
        {
            "title": "Marketing Technology for WordPress Sites",
            "url": "https://www.kevinleary.net/blog/martech-for-wordpress/",
            "published": "2025-07-31",
            "updated": "2026-09-03",
            "topics": [
                "Marketing"
            ],
            "summary": "Martech patterns, approaches and systems for high-converting websites."
        },
        {
            "title": "BigQuery Cost &#038; Speed Optimization",
            "url": "https://www.kevinleary.net/blog/bigquery-cost-speed-optimization/",
            "published": "2025-06-30",
            "updated": "2026-09-03",
            "topics": [
                "Analytics"
            ],
            "summary": "Find the most costly bottlenecks in your BigQuery data warehouse and speed up your Looker reports"
        },
        {
            "title": "AI vs Human WordPress Writing",
            "url": "https://www.kevinleary.net/blog/ai-vs-human-wordpress-writing/",
            "published": "2025-06-19",
            "updated": "2026-09-03",
            "topics": [
                "AI"
            ],
            "summary": "Considerations when leaning on AI for content marketing."
        },
        {
            "title": "Disavowing Links",
            "url": "https://www.kevinleary.net/blog/disavow-links/",
            "published": "2025-06-14",
            "updated": "2026-09-11",
            "topics": [
                "Marketing"
            ],
            "summary": "Google\u2019s disavow tool allows you to identify bad/low quality links to your site, potentially improving quality scores."
        },
        {
            "title": "AI Image Generation: One Prompt, Six Tools",
            "url": "https://www.kevinleary.net/blog/ai-image-generation-one-prompt-six-tools/",
            "published": "2025-06-01",
            "updated": "2026-09-03",
            "topics": [
                "AI"
            ],
            "summary": "Variations of AI generated images from various LLM prompt tools"
        },
        {
            "title": "AI Prompt Hacks",
            "url": "https://www.kevinleary.net/blog/ai-prompt-hacks/",
            "published": "2025-05-10",
            "updated": "2026-09-03",
            "topics": [
                "AI"
            ],
            "summary": "18 highly productive patterns for generating effective code with AI."
        },
        {
            "title": "Working with OpenAI&#8217;s Codex CLI",
            "url": "https://www.kevinleary.net/blog/openai-codex-cli/",
            "published": "2025-05-07",
            "updated": "2026-09-11",
            "topics": [
                "AI"
            ],
            "summary": "Straight forward instructions on how to start working with the OpenAI Codex CLI"
        },
        {
            "title": "Protecting WordPress Contact Forms with AI",
            "url": "https://www.kevinleary.net/blog/ai-contact-form-protection/",
            "published": "2025-05-03",
            "updated": "2026-09-03",
            "topics": [
                "AI"
            ],
            "summary": "Smarter ways to stop WordPress form spam using OpenAI API's and Gravity Forms."
        },
        {
            "title": "Anatomy of a Professional WordPress Website",
            "url": "https://www.kevinleary.net/blog/anatomy-professional-wordpress-website/",
            "published": "2025-05-02",
            "updated": "2026-09-11",
            "topics": [
                "WordPress"
            ],
            "summary": "Behind the scenes look at the plugins, patterns and approaches used to build very high quality WordPress websites."
        },
        {
            "title": "Rewrite Rules for a Custom Post Type &#038; Taxonomy Pattern",
            "url": "https://www.kevinleary.net/blog/rewrite-rules-custom-post-type-taxonomy-pattern/",
            "published": "2025-04-28",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Achieving the most commonly sought after URL rewrite structure for a custom WordPress resources section built using a post type, taxonomy, and associated archives and single templates."
        },
        {
            "title": "Patterns for Clean Google Tag Manager Containers",
            "url": "https://www.kevinleary.net/blog/google-tag-manager-patterns/",
            "published": "2025-04-22",
            "updated": "2026-09-11",
            "topics": [
                "Analytics"
            ],
            "summary": "How to keep your Google Tag Manager containers clean and well organized with established patterns and conventions."
        },
        {
            "title": "Sample Content for the Gutenberg Editor",
            "url": "https://www.kevinleary.net/blog/sample-content-gutenberg-editor/",
            "published": "2025-04-10",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Sample content for the Gutenberg editor"
        },
        {
            "title": "Safely Adding AI Generated Code to WordPress",
            "url": "https://www.kevinleary.net/blog/safely-adding-ai-generated-code-to-wordpress/",
            "published": "2025-02-20",
            "updated": "2026-09-03",
            "topics": [
                "AI"
            ],
            "summary": "AI-generated code can be useful, but dropping it into WordPress without a plan is a bad idea. Here\u2019s how to do it safely."
        },
        {
            "title": "Google Analytics Attribution &#038; Traffic Source",
            "url": "https://www.kevinleary.net/blog/google-analytics-attribution-traffic-source/",
            "published": "2025-02-19",
            "updated": "2026-09-11",
            "topics": [
                "Analytics"
            ],
            "summary": "GA4 assigns traffic sources based on a priority system\u2014UTMs, referrers, auto-tagging, and more\u2014so here\u2019s how to decode it in BigQuery and get the cleanest attribution data possible."
        },
        {
            "title": "Maximizing Lead Conversion: 7 Commonly Overlooked Strategies",
            "url": "https://www.kevinleary.net/blog/maximizing-lead-conversion-7-commonly-overlooked-strategies/",
            "published": "2024-12-13",
            "updated": "2026-09-03",
            "topics": [
                "Marketing"
            ],
            "summary": "Seven overlooked ways to convert more of the traffic you're already paying for."
        },
        {
            "title": "Validating Real Phone Numbers (NANP)",
            "url": "https://www.kevinleary.net/blog/validating-real-phone-numbers/",
            "published": "2024-12-06",
            "updated": "2026-09-15",
            "topics": [
                "Development"
            ],
            "summary": "How to validate a phone number against the North American Numbering Plan with only JavaScript, no APIs required."
        },
        {
            "title": "What is Google Analytics (GA4)?",
            "url": "https://www.kevinleary.net/blog/what-is-google-analytics/",
            "published": "2024-11-22",
            "updated": "2026-09-15",
            "topics": [
                "Analytics"
            ],
            "summary": "Simple overview of Google Analytics: what it is, why you might need it, and how to set it up."
        },
        {
            "title": "Asset Loading in WordPress",
            "url": "https://www.kevinleary.net/blog/wordpress-asset-loading/",
            "published": "2024-11-14",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Simple and effective ways to load CSS and JS modules in a custom WordPress theme from scratch (no frameworks)"
        },
        {
            "title": "WordPress Alternatives to Power Your Website",
            "url": "https://www.kevinleary.net/blog/wordpress-alternatives/",
            "published": "2024-11-05",
            "updated": "2026-09-11",
            "topics": [
                "WordPress"
            ],
            "summary": "Growing list of CMS alternatives to WordPress"
        },
        {
            "title": "Secure Custom Fields: Automattic&#8217;s Concerning Takeover of ACF",
            "url": "https://www.kevinleary.net/blog/advanced-custom-fields-takeover/",
            "published": "2024-10-14",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Automattic has hijacked the Advanced Custom Fields Pro plugin, and will be releasing it as \"Secure Custom Fields\" in the coming week(s)."
        },
        {
            "title": "Simplest Guide to Custom WordPress Themes",
            "url": "https://www.kevinleary.net/blog/simplest-guide-to-custom-wordpress-themes/",
            "published": "2024-10-11",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "How to create a custom WordPress theme that's very basic for easy learning."
        },
        {
            "title": "Importing Large CSVs into BigQuery",
            "url": "https://www.kevinleary.net/blog/importing-large-csvs-into-bigquery/",
            "published": "2024-10-03",
            "updated": "2026-09-03",
            "topics": [
                "Analytics"
            ],
            "summary": "Tips on cleaning and importing large CSVs into BigQuery"
        },
        {
            "title": "CloudFlare Caching for WordPress",
            "url": "https://www.kevinleary.net/blog/cloudflare-caching-for-wordpress/",
            "published": "2024-10-02",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Properly configuring CloudFlare caching rules for your WordPress website is the best way to make your website extremely fast."
        },
        {
            "title": "Custom APIs in WordPress: REST API or a Simple PHP Class?",
            "url": "https://www.kevinleary.net/blog/custom-apis-wordpress-rest-api-or-simple-php-class/",
            "published": "2024-08-23",
            "updated": "2024-08-23",
            "topics": [
                "WordPress"
            ],
            "summary": "Pros and cons of extending the built-in WordPress REST API with custom endpoints."
        },
        {
            "title": "Optimizing Queries to Reduce Costs in BigQuery",
            "url": "https://www.kevinleary.net/blog/optimizing-queries-to-reduce-costs-in-bigquery/",
            "published": "2024-07-28",
            "updated": "2026-09-03",
            "topics": [
                "Analytics"
            ],
            "summary": "Ways to reduce query and storage job costs in BigQuery"
        },
        {
            "title": "Sync Google Search Console in BigQuery",
            "url": "https://www.kevinleary.net/blog/sync-google-search-console-in-bigquery/",
            "published": "2024-07-21",
            "updated": "2026-09-03",
            "topics": [
                "Analytics"
            ],
            "summary": "Guide to syncing Google Search Console data into BigQuery daily using Google's native data exports"
        },
        {
            "title": "Daily HubSpot \u2192 BigQuery Syncs",
            "url": "https://www.kevinleary.net/blog/daily-hubspot-bigquery-syncs/",
            "published": "2024-07-11",
            "updated": "2026-09-03",
            "topics": [
                "Analytics"
            ],
            "summary": "Automated daily syncs from Hubspot into BigQuery without expensive ETL costs, using an alternative to Google Integration Connector."
        },
        {
            "title": "Low Cost Customer Data Platforms",
            "url": "https://www.kevinleary.net/blog/low-cost-customer-data-platforms/",
            "published": "2024-06-30",
            "updated": "2026-09-03",
            "topics": [
                "Analytics"
            ],
            "summary": "Host your own open-source CDP platform to replace expensive software like Segment or FiveTran."
        },
        {
            "title": "WordPress Plugin Abuse",
            "url": "https://www.kevinleary.net/blog/wordpress-plugin-abuse/",
            "published": "2024-04-23",
            "updated": "2024-08-22",
            "topics": [
                "WordPress"
            ],
            "summary": "Should you really use a WordPress plugin for that? See how 11 lines of code can replace 87,907, and why that's a major advantage."
        },
        {
            "title": "How Custom WordPress Themes Are Built",
            "url": "https://www.kevinleary.net/blog/how-custom-wordpress-themes-are-built/",
            "published": "2024-04-20",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "How custom WordPress themes are built, with real world examples"
        },
        {
            "title": "Transactional Emails Sent by WordPress",
            "url": "https://www.kevinleary.net/blog/transactional-emails-wordpress/",
            "published": "2024-04-11",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Complete list of all built-in email notifications sent by a WordPress, and how to disable them"
        },
        {
            "title": "Bulk Delete Thousands of WordPress Posts",
            "url": "https://www.kevinleary.net/blog/bulk-delete-thousands-wordpress-posts/",
            "published": "2024-03-29",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "The best way to delete thousands of WordPress posts, pages or post types."
        },
        {
            "title": "JavaScript Modules in WordPress",
            "url": "https://www.kevinleary.net/blog/javascript-modules-in-wordpress/",
            "published": "2024-03-10",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Loading JS modules in WordPress with the new wp_enqueue_script_module function."
        },
        {
            "title": "Best Content Management Systems for Enterprises",
            "url": "https://www.kevinleary.net/blog/best-content-management-systems-for-enterprises/",
            "published": "2024-03-06",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Content management systems used by large enterprise businesses, with live examples"
        },
        {
            "title": "Quick Fix for a Slow WordPress Admin",
            "url": "https://www.kevinleary.net/blog/quick-fix-slow-wordpress-admin/",
            "published": "2024-02-06",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Drastically speed up the WordPress admin with 3 lines of code."
        },
        {
            "title": "Secure Remote Database Connections on WPEngine",
            "url": "https://www.kevinleary.net/blog/secure-remote-database-connections-wpengine/",
            "published": "2024-01-31",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Simple, secure way to remotely connect to a WordPress database at WPEngine."
        },
        {
            "title": "Hide PHP Notices &#038; Warnings from WP CLI",
            "url": "https://www.kevinleary.net/blog/hide-php-notices-warnings-wp-cli/",
            "published": "2024-01-15",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Stop PHP notices and warnings from polluting WP-CLI output and breaking scripted commands."
        },
        {
            "title": "Using Hubspot&#8217;s API to Submit Forms",
            "url": "https://www.kevinleary.net/blog/using-hubspot-api-to-submit-forms/",
            "published": "2023-12-28",
            "updated": "2026-09-03",
            "topics": [
                "Marketing"
            ],
            "summary": "How to submit HubSpot forms using the HubSpot Forms API"
        },
        {
            "title": "Fixing Slow Queries in a  WordPress Database",
            "url": "https://www.kevinleary.net/blog/fixing-slow-queries-wordpress-database/",
            "published": "2023-11-30",
            "updated": "2023-11-30",
            "topics": [
                "WordPress"
            ],
            "summary": "Advanced details on finding slow WordPress queries, and fixing them."
        },
        {
            "title": "Restrict WordPress Login by IP Address",
            "url": "https://www.kevinleary.net/blog/restrict-wordpress-login-by-ip-address/",
            "published": "2023-11-08",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Block access to the wp-login page based on the connecting user's IP address"
        },
        {
            "title": "Restrict Access to Specific Datasets in BigQuery",
            "url": "https://www.kevinleary.net/blog/restrict-access-specific-datasets-bigquery/",
            "published": "2023-11-05",
            "updated": "2024-09-24",
            "topics": [
                "Analytics"
            ],
            "summary": "Limit access to show only specific data to certain users or groups in Google BigQuery."
        },
        {
            "title": "SOC Compliance for WordPress Websites",
            "url": "https://www.kevinleary.net/blog/soc-compliance-wordpress-websites/",
            "published": "2023-10-24",
            "updated": "2023-10-24",
            "topics": [
                "Compliance"
            ],
            "summary": "Prepare your WordPress website for a SOC compliance audit"
        },
        {
            "title": "Securing a WordPress Website",
            "url": "https://www.kevinleary.net/blog/securing-a-wordpress-website/",
            "published": "2023-10-17",
            "updated": "2026-09-11",
            "topics": [
                "WordPress"
            ],
            "summary": "Advanced tactical tasks for securing a WordPress website."
        },
        {
            "title": "WordPress Slow Loading Times",
            "url": "https://www.kevinleary.net/blog/wordpress-slow-loading-times/",
            "published": "2023-09-29",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "The most probable causes of a slow WordPress website"
        },
        {
            "title": "Building a Server-Side Event Tracking Application",
            "url": "https://www.kevinleary.net/blog/building-a-server-side-event-tracking-application/",
            "published": "2023-09-26",
            "updated": "2026-09-03",
            "topics": [
                "Analytics"
            ],
            "summary": "DIY approach to server-side event tracking with Laravel + Redis"
        },
        {
            "title": "WordPress Explained for Business Owners",
            "url": "https://www.kevinleary.net/blog/wordpress-explained-for-business-owners/",
            "published": "2023-09-24",
            "updated": "2024-08-29",
            "topics": [
                "WordPress"
            ],
            "summary": "WordPress is the #1 tool used to build websites, powering over 40% of the websites online today."
        },
        {
            "title": "Force WordPress to Use HTTPS",
            "url": "https://www.kevinleary.net/blog/force-wordpress-to-use-https/",
            "published": "2023-09-18",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Serve all WordPress website visits from https:// and not https://."
        },
        {
            "title": "Remove srcset in WordPress",
            "url": "https://www.kevinleary.net/blog/remove-srcset-in-wordpress/",
            "published": "2023-09-10",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "How to remove all [srcset] attributes from images in WordPress."
        },
        {
            "title": "Google Analytics Queries for BigQuery",
            "url": "https://www.kevinleary.net/blog/google-analytics-queries-for-bigquery/",
            "published": "2023-08-23",
            "updated": "2023-10-25",
            "topics": [
                "Analytics"
            ],
            "summary": "Useful BigQuery examples for querying Google Analytics 4 data"
        },
        {
            "title": "Domain Redirects in CloudFlare",
            "url": "https://www.kevinleary.net/blog/cloudflare-domain-redirects/",
            "published": "2023-05-16",
            "updated": "2023-05-16",
            "topics": [
                "Development"
            ],
            "summary": "Redirect an entire domain in CloudFlare, forwarding all non-WWW traffic to WWW, or WWW to the root domain, at the page level with a single rule."
        },
        {
            "title": "Kinsta Git Push Deployment",
            "url": "https://www.kevinleary.net/blog/kinsta-git-push-deployment/",
            "published": "2023-04-23",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Deploy updates to Kinsta with git push, utilizing the same approach as WPEngine under the hood."
        },
        {
            "title": "Disable WordPress RSS Feeds",
            "url": "https://www.kevinleary.net/blog/disable-wordpress-rss-feeds/",
            "published": "2023-04-04",
            "updated": "2023-04-04",
            "topics": [
                "WordPress"
            ],
            "summary": "How to disable all built-in RSS feeds in WordPress."
        },
        {
            "title": "Trusted SSL Certificates for Localhost",
            "url": "https://www.kevinleary.net/blog/trusted-ssl-certificates-localhost/",
            "published": "2023-03-27",
            "updated": "2026-09-11",
            "topics": [
                "Development"
            ],
            "summary": "Creating valid SSL certificates for localhost web development, supporting one or many local domains."
        },
        {
            "title": "SalesForce Custom Campaign Types &#038; Member Statuses",
            "url": "https://www.kevinleary.net/blog/salesforce-custom-campaign-types-member-statuses/",
            "published": "2023-03-24",
            "updated": "2023-03-24",
            "topics": [
                "Marketing"
            ],
            "summary": "Adding and updating custom campaign types and member status values for your SalesForce campaigns."
        },
        {
            "title": "WPMU: Add User to All Sites in a Multisite Network",
            "url": "https://www.kevinleary.net/blog/wpmu-add-user-to-all-sites-in-a-multisite-network/",
            "published": "2023-03-09",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Programmatically add a user to all sites in a WordPress multisite network (WPMU)"
        },
        {
            "title": "Correcting Typographic Widows with PHP",
            "url": "https://www.kevinleary.net/blog/correcting-typographic-widows-with-php/",
            "published": "2023-02-12",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Automatically fix typographic widows to avoid a single hanging word on its own line."
        },
        {
            "title": "TikTok Conversion &#038; Attribution Tracking",
            "url": "https://www.kevinleary.net/blog/tiktok-conversion-attribution-tracking/",
            "published": "2023-01-19",
            "updated": "2026-09-12",
            "topics": [
                "Analytics"
            ],
            "summary": "Track conversions for TikTok ads with high match rate attribution using both the Pixel and Events API."
        },
        {
            "title": "WPEngine Sage/Blade Templates Broken 1/18/2023",
            "url": "https://www.kevinleary.net/blog/wpengine-sage-blade-templates-broken-1-18-2023/",
            "published": "2023-01-18",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "A working fix for the Sage/Blade template errors that hit WPEngine sites on 1/18/2023."
        },
        {
            "title": "JavaScript Precise Age from a Birthdate",
            "url": "https://www.kevinleary.net/blog/javascript-age-birthdate-mm-dd-yyyy/",
            "published": "2023-01-05",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Calculating an age in years, months and days from a user provided birthdate (MM/DD/YYYY)"
        },
        {
            "title": "Hubspot Form Tracking in Google Tag Manager",
            "url": "https://www.kevinleary.net/blog/hubspot-form-tracking-in-google-tag-manager/",
            "published": "2022-12-19",
            "updated": "2026-09-03",
            "topics": [
                "Analytics"
            ],
            "summary": "How to track your Hubspot form submissions in Google Tag Manager, step by step."
        },
        {
            "title": "Advanced Spam Rules for Gravity Forms in WordPress",
            "url": "https://www.kevinleary.net/blog/advanced-spam-rules-gravity-forms-wordpress/",
            "published": "2022-12-10",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Stop WordPress form spam in Gravity Forms with custom spam filtering rules."
        },
        {
            "title": "Uninstall Elasticsearch",
            "url": "https://www.kevinleary.net/blog/uninstall-elasticsearch/",
            "published": "2022-12-05",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Steps to fully uninstall Elasticsearch from your server"
        },
        {
            "title": "Marketo Form Conversions in Google Tag Manager",
            "url": "https://www.kevinleary.net/blog/marketo-form-conversions-in-google-tag-manager/",
            "published": "2022-12-04",
            "updated": "2026-09-12",
            "topics": [
                "Analytics"
            ],
            "summary": "The best way to track Marketo form submissions as conversions in Google Tag Manager."
        },
        {
            "title": "Drift Event Tracking in Google Tag Manager",
            "url": "https://www.kevinleary.net/blog/drift-event-tracking-in-google-tag-manager/",
            "published": "2022-11-30",
            "updated": "2026-09-03",
            "topics": [
                "Analytics"
            ],
            "summary": "Work with Drift's built-in Google Tag Manager events to simplify event tracking."
        },
        {
            "title": "Images.weserv.nl Slow Loading",
            "url": "https://www.kevinleary.net/blog/images-weserv-nl-slow-loading/",
            "published": "2022-11-28",
            "updated": "2026-09-11",
            "topics": [
                "Development"
            ],
            "summary": "CloudFlare began rate limiting images.weserv.nl leading to a \r\nsignificant slowdown in websites around the world."
        },
        {
            "title": "Remove Box Shadows From One Side with CSS",
            "url": "https://www.kevinleary.net/blog/remove-box-shadows-one-side-css/",
            "published": "2022-11-17",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Simple CSS rules to remove box-shadow from one side of an element."
        },
        {
            "title": "Restart MongoDB Commands",
            "url": "https://www.kevinleary.net/blog/restart-mongodb-commands/",
            "published": "2022-11-05",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "How to start, stop and restart MongoDB from the command line"
        },
        {
            "title": "Custom Corporate Zoom Branding",
            "url": "https://www.kevinleary.net/blog/custom-corporate-zoom-branding/",
            "published": "2022-08-08",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Custom corporate branding for Zoom landing pages, emails, and more."
        },
        {
            "title": "Apple News Publisher Fonts List",
            "url": "https://www.kevinleary.net/blog/apple-news-publisher-fonts-list/",
            "published": "2022-08-05",
            "updated": "2023-03-24",
            "topics": [
                "Development"
            ],
            "summary": "Previews and names of all available Apple News supported fonts"
        },
        {
            "title": "Custom Spam Rules for Gravity Forms",
            "url": "https://www.kevinleary.net/blog/custom-spam-rules-for-gravity-forms/",
            "published": "2022-07-25",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Create your own rules to stop form spam submissions on your WordPress website."
        },
        {
            "title": "Transactional Email Delivery in WordPress",
            "url": "https://www.kevinleary.net/blog/transactional-email-delivery-wordpress/",
            "published": "2022-07-17",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Configure transactional email for WordPress that's reliable using\r\nan SMTP Relay or an HTTP API."
        },
        {
            "title": "Unique Pageviews in Google Analytics 4 (GA4)",
            "url": "https://www.kevinleary.net/blog/ga4-unique-pageviews/",
            "published": "2022-05-28",
            "updated": "2026-09-15",
            "topics": [
                "Analytics"
            ],
            "summary": "How to track unique pageviews in GA4"
        },
        {
            "title": "Most Common Cause of a Slow WordPress Admin",
            "url": "https://www.kevinleary.net/blog/most-common-cause-slow-wordpress-admin/",
            "published": "2022-05-12",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Why is your WordPress admin so slow? It's probably \r\nHTTP API requests made by premium plugins."
        },
        {
            "title": "Offline Conversion Tracking",
            "url": "https://www.kevinleary.net/blog/offline-conversion-tracking/",
            "published": "2022-04-18",
            "updated": "2026-09-12",
            "topics": [
                "Analytics"
            ],
            "summary": "Automatically targeting prospects that are most likely to become paying customers\r\nis one of the best ways to lower customer acquisition costs"
        },
        {
            "title": "Custom Events in Google Tag Manager",
            "url": "https://www.kevinleary.net/blog/custom-events-in-google-tag-manager/",
            "published": "2022-04-12",
            "updated": "2026-09-03",
            "topics": [
                "Analytics"
            ],
            "summary": "How to define custom conversion events in Google Tag Manager,\r\nand why it's a good approach to follow."
        },
        {
            "title": "Repairing Crashed Database Tables in WordPress",
            "url": "https://www.kevinleary.net/blog/repairing-crashed-database-tables-in-wordpress/",
            "published": "2022-04-04",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Fixes for a common WordPress database error: \"Table is marked as crashed and should be repaired\""
        },
        {
            "title": "Social Security Number Regex",
            "url": "https://www.kevinleary.net/blog/ssn-regex/",
            "published": "2022-03-30",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Validate a US Social Security Number (SSN) with \r\nJavaScript, PHP, Python, Ruby and more."
        },
        {
            "title": "SVG Support &#038; Broken Images",
            "url": "https://www.kevinleary.net/blog/svg-support-broken-images/",
            "published": "2022-02-19",
            "updated": "2022-07-24",
            "topics": [
                "Development"
            ],
            "summary": "A recent update to the popular SVG Support WordPress plugin may cause broken SVG's on your WordPress site."
        },
        {
            "title": "A Better Email Address Regular Expression",
            "url": "https://www.kevinleary.net/blog/better-email-address-regular-expression/",
            "published": "2022-02-11",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "A simple pattern I use to validate emails."
        },
        {
            "title": "Google Fonts in Gutenberg Editor Styles",
            "url": "https://www.kevinleary.net/blog/google-fonts-wordpress-gutenberg-editor-styles/",
            "published": "2021-09-09",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "WordPress editor stylesheets won't load external assets with @import rules, but there's an alternative approach you can use to load fonts into the Gutenberg editor."
        },
        {
            "title": "JS Fix for &#8220;SyntaxError: Cannot use import statement outside a module&#8221;",
            "url": "https://www.kevinleary.net/blog/js-fix-for-syntaxerror-cannot-use-import-statement-outside-a-module/",
            "published": "2021-07-15",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "\"SyntaxError: Cannot use import statement outside a module\" is a common \r\nNode.js error when working with `import` to include modules or packages."
        },
        {
            "title": "Tracking Changes in WordPress",
            "url": "https://www.kevinleary.net/blog/tracking-changes-wordpress/",
            "published": "2021-06-22",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Track, log and notify team members when changes are made to a WordPress website's file system, database and DNS."
        },
        {
            "title": "Select Placeholder Color CSS",
            "url": "https://www.kevinleary.net/blog/select-placeholder-color-css/",
            "published": "2021-05-18",
            "updated": "2021-05-18",
            "topics": [
                "Development"
            ],
            "summary": "How to style a &lt;select&gt; dropdown placeholder value in a way that\r\nis similar to the CSS ::placeholder pseudo element."
        },
        {
            "title": "Update an ACF Repeater Field Programmatically",
            "url": "https://www.kevinleary.net/blog/update-an-acf-repeater-field-programmatically/",
            "published": "2021-02-24",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "How to update an Advanced Custom Fields (ACF) repeater field programmatically"
        },
        {
            "title": "Get WordPress Post Content by Post ID",
            "url": "https://www.kevinleary.net/blog/get-wordpress-post-content-by-post-id/",
            "published": "2020-09-10",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "The simplest way to get WordPress post content by post ID."
        },
        {
            "title": "Create WordPress Admin User with PHP",
            "url": "https://www.kevinleary.net/blog/wordpress-create-admin-user-php/",
            "published": "2020-09-08",
            "updated": "2026-09-15",
            "topics": [
                "WordPress"
            ],
            "summary": "Create a WordPress admin user with PHP to login to a site with only FTP access."
        },
        {
            "title": "List Every Action &#038; Filter Hook in WordPress",
            "url": "https://www.kevinleary.net/blog/list-wordpress-action-filter-hooks/",
            "published": "2020-05-05",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Automatically generate an ordered reference to all\r\naction hooks and filters for a WordPress install."
        },
        {
            "title": "Fixing WordPress cURL Errors",
            "url": "https://www.kevinleary.net/blog/fixing-wordpress-curl-errors/",
            "published": "2020-04-27",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "How to fix `cURL error 60: SSL certificate: unable to get local issuer certificate` errors in localhost WordPress environments."
        },
        {
            "title": "Select Dropdowns in jQuery &#038; Vanilla JS, Styled with CSS",
            "url": "https://www.kevinleary.net/blog/jquery-select-dropdowns/",
            "published": "2020-04-02",
            "updated": "2026-09-15",
            "topics": [
                "Development"
            ],
            "summary": "Selecting an option by its text label, getting the label for a currently \r\nselected option, selecting an option programmatically and more."
        },
        {
            "title": "The Evolution of JavaScript Module Patterns",
            "url": "https://www.kevinleary.net/blog/javascript-module-patterns-evolution/",
            "published": "2020-02-25",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Practical examples of JavaScript module patterns\r\nand how to include them as a dependency."
        },
        {
            "title": "Export &#038; Import All Databases on a MySQL Server",
            "url": "https://www.kevinleary.net/blog/export-import-all-databases-on-a-mysql-server/",
            "published": "2020-01-17",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Simple commands to export and import all \r\nMySQL databases that exist on a server."
        },
        {
            "title": "Using Moment in Angular/TypeScript",
            "url": "https://www.kevinleary.net/blog/moment-js-angular-typescript/",
            "published": "2019-12-20",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Quickly get Moment & Moment Timezone working in an \r\nAngular CLI TypeScript project."
        },
        {
            "title": "Currency Formatting in JavaScript &#038; TypeScript",
            "url": "https://www.kevinleary.net/blog/currency-formatting-javascript-typescript/",
            "published": "2019-12-20",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "The simplest way to format numbers and floats as \r\ncurrency strings in JavaScript and TypeScript."
        },
        {
            "title": "Display HTML in Angular Components",
            "url": "https://www.kevinleary.net/blog/html-in-angular-components/",
            "published": "2019-12-19",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "How to safely display any HTML in an Angular component\r\nwithout escaped or encoded characters."
        },
        {
            "title": "Quick Fix for WordPress ob_end_flush() Error",
            "url": "https://www.kevinleary.net/blog/wordpress-ob_end_flush-error-fix/",
            "published": "2019-12-11",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Solving \"failed to send buffer of zlib output compression\" errors in WordPress"
        },
        {
            "title": "Ionicons in Angular: Web Component Fix",
            "url": "https://www.kevinleary.net/blog/ionicons-in-angular/",
            "published": "2019-11-26",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Ionicons 4 include a native web component that doesn't\r\nwork in an Angular app, here's a quick and easy fix to solve the problem."
        },
        {
            "title": "Mac Dock &#038; Multiple Monitors",
            "url": "https://www.kevinleary.net/blog/mac-dock-multiple-external-monitors/",
            "published": "2019-11-25",
            "updated": "2026-09-03",
            "topics": [
                "Business"
            ],
            "summary": "How to get the Mac Dock app working\r\non multiple external display monitors."
        },
        {
            "title": "Change the WordPress Gutenberg Editor&#8217;s Width",
            "url": "https://www.kevinleary.net/blog/change-wordpress-gutenberg-editor-width/",
            "published": "2019-07-15",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Widen the Gutenberg editor with a few lines of admin CSS so layouts match the front end."
        },
        {
            "title": "Parsing URL Parameters in Angular Components",
            "url": "https://www.kevinleary.net/blog/angular-component-url-parameters/",
            "published": "2019-07-08",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Read route and query parameters in an Angular component without pulling in a library."
        },
        {
            "title": "How to Disable the WordPress Gutenberg Editor",
            "url": "https://www.kevinleary.net/blog/disable-wordpress-gutenberg-editor/",
            "published": "2018-12-06",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "The best way is to install the official Classic Editor \r\nplugin created by the Automattic team."
        },
        {
            "title": "Test a Website for ADA Compliance &#038; WCAG Accessibility",
            "url": "https://www.kevinleary.net/blog/test-website-ada-compliance-wcag-accessibility/",
            "published": "2018-09-18",
            "updated": "2026-09-15",
            "topics": [
                "Compliance"
            ],
            "summary": "Run a quick, effective scan of your business\r\nwebsite for ADA accessibility compliance."
        },
        {
            "title": "90+ Enterprise Businesses Using WordPress",
            "url": "https://www.kevinleary.net/blog/enterprise-businesses-using-wordpress/",
            "published": "2018-09-07",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Big list of enterprise WordPress websites\r\nfor Fortune 1000 companies."
        },
        {
            "title": "Fix Hanging Words in WordPress",
            "url": "https://www.kevinleary.net/blog/fix-hanging-words-wordpress/",
            "published": "2018-09-04",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Automatically fix hanging words (or typographic widows) in WordPress \r\ncontent using this helpful function to filter the_content()."
        },
        {
            "title": "Accessible Dropdown Menus for WordPress",
            "url": "https://www.kevinleary.net/blog/accessible-dropdown-menus-for-wordpress/",
            "published": "2018-07-27",
            "updated": "2018-07-27",
            "topics": [
                "Compliance"
            ],
            "summary": "Make your WordPress dropdown menus WCAG 2.0 accessible without a plugin."
        },
        {
            "title": "Quickly Disable the WordPress API",
            "url": "https://www.kevinleary.net/blog/quickly-disable-the-wordpress-api/",
            "published": "2018-07-05",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Simple, effective way to disable the WordPress \r\nREST API if you're not using it."
        },
        {
            "title": "jQuery Syntax Error Unrecognized Expression",
            "url": "https://www.kevinleary.net/blog/jquery-syntax-error-unrecognized-expression/",
            "published": "2018-05-23",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "How to fix a \"Uncaught Error: Syntax error, unrecognized expression\"\r\nJavaScript error when working with jQuery 2.x and 3.x."
        },
        {
            "title": "Google Search Operators Reference",
            "url": "https://www.kevinleary.net/blog/google-search-operators-reference/",
            "published": "2017-11-12",
            "updated": "2026-09-15",
            "topics": [
                "Marketing"
            ],
            "summary": "Documentation on Google search operators for advanced searching and filtering of results."
        },
        {
            "title": "Lessons Learned from 18 Years as a WordPress Consultant",
            "url": "https://www.kevinleary.net/blog/freelance-web-developer-lessons-learned-10-years/",
            "published": "2017-08-14",
            "updated": "2026-09-15",
            "topics": [
                "Business"
            ],
            "summary": "Over the past 10 years as freelance web developer I've learned important\r\nlessons about business, relationships, money and life."
        },
        {
            "title": "Fixing the Dreaded &#8220;SyntaxError: Unexpected Token in JSON&#8221;",
            "url": "https://www.kevinleary.net/blog/syntax-error-unexpected-token-json-position-0/",
            "published": "2017-07-03",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Tips to help you find and fix this common XHR JSON API syntax error in JavaScript: \r\n\"SyntaxError: Unexpected token < in JSON at position 0\""
        },
        {
            "title": "Auto Indent HTML in Sublime Text on Save",
            "url": "https://www.kevinleary.net/blog/auto-indent-html-sublime-text-save/",
            "published": "2017-06-30",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Automatically indent HTML files on save in Sublime Text."
        },
        {
            "title": "Markdown Filter for PHP&#8217;s Timber/Twig Templating Engine",
            "url": "https://www.kevinleary.net/blog/markdown-filter-timbertwig/",
            "published": "2017-06-19",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Parse Markdown in Timber/Twig templates with\r\nthis custom twig filter/extension."
        },
        {
            "title": "Change a WordPress Plugin&#8217;s Menu Name",
            "url": "https://www.kevinleary.net/blog/change-wordpress-plugin-menu-name/",
            "published": "2017-06-16",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Safely change the name of a WordPress plugins admin\r\nmenu using the following function."
        },
        {
            "title": "Building an Angular.js App in a WordPress Plugin",
            "url": "https://www.kevinleary.net/blog/angularjs-wordpress-tutorial/",
            "published": "2017-06-10",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Building single page apps inside of a WordPress plugin."
        },
        {
            "title": "Git Remotes for an Existing Heroku App",
            "url": "https://www.kevinleary.net/blog/git-remotes-existing-heroku-app/",
            "published": "2017-05-29",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Quickly add a git remote for\r\nan existing Heroku app."
        },
        {
            "title": "Seonix.org WordPress Redirect Hack",
            "url": "https://www.kevinleary.net/blog/seonix-org-wordpress-redirect-hack/",
            "published": "2017-05-17",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Find & fix malicious 301 redirects to seonix.org in WordPress."
        },
        {
            "title": "Regex Routes in Express.js",
            "url": "https://www.kevinleary.net/blog/regex-route-express/",
            "published": "2017-05-05",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Express.js support regex routing with simplified string based rules, custom regex rules\r\nfor specific parameters, and pure regex rules to match and entire route."
        },
        {
            "title": "Angular $http Cache Examples",
            "url": "https://www.kevinleary.net/blog/angular-http-cache-examples/",
            "published": "2017-04-28",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Real world examples of angularjs $http and $resource cache, including how\r\nto work with localStorage and sessionStorage."
        },
        {
            "title": "Angular.js Custom Tag Delimiter&#8217;s",
            "url": "https://www.kevinleary.net/blog/angularjs-custom-tag-delimiter/",
            "published": "2017-04-24",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Define your own custom tag delimiters to change {{ myScopeVar }} \r\nto your own syntax, such as {! myScopeVar !}."
        },
        {
            "title": "Restrict an Angular.js Directive to a Specific HTML Tag",
            "url": "https://www.kevinleary.net/blog/restrict-angular-js-directive-specific-html-tag/",
            "published": "2017-04-13",
            "updated": "2017-04-13",
            "topics": [
                "Development"
            ],
            "summary": "How to create AngularJS directives that are only allowed for a specific HTML element or tag."
        },
        {
            "title": "How to Fix Slow Gulp Uglify Builds",
            "url": "https://www.kevinleary.net/blog/gulp-uglify-slow-builds-fix/",
            "published": "2017-04-12",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Reduce a JS build task with Uglify from 15-20 secs to 500ms."
        },
        {
            "title": "Preventing Possible Attempt to Enumerate Users in WordPress",
            "url": "https://www.kevinleary.net/blog/preventing-possible-attempt-enumerate-users/",
            "published": "2017-04-06",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Having trouble with user enumeration, or maybe you have notices in your \r\nerror logs about \"Preventing Possible Attempt to Enumerate Users\"?"
        },
        {
            "title": "WordPress Database Migration &#038; Transfer Tools",
            "url": "https://www.kevinleary.net/blog/wordpress-database-migration-tools/",
            "published": "2017-02-24",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "The two best ways I've found to move a WordPress database between hosts safely."
        },
        {
            "title": "Combining WP_Query Search &#038; Taxonomy Parameters",
            "url": "https://www.kevinleary.net/blog/wp_query-search-tax-query-fix/",
            "published": "2017-02-24",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Search within a taxonomy by patching the way WP_Query \r\nhandles the MySQL GROUP BY clause."
        },
        {
            "title": "Self-Signed, Trusted Certificates for Node.js &#038; Express.js",
            "url": "https://www.kevinleary.net/blog/self-signed-trusted-certificates-node-js-express-js/",
            "published": "2017-02-20",
            "updated": "2018-08-31",
            "topics": [
                "Development"
            ],
            "summary": "Get Your Express.js App Working on https://localhost"
        },
        {
            "title": "JSON POST Requests: $_POST Won&#8217;t Work",
            "url": "https://www.kevinleary.net/blog/json-post-php-requests/",
            "published": "2017-02-08",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "PHP's $_POST won't work with a content-type of application/javascript."
        },
        {
            "title": "Simple JavaScript Error Tracking with Google Tag Manager",
            "url": "https://www.kevinleary.net/blog/javascript-error-tracking-google-tag-manager/",
            "published": "2017-01-20",
            "updated": "2024-03-31",
            "topics": [
                "Analytics"
            ],
            "summary": "Track client-side JavaScript errors as Google Analytics events using \r\nGoogle Tag Manager and avoid error logging software."
        },
        {
            "title": "Built-in WordPress Taxonomy &#038; Post Type Reference",
            "url": "https://www.kevinleary.net/blog/built-in-wordpress-taxonomy-post-type-names/",
            "published": "2016-12-04",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Avoid using any of WordPress' built-in taxonomies and post types names to \r\navoid collisions when creating custom taxonomies and post types."
        },
        {
            "title": "How to Reset a Geolocation Prompt in Google Chrome",
            "url": "https://www.kevinleary.net/blog/reset-geolocation-prompt-google-chrome/",
            "published": "2016-10-27",
            "updated": "2016-10-27",
            "topics": [
                "Development"
            ],
            "summary": "Steps to reset geolocation prompt's in Google Chrome, useful for for testing \r\nnavigator.geolocation.getCurrentPosition() usage in Chrome."
        },
        {
            "title": "Angular On Enter Key Directive",
            "url": "https://www.kevinleary.net/blog/angular-on-enter-key-directive/",
            "published": "2016-10-25",
            "updated": "2016-10-27",
            "topics": [
                "Development"
            ],
            "summary": "Handle on enter key press events in Angular \r\nusing this simple directive."
        },
        {
            "title": "Record Your Screen as an Animated GIF",
            "url": "https://www.kevinleary.net/blog/record-screen-animated-gif-mac-windows/",
            "published": "2015-07-06",
            "updated": "2026-09-03",
            "topics": [
                "Business"
            ],
            "summary": "A free, open-source way to record your screen as an animated GIF."
        },
        {
            "title": "Pulsating Text with CSS3 Animations",
            "url": "https://www.kevinleary.net/blog/pulsating-css3-animations/",
            "published": "2015-07-06",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Quick way to make a simple pulsate \r\nanimation using CSS3."
        },
        {
            "title": "JavaScript Object Comparisons",
            "url": "https://www.kevinleary.net/blog/javascript-object-comparisons/",
            "published": "2015-06-18",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Determine equality for two JavaScript objects"
        },
        {
            "title": "SiteOrigin Page Builder Content Conditional",
            "url": "https://www.kevinleary.net/blog/siteorigin-page-builder-content-conditional/",
            "published": "2015-03-21",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Check if WordPress content was created using the \r\nSiteOrigin's Page Builder or built-in editor"
        },
        {
            "title": "Static Site Engines with Node.js + Express",
            "url": "https://www.kevinleary.net/blog/static-site-engines-node-express/",
            "published": "2015-02-13",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Presented at the February 2015 Boston Node.js Meetup"
        },
        {
            "title": "Wildcard Find &#038; Replace in Sublime Text",
            "url": "https://www.kevinleary.net/blog/wildcard-find-replace-sublime-text/",
            "published": "2015-01-29",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "This simple regex rule makes wildcard find and\r\nreplace routines easy in Sublime Text"
        },
        {
            "title": "A Simple Node Static Server",
            "url": "https://www.kevinleary.net/blog/simple-node-static-server/",
            "published": "2014-12-23",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Simple way to serve static HTML, images, stylesheets and scripts with Node.js"
        },
        {
            "title": "WordPress Sample Content",
            "url": "https://www.kevinleary.net/blog/wordpress-sample-content/",
            "published": "2014-05-09",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Sample page content for testing CSS against the\r\nHTML output of the WordPress TinyMCE editor."
        },
        {
            "title": "WordPress Themes, Meta Boxes &#038; Modern Layouts",
            "url": "https://www.kevinleary.net/blog/wordpress-themes-modern-templates-content-management/",
            "published": "2014-04-21",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "How to use meta boxes to effectively manage\r\nweb layouts beyond the editor."
        },
        {
            "title": "Integrating Pardot &#038; WordPress",
            "url": "https://www.kevinleary.net/blog/integrating-pardot-wordpress/",
            "published": "2014-04-11",
            "updated": "2026-09-03",
            "topics": [
                "Marketing"
            ],
            "summary": "Lessons learned integrating Pardot, \r\nWordPress and Gravity Forms."
        },
        {
            "title": "Remove The &#8220;Posts&#8221; Menu From WordPress",
            "url": "https://www.kevinleary.net/blog/remove-posts-menu-wordpress/",
            "published": "2014-02-05",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Use this function to remove the \"Posts\" menu and \r\nposting area from the WordPress admin."
        },
        {
            "title": "Working with Dublin Core Metadata for SEO",
            "url": "https://www.kevinleary.net/blog/working-dublin-core-metadata-seo/",
            "published": "2014-01-25",
            "updated": "2026-09-03",
            "topics": [
                "Marketing"
            ],
            "summary": "What Dublin Core metadata is, and whether it still earns its place in your markup."
        },
        {
            "title": "WordPress Dashicons Visual Reference",
            "url": "https://www.kevinleary.net/blog/wp-dashicons-visual-reference/",
            "published": "2013-12-18",
            "updated": "2026-09-11",
            "topics": [
                "WordPress"
            ],
            "summary": "For use as custom post type menu icons"
        },
        {
            "title": "Find All Functions Attached to WordPress Filter &#038; Action Hooks",
            "url": "https://www.kevinleary.net/blog/find-functions-attached-wordpress-filter-action-hooks/",
            "published": "2013-11-19",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Discover exactly what functions are attached to any WordPress hook, in the order they fire."
        },
        {
            "title": "Getting a YouTube Video Thumbnail",
            "url": "https://www.kevinleary.net/blog/youtube-video-thumbnail/",
            "published": "2013-10-16",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Grab the thumbnail for any YouTube video straight from its URL, in every available size."
        },
        {
            "title": "How to Hide That Your Site is Using WordPress",
            "url": "https://www.kevinleary.net/blog/hide-site-is-using-wordpress/",
            "published": "2013-10-09",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Remove the obvious WordPress fingerprints from your site without breaking anything."
        },
        {
            "title": "Check if an Element Exists with jQuery",
            "url": "https://www.kevinleary.net/blog/check-element-exists-jquery/",
            "published": "2013-10-08",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Why `if ($el)` always returns true in jQuery, and what to check instead."
        },
        {
            "title": "Check if a Checkbox is Checked Using jQuery",
            "url": "https://www.kevinleary.net/blog/jquery-checkbox-checked/",
            "published": "2013-10-06",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Using is(\":checked\")"
        },
        {
            "title": "Correctly Redirect a Page in jQuery &#038; JavaScript",
            "url": "https://www.kevinleary.net/blog/page-redirects-jquery-javascript/",
            "published": "2013-10-06",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Redirect the browser properly with `window.location` \u2014 jQuery isn't needed for this."
        },
        {
            "title": "Testing if a jQuery Object is Hidden",
            "url": "https://www.kevinleary.net/blog/testing-jquery-object-hidden/",
            "published": "2013-10-06",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Using is(\":visible\") or is(\":hidden\")"
        },
        {
            "title": "Horizontal Bulleted Lists Using CSS",
            "url": "https://www.kevinleary.net/blog/horizontal-bulleted-lists-css/",
            "published": "2013-09-30",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Lay a bulleted list out horizontally and keep the bullets, with copy-paste CSS."
        },
        {
            "title": "Font Awesome 4.0 Unicode Icons in Photoshop",
            "url": "https://www.kevinleary.net/blog/font-awesome-unicode-icons-photoshop/",
            "published": "2013-09-23",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Copy the icon characters from this table, and paste \r\nthem directly into Photoshop."
        },
        {
            "title": "Curated Content on the Web",
            "url": "https://www.kevinleary.net/blog/curated-content-examples/",
            "published": "2013-09-23",
            "updated": "2026-09-03",
            "topics": [
                "Marketing"
            ],
            "summary": "Examples of content curation done right."
        },
        {
            "title": "Roots Theme Rewrites &#038; WPEngine",
            "url": "https://www.kevinleary.net/blog/roots-theme-rewrites-wpengine/",
            "published": "2013-09-03",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Getting Roots theme rewrites and clean asset URLs working on WPEngine."
        },
        {
            "title": "Prestigious Companies Using WordPress",
            "url": "https://www.kevinleary.net/blog/companies-using-wordpress/",
            "published": "2013-08-11",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Well known brands running WordPress today, and what their builds tell you about the platform."
        },
        {
            "title": "How to Find a Good Web Designer",
            "url": "https://www.kevinleary.net/blog/how-find-good-web-designer/",
            "published": "2013-08-11",
            "updated": "2026-09-11",
            "topics": [
                "Business"
            ],
            "summary": "How to find and vet a web designer, and the warning signs worth walking away from."
        },
        {
            "title": "Creating a WordPress Website for Beginners",
            "url": "https://www.kevinleary.net/blog/creating-wordpress-website-beginners/",
            "published": "2013-04-08",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Step-by-step instructions for building a business website on WordPress from scratch."
        },
        {
            "title": "My WordPress Development Environment",
            "url": "https://www.kevinleary.net/blog/wordpress-development-environment/",
            "published": "2013-01-11",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "The local, staging and production setup I use to test WordPress changes before they ship."
        },
        {
            "title": "WordPress 3.5 Admin Error: &#8220;jQuery is not defined&#8221;",
            "url": "https://www.kevinleary.net/blog/wordpress-admin-jquery-is-not-defined/",
            "published": "2012-12-18",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "A quick fix for \"Uncaught ReferenceError: jQuery is not defined\" in the WordPress admin."
        },
        {
            "title": "Adding Custom Post Types to Author Archives in WordPress",
            "url": "https://www.kevinleary.net/blog/wordpress-custom-post-types-author-archives/",
            "published": "2012-12-05",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Include custom post types in author archives with one drop-in function."
        },
        {
            "title": "Taxonomy Term Descriptions &#038; WordPress Archives",
            "url": "https://www.kevinleary.net/blog/taxonomy-term-descriptions-wordpress-archives/",
            "published": "2012-11-30",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Give site owners the option to display taxonomy term descriptions on archive templates."
        },
        {
            "title": "When to Use is_home() &#038; is_front_page()",
            "url": "https://www.kevinleary.net/blog/is_home-is_front_page/",
            "published": "2012-11-26",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "The difference between is_home() and is_front_page(), and which fires on a static homepage."
        },
        {
            "title": "CSS Vertical-align &#038; Inline-block",
            "url": "https://www.kevinleary.net/blog/css-vertical-align-inline-block/",
            "published": "2012-11-05",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Why vertical-align misbehaves between two inline-block elements, and how to fix it."
        },
        {
            "title": "Automatic WordPress Image Optimization",
            "url": "https://www.kevinleary.net/blog/automatic-wordpress-image-optimization/",
            "published": "2012-11-02",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Compress WordPress uploads automatically so slow images never reach production."
        },
        {
            "title": "Smart Software Web Design Inspiration",
            "url": "https://www.kevinleary.net/blog/software-web-design-inspiration/",
            "published": "2012-10-12",
            "updated": "2026-09-11",
            "topics": [
                "Business"
            ],
            "summary": "SaaS website designs that sell, and the patterns behind their conversion rates."
        },
        {
            "title": "Internet Explorer for Mac",
            "url": "https://www.kevinleary.net/blog/internet-explorer-for-mac/",
            "published": "2012-09-23",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Test Internet Explorer on a Mac for free using a virtual Windows machine."
        },
        {
            "title": "Creating User Friendly Mailto Links",
            "url": "https://www.kevinleary.net/blog/user-friendly-mailto-links/",
            "published": "2012-09-18",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Build mailto links that prefill subject and body without breaking on special characters."
        },
        {
            "title": "Custom Post Type RSS Feeds in WordPress",
            "url": "https://www.kevinleary.net/blog/custom-post-type-rss-feeds-wordpress/",
            "published": "2012-09-06",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "The quick, correct way to get an RSS feed for a custom post type in WordPress."
        },
        {
            "title": "Wildcard DNS Hosts in MAMP Pro",
            "url": "https://www.kevinleary.net/blog/wildcard-dns-hosts-mamp-pro/",
            "published": "2012-09-04",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Set up wildcard local domains in MAMP Pro so any hostname resolves without editing hosts."
        },
        {
            "title": "Enable oEmbed for Excerpts or Custom Fields",
            "url": "https://www.kevinleary.net/blog/oembed-excerpts-custom-fields/",
            "published": "2012-08-22",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Run oEmbed on excerpts and custom fields with a single line of code."
        },
        {
            "title": "Humanize Post Dates in WordPress",
            "url": "https://www.kevinleary.net/blog/humanize-post-dates-in-wordpress/",
            "published": "2012-08-20",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Show post dates as \"3 hours ago\" using WordPress's built-in human_time_diff()."
        },
        {
            "title": "SVN Checksum Mismatch Errors on Commit in Coda",
            "url": "https://www.kevinleary.net/blog/svn-checksum-mismatch-errors-on-commit-in-coda/",
            "published": "2012-05-29",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Repair an SVN checksum mismatch on commit without losing your local changes."
        },
        {
            "title": "WordPress Upgrades &#038; Plugin Updates with MAMP Localhost",
            "url": "https://www.kevinleary.net/blog/wordpress-upgrades-plugin-updates-mamp-localhost/",
            "published": "2012-04-20",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Allow plugin installs and core upgrades on a MAMP localhost without the FTP prompt."
        },
        {
            "title": "Responsive Video Embeds Plugin Example",
            "url": "https://www.kevinleary.net/blog/responsive-video-embeds-plugin-example/",
            "published": "2012-04-15",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "A live test page for the Responsive Video Embeds plugin \u2014 resize the browser and watch."
        },
        {
            "title": "Cloudflare &#038; TimThumb Issues",
            "url": "https://www.kevinleary.net/blog/cloudflare-timthumb-issues/",
            "published": "2012-04-13",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Why TimThumb images break behind Cloudflare, and how to confirm caching is at fault."
        },
        {
            "title": "The Charity Dilemma",
            "url": "https://www.kevinleary.net/blog/charity-dilemma/",
            "published": "2012-03-30",
            "updated": "2026-09-03",
            "topics": [
                "Business"
            ],
            "summary": "WordPress & The Expectation of \"Free\""
        },
        {
            "title": "Get the Current Theme Template Filename in WordPress",
            "url": "https://www.kevinleary.net/blog/get-current-theme-template-filename-wordpress/",
            "published": "2012-03-15",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Handy snippets for identifying which template file WordPress is currently rendering."
        },
        {
            "title": "Manage Every WordPress Setting in One Place",
            "url": "https://www.kevinleary.net/blog/manage-every-wordpress-setting-one-place/",
            "published": "2012-02-27",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "WordPress has a hidden screen listing every editable option in your database."
        },
        {
            "title": "Professional WordPress Development Resources for 2012",
            "url": "https://www.kevinleary.net/blog/professional-wordpress-development-resources-2012/",
            "published": "2012-02-25",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "The references and standards worth following on a professional WordPress project."
        },
        {
            "title": "Faster Social Sharing Widgets Using AJAX &#038; jQuery",
            "url": "https://www.kevinleary.net/blog/faster-social-sharing-widgets-ajax-jquery/",
            "published": "2012-01-08",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Load social sharing widgets on demand with AJAX instead of on every page load."
        },
        {
            "title": "Add Custom Meta Fields to Media Attachments in WordPress",
            "url": "https://www.kevinleary.net/blog/add-custom-meta-fields-media-attachments-wordpress/",
            "published": "2011-12-27",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Add your own meta fields to media attachments and read them back in a theme."
        },
        {
            "title": "Improve Social Sharing with Open Graph Protocol Tags",
            "url": "https://www.kevinleary.net/blog/improve-social-sharing-open-graph-protocol-tags/",
            "published": "2011-12-22",
            "updated": "2026-09-03",
            "topics": [
                "Marketing"
            ],
            "summary": "Add Open Graph tags so shared links show the right title, description and image."
        },
        {
            "title": "Track &#038; Display Popular Posts in WordPress with WP_Query",
            "url": "https://www.kevinleary.net/blog/track-display-popular-posts-wordpress/",
            "published": "2011-12-14",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Track and display popular posts without a plugin, using WP_Query and a custom field."
        },
        {
            "title": "Remove Title Attributes from Images in WordPress",
            "url": "https://www.kevinleary.net/blog/remove-title-attributes-images-wordpress/",
            "published": "2011-12-13",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Get rid of the unwanted tooltip WordPress adds to every inserted image."
        },
        {
            "title": "API Request Caching with JSON &#038; PHP",
            "url": "https://www.kevinleary.net/blog/api-request-caching-json-php/",
            "published": "2011-10-26",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "A simple PHP and JSON caching function that cut a 5 second API call to milliseconds."
        },
        {
            "title": "A Simple Way to Update CSS, JS &#038; Image Browser Cache",
            "url": "https://www.kevinleary.net/blog/simple-update-css-js-image-browser-cache/",
            "published": "2011-10-11",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Force browsers to pick up modified CSS, JavaScript and images instead of stale copies."
        },
        {
            "title": "WordPress Pagination with paginate_links()",
            "url": "https://www.kevinleary.net/blog/wordpress-pagination-paginate_links/",
            "published": "2011-10-04",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Build numbered WordPress pagination with paginate_links() and a custom WP_Query."
        },
        {
            "title": "LESS Elements: A Collection of Handy Classes",
            "url": "https://www.kevinleary.net/blog/less-elements-collection-handy-classes/",
            "published": "2011-09-26",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "A library of re-useable LESS classes and mixins worth keeping in every project."
        },
        {
            "title": "Cut WordPress Load Time in Half",
            "url": "https://www.kevinleary.net/blog/cut-wordpress-load-time-half/",
            "published": "2011-06-23",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "A real world benchmark of WordPress speed gains from full page caching and a CDN."
        },
        {
            "title": "Ways to Create Custom Meta Boxes in WordPress",
            "url": "https://www.kevinleary.net/blog/ways-create-custom-meta-boxes-wordpress/",
            "published": "2011-06-01",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Every practical way to add custom meta boxes, and which one fits your project size."
        },
        {
            "title": "Clean Up Microsoft Word Pasted HTML in TinyMCE",
            "url": "https://www.kevinleary.net/blog/clean-up-microsoft-word-pasted-html-tinymce/",
            "published": "2011-05-30",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Strip the junk markup Microsoft Word leaves behind when clients paste into the editor."
        },
        {
            "title": "Working From Home &#038; Keeping Your Sanity",
            "url": "https://www.kevinleary.net/blog/working-at-home-keeping-your-sanity/",
            "published": "2011-05-23",
            "updated": "2026-09-03",
            "topics": [
                "Business"
            ],
            "summary": "Habits that keep remote work sustainable before you become a social vegetable."
        },
        {
            "title": "Dynamic Stylesheets with the LESS CSS Preprocessor",
            "url": "https://www.kevinleary.net/blog/less-css-preprocessor/",
            "published": "2011-05-19",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "What LESS adds to CSS \u2014 variables, mixins, nesting \u2014 and why maintenance gets easier."
        },
        {
            "title": "Connect to MAMP with SSH/Shell on OS X",
            "url": "https://www.kevinleary.net/blog/connect-to-mamp-with-sshshell-on-os-x/",
            "published": "2011-05-17",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Connecting to a MAMP MySQL database over SSH from the OS X Terminal."
        },
        {
            "title": "Add TinyMCE to WordPress User Profile Pages in WordPress 3.3",
            "url": "https://www.kevinleary.net/blog/tinymce-wordpress-3-user-profile-pages/",
            "published": "2011-05-16",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Give the WordPress user profile screen a real editor instead of a plain textarea."
        },
        {
            "title": "Display the Total Number of Search Results Found",
            "url": "https://www.kevinleary.net/blog/display-total-number-search-results-found-wordpress/",
            "published": "2011-05-12",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Display the total number of results found on a WordPress search page."
        },
        {
            "title": "Load jQuery from Google Hosted CDN in WordPress",
            "url": "https://www.kevinleary.net/blog/load-jquery-google-hosted-cdn-wordpress/",
            "published": "2011-05-02",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Loading resources from a CDN is a great way to improve website performance. Google provides free CDN hosting for many common JavaScript library, includes the popular jQuery framework. If you'd like to load a Google CDN hosted copy of jQuery in your WordPress theme, drop the following PHP class into your functions.php file."
        },
        {
            "title": "50 Well Designed Websites Using WordPress",
            "url": "https://www.kevinleary.net/blog/50-well-designed-wordpress-web-designs/",
            "published": "2011-04-25",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Fifty WordPress sites with genuinely good design, and what to borrow from each."
        },
        {
            "title": "Web Redesign Launch Checklist for WordPress",
            "url": "https://www.kevinleary.net/blog/web-redesign-launch-checklist-for-wordpress/",
            "published": "2011-04-21",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "The checklist I run before any WordPress redesign goes live."
        },
        {
            "title": "Google Analytics Tracking in WordPress Without a Plugin",
            "url": "https://www.kevinleary.net/blog/google-analytics-tracking-wordpress-no-plugin/",
            "published": "2011-04-14",
            "updated": "2026-09-03",
            "topics": [
                "Analytics"
            ],
            "summary": "Add Google Analytics to a WordPress theme in code, no plugin required."
        },
        {
            "title": "Add 301 Redirects to WordPress Before Launching",
            "url": "https://www.kevinleary.net/blog/301-redirects-wordpress-before-website-launch/",
            "published": "2011-04-14",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Map and load your 301 redirects before launch so rankings survive the new URLs."
        },
        {
            "title": "YouTube Search Optimization Tips &#038; Best Practices",
            "url": "https://www.kevinleary.net/blog/youtube-search-optimization-tips-best-practices/",
            "published": "2011-04-07",
            "updated": "2026-09-03",
            "topics": [
                "Marketing"
            ],
            "summary": "SEO best practices for YouTube videos: titles, descriptions, tags and thumbnails."
        },
        {
            "title": "Flickr Photo Search Optimization Best Practices",
            "url": "https://www.kevinleary.net/blog/flickr-photo-search-optimization-best-practices/",
            "published": "2011-03-31",
            "updated": "2026-09-03",
            "topics": [
                "Marketing"
            ],
            "summary": "Optimize Flickr photos so people actually find them, and get traffic back to your site."
        },
        {
            "title": "Move JavaScript to the Page Bottom in WordPress",
            "url": "https://www.kevinleary.net/blog/move-javascript-bottom-wordpress/",
            "published": "2011-03-24",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Move enqueued scripts to the footer in WordPress with one function."
        },
        {
            "title": "WordPress Web Hosting Suggestions",
            "url": "https://www.kevinleary.net/blog/wordpress-web-hosting-suggestions-reviews/",
            "published": "2011-03-17",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "What to look for in WordPress hosting, and where cheap plans cost you later."
        },
        {
            "title": "Send Links to Twitter From iPad Safari",
            "url": "https://www.kevinleary.net/blog/send-links-twitter-ipad-safari/",
            "published": "2011-03-16",
            "updated": "2026-09-03",
            "topics": [
                "Business"
            ],
            "summary": "The least painful way to share a page from iPad Safari to Twitter."
        },
        {
            "title": "Get URL Params JavaScript, Updated 2020",
            "url": "https://www.kevinleary.net/blog/javascript-get-url-parameters/",
            "published": "2011-03-14",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "The best way I've found to process URL parameters \r\nwith JavaScript in the browser."
        },
        {
            "title": "Build a Hulu Content Slider with jQuery Cycle &#038; CSS3",
            "url": "https://www.kevinleary.net/blog/build-hulu-content-slider-jquery-cycle-css3/",
            "published": "2011-03-10",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Recreate Hulu's homepage content slider with jQuery Cycle and CSS3."
        },
        {
            "title": "Formatting Currency &#038; Money Inputs in a Web Form with jQuery",
            "url": "https://www.kevinleary.net/blog/formatting-currency-money-input-web-form-jquery/",
            "published": "2011-03-03",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Format currency and money fields as users type without breaking the submitted value."
        },
        {
            "title": "jQuery Cookies: Get, Set, Update, Delete",
            "url": "https://www.kevinleary.net/blog/jquery-cookie/",
            "published": "2011-02-24",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Create, read, update and delete cookies with jQuery, including expiry and path options."
        },
        {
            "title": "Display RSS Feeds with WordPress Shortcodes",
            "url": "https://www.kevinleary.net/blog/display-rss-feeds-wordpress-shortcodes/",
            "published": "2011-02-17",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Pull an external RSS feed into WordPress content with a shortcode, using built-in SimplePie."
        },
        {
            "title": "Experiment: Last.fm + YouTube API&#8217;s = SimilarSounds.com",
            "url": "https://www.kevinleary.net/blog/experiment-last-fm-youtube-api-similarsounds/",
            "published": "2011-02-15",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "What I learned building SimilarSounds.com on top of the Last.fm and YouTube APIs."
        },
        {
            "title": "Cross Browser Favicons",
            "url": "https://www.kevinleary.net/blog/cross-browser-favicons/",
            "published": "2011-02-10",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "The favicon files and markup every browser and device actually needs."
        },
        {
            "title": "Add Values to an Associative Array with array_push() in PHP",
            "url": "https://www.kevinleary.net/blog/add-values-associative-array-with-array_push/",
            "published": "2011-02-08",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Why array_push() fails on associative arrays in PHP, and what to use instead."
        },
        {
            "title": "Customizing the TinyMCE WYSIWYG Editor in WordPress",
            "url": "https://www.kevinleary.net/blog/customizing-tinymce-wysiwyg-editor-wordpress/",
            "published": "2011-01-27",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Trim down and customize the TinyMCE editor toolbar and format dropdown in WordPress."
        },
        {
            "title": "Using PHP to Detect iOS &#038; Mobile Users",
            "url": "https://www.kevinleary.net/blog/php-detect-ios-mobile-users/",
            "published": "2011-01-20",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Detect iPhone, iPad and Android visitors server-side with a single PHP function."
        },
        {
            "title": "Get All Custom Fields Attached to a Post, Page or Post Type",
            "url": "https://www.kevinleary.net/blog/get-all-custom-fields-attached-post-page-post-type/",
            "published": "2011-01-13",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Run one query to get every custom field attached to a post, page or post type."
        },
        {
            "title": "Website Cross Browser Testing Techniques &#038; Tools",
            "url": "https://www.kevinleary.net/blog/website-cross-browser-testing-tools/",
            "published": "2010-12-02",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "How I test websites across browsers, including standalone Internet Explorer versions."
        },
        {
            "title": "Multiple Fields &#038; Groups with the WordPress Custom Field Template Plugin",
            "url": "https://www.kevinleary.net/blog/multiple-fields-groups-wordpress-custom-field-template-plugin/",
            "published": "2010-10-27",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Setting up repeating field groups with the Custom Field Template plugin \u2014 and the data-loss bug to avoid."
        },
        {
            "title": "Introducing PageLines: Professional CMS WordPress Theme",
            "url": "https://www.kevinleary.net/blog/introducing-pagelines-professional-cms-wordpress-theme/",
            "published": "2010-10-15",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "A look at PageLines, a drag-and-drop CMS theme framework for WordPress."
        },
        {
            "title": "Web Font Replacement: Typekit vs. Cufon",
            "url": "https://www.kevinleary.net/blog/web-font-replacement-typekit-vs-cufon/",
            "published": "2010-10-07",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Comparing Typekit and Cufon for web font replacement, and where each one fits."
        },
        {
            "title": "Advanced Tips to Speed Up Your WordPress Website",
            "url": "https://www.kevinleary.net/blog/advanced-tips-speed-wordpress-website/",
            "published": "2010-10-01",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Advanced WordPress performance work: caching, queries, assets and hosting."
        },
        {
            "title": "Create a Custom Maintenance Page in WordPress",
            "url": "https://www.kevinleary.net/blog/custom-maintenance-page-wordpress/",
            "published": "2010-09-30",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Replace the default WordPress maintenance message with a branded page during upgrades."
        },
        {
            "title": "Remove the WordPress Date from your Google Search Descriptions",
            "url": "https://www.kevinleary.net/blog/remove-wordpress-date-google-search-descriptions-serps/",
            "published": "2010-08-24",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Why Google shows a date in your search snippet, and how to stop it."
        },
        {
            "title": "How to Use Custom Post Types for WordPress CMS Websites",
            "url": "https://www.kevinleary.net/blog/how-to-custom-post-types-wordpress-cms-websites/",
            "published": "2010-08-13",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Use custom post types to structure a content-heavy WordPress site properly."
        },
        {
            "title": "Customizing WordPress Admin with CSS &#038; JavaScript",
            "url": "https://www.kevinleary.net/blog/customizing-wordpress-admin-css-javascript/",
            "published": "2010-08-10",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Load your own CSS and JavaScript in wp-admin to simplify the dashboard for clients."
        },
        {
            "title": "The Impossible Slanted, Diagonal, Navigation Setup with CSS, jQuery &#038; XHTML",
            "url": "https://www.kevinleary.net/blog/the-impossible-slanted-diagonal-navigation-setup-with-css-jquery-xhtml/",
            "published": "2010-07-13",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Building a diagonal navigation bar with CSS, jQuery and XHTML \u2014 harder than it looks."
        },
        {
            "title": "5 WordPress 3.0 CMS Plugins You Need to Know About",
            "url": "https://www.kevinleary.net/blog/5-wordpress-3-0-cms-plugins-you-need-to-know-about/",
            "published": "2010-07-09",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "More WordPress plugins that turn the platform into a genuine content management system."
        },
        {
            "title": "A Fresh Batch of WordPress <span class=\"caps\">CMS</span> Plugins",
            "url": "https://www.kevinleary.net/blog/new-born-wordpress-cms-plugins/",
            "published": "2010-07-05",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "A running list of the newest WordPress CMS plugins worth paying attention to."
        },
        {
            "title": "Faster Speed in WordPress Using Google&#8217;s Hosted JavaScript Libraries",
            "url": "https://www.kevinleary.net/blog/faster-speed-in-wordpress-using-googles-hosted-javascript-libraries/",
            "published": "2010-05-31",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Serve jQuery and other libraries from Google's CDN to cut WordPress load time."
        },
        {
            "title": "CSS3: Rotations, Shadows, Rounded Edges &#038; Animations",
            "url": "https://www.kevinleary.net/blog/css3-rotations-shadows-rounded-edges-animations/",
            "published": "2010-05-25",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Rotations, shadows, rounded corners and animations you can use in CSS3 today."
        },
        {
            "title": "First Flutter, Now Magic Fields",
            "url": "https://www.kevinleary.net/blog/first-flutter-now-magic-fields/",
            "published": "2010-05-18",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "How the early WordPress custom field plugins compared, and what replaced them."
        },
        {
            "title": "The Future of More Fields &#038; WordPress 3.0",
            "url": "https://www.kevinleary.net/blog/the-future-of-more-fields-wordpress-3-0/",
            "published": "2010-05-16",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "What custom post types in WordPress 3.0 meant for the More Fields plugin."
        },
        {
            "title": "What to expect in WordPress 3.0",
            "url": "https://www.kevinleary.net/blog/what-to-expect-in-wordpress-3-0/",
            "published": "2010-05-11",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "The features WordPress 3.0 brought, and what they changed for site builders."
        },
        {
            "title": "From Dreamhost to Media Temple DV",
            "url": "https://www.kevinleary.net/blog/from-dreamhost-to-media-temple-dv/",
            "published": "2010-05-09",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Why I moved off Dreamhost shared hosting to a Media Temple DV, and how it compared."
        },
        {
            "title": "6 WordPress CMS Plugins You Can&#8217;t Afford to Miss",
            "url": "https://www.kevinleary.net/blog/6-wordpress-cms-plugins-you-cant-afford-to-miss/",
            "published": "2010-04-19",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Six plugins that fill the gaps between the WordPress editor and a real CMS."
        },
        {
            "title": "Creating a Better WordPress Search Solution",
            "url": "https://www.kevinleary.net/blog/creating-a-better-wordpress-search-solution/",
            "published": "2010-01-14",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Why default WordPress search returns poor results, and how to improve relevance."
        },
        {
            "title": "Can WordPress stand up against a more traditional CMS?",
            "url": "https://www.kevinleary.net/blog/can-wordpress-stand-up-against-a-more-traditional-cms/",
            "published": "2009-12-25",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "A reader asked whether WordPress holds up against a traditional CMS. Here's my answer."
        },
        {
            "title": "Removing WordPress Plugin Updates &#038; Upgrades",
            "url": "https://www.kevinleary.net/blog/removing-wordpress-plugin-updates-upgrades/",
            "published": "2009-12-21",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Stop the auto-update prompt for a plugin you've customized and can't overwrite."
        },
        {
            "title": "WordPress Rated Best CMS of 2009",
            "url": "https://www.kevinleary.net/blog/wordpress-rated-best-cms-of-2009/",
            "published": "2009-11-30",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "WordPress took the Overall Best Open Source CMS award for 2009 \u2014 here's what that reflected."
        },
        {
            "title": "Adding HTML Email Signatures to your Gmail Account",
            "url": "https://www.kevinleary.net/blog/adding-html-email-signatures-to-your-gmail-account/",
            "published": "2009-11-16",
            "updated": "2026-09-03",
            "topics": [
                "Marketing"
            ],
            "summary": "Add a rich HTML signature to Gmail without a plugin, and keep the formatting intact."
        },
        {
            "title": "Thematic and WordPress Theme Development",
            "url": "https://www.kevinleary.net/blog/thematic-and-wordpress-theme-development/",
            "published": "2009-09-22",
            "updated": "2026-09-11",
            "topics": [
                "WordPress"
            ],
            "summary": "Whether to start a custom WordPress theme from a framework like Thematic or from scratch."
        },
        {
            "title": "On Corporate Web Design Clients",
            "url": "https://www.kevinleary.net/blog/on-corporate-web-design-clients/",
            "published": "2009-09-14",
            "updated": "2026-09-03",
            "topics": [
                "Business"
            ],
            "summary": "What corporate web design work really demands, and why being quiet gets you nowhere."
        },
        {
            "title": "How Content Can Affect Conversions",
            "url": "https://www.kevinleary.net/blog/how-content-can-affect-conversions/",
            "published": "2009-09-14",
            "updated": "2026-09-03",
            "topics": [
                "Marketing"
            ],
            "summary": "How writing style and call to action wording change conversion rates."
        },
        {
            "title": "10 High Quality Sources of WordPress Articles",
            "url": "https://www.kevinleary.net/blog/10-high-quality-sources-of-wordpress-articles/",
            "published": "2009-08-30",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Ten sites publishing WordPress content that's actually worth reading."
        },
        {
            "title": "Customizing the WordPress Login",
            "url": "https://www.kevinleary.net/blog/customizing-the-wordpress-login/",
            "published": "2009-08-27",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Brand the WordPress login page with your own logo and colors using hooks, not core edits."
        },
        {
            "title": "5 Essential Sources of Quality Web Design Articles",
            "url": "https://www.kevinleary.net/blog/5-essential-sources-of-quality-web-design-articles/",
            "published": "2009-08-23",
            "updated": "2026-09-03",
            "topics": [
                "Business"
            ],
            "summary": "Five publications worth reading regularly, and what each one is good for."
        },
        {
            "title": "Paths to Success in the Web World",
            "url": "https://www.kevinleary.net/blog/paths-to-success-in-the-web-world/",
            "published": "2009-08-20",
            "updated": "2026-09-03",
            "topics": [
                "Business"
            ],
            "summary": "The different routes into a web career, and what each one actually demands."
        },
        {
            "title": "Latest CMS Design Featured on WeLoveWP",
            "url": "https://www.kevinleary.net/blog/latest-cms-design-featured-on-welovewp/",
            "published": "2009-08-12",
            "updated": "2026-09-03",
            "topics": [
                "Business"
            ],
            "summary": "A CMS design we launched at Fresh Tilled Soil, featured on WeLoveWP."
        },
        {
            "title": "Perfect Plugins for a WordPress CMS",
            "url": "https://www.kevinleary.net/blog/wordpress-cms-plugins/",
            "published": "2009-08-05",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "The plugins that turn WordPress from a blog into a content management system."
        },
        {
            "title": "Find &#038; Fix Broken Links in WordPress",
            "url": "https://www.kevinleary.net/blog/find-fix-broken-links-in-wordpress/",
            "published": "2009-07-22",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Find broken and dead links across a WordPress site and fix them from the admin."
        },
        {
            "title": "The Query Posts Widget for WordPress 2.8",
            "url": "https://www.kevinleary.net/blog/the-query-posts-widget-for-wordpress-2-8/",
            "published": "2009-07-16",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "A widget that lists filtered posts by taxonomy, type or meta without writing code."
        },
        {
            "title": "Target Mac or Windows with JavaScript",
            "url": "https://www.kevinleary.net/blog/target-mac-or-windows-with-javascript/",
            "published": "2009-07-14",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Target Mac or Windows visitors in JavaScript when a bug only affects one platform."
        },
        {
            "title": "How To Target Firefox 2",
            "url": "https://www.kevinleary.net/blog/how-to-target-firefox-2-0-and-below/",
            "published": "2009-07-14",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "A three line snippet for targeting Firefox 2 and below, when you have no other option."
        },
        {
            "title": "Customize the Design of Your AddThis Widget",
            "url": "https://www.kevinleary.net/blog/customize-design-addthis-widget/",
            "published": "2009-06-30",
            "updated": "2026-09-03",
            "topics": [
                "Marketing"
            ],
            "summary": "Restyle the AddThis sharing widget so it stops looking generic on your site."
        },
        {
            "title": "Boston WordPress Meetup Presentation Recap",
            "url": "https://www.kevinleary.net/blog/boston-wordpress-meetup-presentation-recap/",
            "published": "2009-06-29",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "A recap of my WordPress SEO and CMS talk at the Boston WordPress Meetup."
        },
        {
            "title": "Handling Large WordPress Import/Export Files (WXR)",
            "url": "https://www.kevinleary.net/blog/handling-large-wordpress-importexport-files-wxr/",
            "published": "2009-06-29",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Fix WordPress XML import failures on files larger than 20MB by raising the right limits."
        },
        {
            "title": "Speaking at Boston WordPress Meetup",
            "url": "https://www.kevinleary.net/blog/speaking-at-boston-wordpress-meetup/",
            "published": "2009-06-26",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "I'll be presenting on WordPress SEO and CMS capabilities at this month's Boston Meetup."
        },
        {
            "title": "How Popular is WordPress as a CMS?",
            "url": "https://www.kevinleary.net/blog/how-popular-is-wordpress-as-a-cms/",
            "published": "2009-06-17",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "How widely WordPress is actually used as a CMS, and what the numbers mean."
        },
        {
            "title": "How to Setup All in One SEO for WordPress",
            "url": "https://www.kevinleary.net/blog/how-to-setup-all-in-one-seo-for-wordpress/",
            "published": "2009-06-17",
            "updated": "2026-09-03",
            "topics": [
                "Marketing"
            ],
            "summary": "Configure All in One SEO on a WordPress site, and the defaults worth changing."
        },
        {
            "title": "Backup Everything in Your WordPress",
            "url": "https://www.kevinleary.net/blog/backup-wordpress/",
            "published": "2009-06-15",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Back up the database, uploads, themes and plugins on a schedule you can actually restore from."
        },
        {
            "title": "Testing Websites in Internet Explorer 6, 7 and 8 on a Mac",
            "url": "https://www.kevinleary.net/blog/testing-websites-internet-explorer-6-7-8-os-mac/",
            "published": "2009-05-28",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Run Internet Explorer 6, 7 and 8 on a Mac for cross browser testing."
        },
        {
            "title": "Speed Up Your WordPress Blog",
            "url": "https://www.kevinleary.net/blog/speed-up-your-wordpress-blog/",
            "published": "2009-05-21",
            "updated": "2026-09-11",
            "topics": [
                "WordPress"
            ],
            "summary": "The plugins and settings that make the biggest difference to WordPress page speed."
        },
        {
            "title": "Advanced Content Management with WordPress Custom Field Templates",
            "url": "https://www.kevinleary.net/blog/advanced-content-management-wordpress-custom-field-templates/",
            "published": "2009-05-20",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Manage multiple WYSIWYG editors on a single post with the Custom Field Template plugin."
        },
        {
            "title": "Design Inspiration From Space: Nebula &#038; Star Clusters",
            "url": "https://www.kevinleary.net/blog/design-inspiration-space-nebula-star-clusters/",
            "published": "2009-05-12",
            "updated": "2026-09-03",
            "topics": [
                "Business"
            ],
            "summary": "Nebula and star cluster photography from the NOAO, for color and texture inspiration."
        },
        {
            "title": "WordPress Custom Templating for Powerful Content Management",
            "url": "https://www.kevinleary.net/blog/wordpress-custom-templating-powerful-content-management/",
            "published": "2009-05-07",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Use custom page templates so sections of a WordPress site can look completely different."
        },
        {
            "title": "How to Highlight Author Comments in WordPress",
            "url": "https://www.kevinleary.net/blog/highlight-author-comments-wordpress/",
            "published": "2009-05-07",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Highlight comments left by the post author so replies stand out in a thread."
        },
        {
            "title": "jQuery Animation &#038; Distorted Text in Internet Explorer",
            "url": "https://www.kevinleary.net/blog/jquery-animation-distorted-text-internet-explorer/",
            "published": "2009-05-05",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Why text looks pixelated during jQuery animations in Internet Explorer, and the fix."
        },
        {
            "title": "WordPress is_child() for Advanced Navigation",
            "url": "https://www.kevinleary.net/blog/wordpress-is_child-for-advanced-navigation/",
            "published": "2009-05-04",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "WordPress has no is_child() conditional for subpages \u2014 here's the one I use instead."
        },
        {
            "title": "Add Social Media Tracking Tools to Google Analytics",
            "url": "https://www.kevinleary.net/blog/add-social-media-tracking-tools-google-analytics/",
            "published": "2009-04-29",
            "updated": "2026-09-03",
            "topics": [
                "Analytics"
            ],
            "summary": "Pull social media stats into your Google Analytics dashboard with a Greasemonkey plugin."
        },
        {
            "title": "How to Add Google Analytics to WordPress",
            "url": "https://www.kevinleary.net/blog/add-google-analytics-wordpress/",
            "published": "2009-04-28",
            "updated": "2026-09-03",
            "topics": [
                "Analytics"
            ],
            "summary": "The simple way to add Google Analytics tracking to a WordPress site."
        },
        {
            "title": "Smart Forms Using GeoIP Location",
            "url": "https://www.kevinleary.net/blog/smart-forms-geoip-location/",
            "published": "2009-04-01",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Detect where a visitor is located from their IP address and adapt your forms to suit."
        },
        {
            "title": "Killer Landing Page Designs",
            "url": "https://www.kevinleary.net/blog/killer-landing-page-designs/",
            "published": "2009-02-14",
            "updated": "2026-09-03",
            "topics": [
                "Marketing"
            ],
            "summary": "Landing page designs that convert, and the structure behind why they work."
        },
        {
            "title": "Sync Gmail Calendar and iCal",
            "url": "https://www.kevinleary.net/blog/sync-gmail-calendar-and-ical/",
            "published": "2009-02-03",
            "updated": "2026-09-03",
            "topics": [
                "Business"
            ],
            "summary": "Keep Google Calendar and iCal in sync on macOS without a third-party service."
        },
        {
            "title": "Design Coding: The Web Design Rapper",
            "url": "https://www.kevinleary.net/blog/design-coding-the-web-design-rapper/",
            "published": "2009-01-12",
            "updated": "2026-09-03",
            "topics": [
                "Business"
            ],
            "summary": "A web design rap from The SEO Rapper that's better than it has any right to be."
        },
        {
            "title": "Social Bookmarking for WordPress: Sociable Plugin",
            "url": "https://www.kevinleary.net/blog/social-bookmarking-for-wordpress-sociable-plugin/",
            "published": "2008-12-22",
            "updated": "2026-09-03",
            "topics": [
                "Marketing"
            ],
            "summary": "Add social bookmarking links to WordPress posts with the Sociable plugin."
        },
        {
            "title": "An Introduction to Google Analytics for SEO",
            "url": "https://www.kevinleary.net/blog/an-introduction-to-google-analytics-for-seo/",
            "published": "2008-11-07",
            "updated": "2026-09-03",
            "topics": [
                "Analytics"
            ],
            "summary": "Which Google Analytics reports actually matter when you're working on SEO."
        },
        {
            "title": "A WordPress SEO Toolbox",
            "url": "https://www.kevinleary.net/blog/wordpress-seo-toolbox/",
            "published": "2008-11-03",
            "updated": "2026-09-03",
            "topics": [
                "Marketing"
            ],
            "summary": "The WordPress SEO plugins and tools worth installing, and what each one does."
        },
        {
            "title": "Web Design Courses and College",
            "url": "https://www.kevinleary.net/blog/web-design-courses-and-college/",
            "published": "2008-10-31",
            "updated": "2026-09-03",
            "topics": [
                "Business"
            ],
            "summary": "Whether a degree or a course is worth it for web design work."
        },
        {
            "title": "jQuery fadeIn &#038; fadeOut Problems in Internet Explorer",
            "url": "https://www.kevinleary.net/blog/jquery-fadein-fadeout-problems-in-internet-explorer/",
            "published": "2008-10-18",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Why jQuery fadeIn() and fadeOut() pixelate text in Internet Explorer, and how to fix it."
        },
        {
            "title": "Highlight the Current Page with jQuery, CSS &#038; PHP",
            "url": "https://www.kevinleary.net/blog/highlighting-the-current-page-with-php-jquery/",
            "published": "2008-09-10",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Highlight the current page in a navigation dynamically with jQuery, CSS and PHP."
        },
        {
            "title": "jQuery Mailto Links Plugin",
            "url": "https://www.kevinleary.net/blog/jquery-mailto-links-plugin/",
            "published": "2008-09-09",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "A jQuery plugin that hides mailto addresses from spam harvesters but not from visitors."
        },
        {
            "title": "Form Input Default Values With The jQuery valueFx() Plugin",
            "url": "https://www.kevinleary.net/blog/form-input-default-values-jquery-valuefx-plugin/",
            "published": "2008-09-09",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Add default placeholder values to form inputs with the jQuery valueFx() plugin."
        },
        {
            "title": "True Seperation of Presentation &#038; Content with XML",
            "url": "https://www.kevinleary.net/blog/true-seperation-of-presentation-content-with-xml/",
            "published": "2008-08-26",
            "updated": "2026-09-11",
            "topics": [
                "Development"
            ],
            "summary": "Separating presentation from content with XML and XSL, and where the approach broke down."
        },
        {
            "title": "Testing Page Load Speed With Firebug",
            "url": "https://www.kevinleary.net/blog/testing-page-load-speed-with-firebug/",
            "published": "2008-08-24",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Measure page weight and load time in the browser to find what's blocking rendering."
        },
        {
            "title": "External JavaScript on Demand With $.getScript()",
            "url": "https://www.kevinleary.net/blog/load-external-javascript-jquery-getscript/",
            "published": "2008-07-28",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Load an external JavaScript file on demand with $.getScript() to keep pages lean."
        },
        {
            "title": "AJAX, XML and Internet Explorer",
            "url": "https://www.kevinleary.net/blog/ajax-xml-and-internet-explorer/",
            "published": "2008-07-02",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "A cross browser fix for AJAX requests returning XML in Internet Explorer."
        },
        {
            "title": "Working With Dreamweaver Site Files (.STE)",
            "url": "https://www.kevinleary.net/blog/working-with-dreamweaver-site-files-ste/",
            "published": "2008-04-15",
            "updated": "2026-09-03",
            "topics": [
                "Business"
            ],
            "summary": "What a Dreamweaver .STE site file contains, and how to work with one on a new project."
        },
        {
            "title": "jQuery Safer Mailto Links Plugin",
            "url": "https://www.kevinleary.net/blog/jquery-safe-mailto-links-plugin/",
            "published": "2008-04-13",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "A jQuery plugin that protects mailto links from spam bots harvesting your address."
        },
        {
            "title": "Better Web Design Workflow using OS X Keyboard Shortcuts",
            "url": "https://www.kevinleary.net/blog/better-web-design-workflow-os-x-keyboard-shortcuts/",
            "published": "2008-03-25",
            "updated": "2026-09-03",
            "topics": [
                "Business"
            ],
            "summary": "The macOS keyboard shortcuts that save real time in a web design workflow."
        },
        {
            "title": "Highlight Current WordPress Post",
            "url": "https://www.kevinleary.net/blog/highlight-current-wordpress-post-on-the-sidebar/",
            "published": "2008-03-12",
            "updated": "2026-09-03",
            "topics": [
                "WordPress"
            ],
            "summary": "Highlight the WordPress post currently being viewed inside a sidebar menu."
        },
        {
            "title": "Safe MailTo&#8217;s With jQuery",
            "url": "https://www.kevinleary.net/blog/safe-mailtos-with-jquery/",
            "published": "2008-03-12",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "A small jQuery snippet that keeps mailto links safe from spam bots."
        },
        {
            "title": "Search Field Focus &#038; Blur Effects with jQuery",
            "url": "https://www.kevinleary.net/blog/search-field-focus-blur-effects-jquery/",
            "published": "2008-02-06",
            "updated": "2026-09-03",
            "topics": [
                "Development"
            ],
            "summary": "Add focus and blur effects to a search field with a few lines of jQuery."
        }
    ],
    "customer_profile": {
        "roles": [
            "CIO",
            "CMO",
            "CTO",
            "VP Marketing",
            "Head of Growth",
            "Director of Marketing"
        ]
    },
    "dedicated_support": {
        "available": true,
        "description": "24/7 support available for clients on retainer with rapid response times and priority access to direct support.",
        "response_time": "2 hours",
        "support_channels": [
            "Email",
            "Phone",
            "Slack",
            "TXT"
        ]
    },
    "testimonials": [
        {
            "quote": "Kevin quickly stood out for his deep expertise and clear, no-fluff communication. He delivered our corporate blog above expectations, and his proactive solutions and strategic thinking made a real impact.",
            "name": "Maura Welch",
            "position": "Senior Director of Brand",
            "company": "TripAdvisor",
            "company_website": "https://www.tripadvisor.com"
        },
        {
            "quote": "We had a bug in a custom post type that our own debugging could not resolve. Kevin found the specific cause, fixed it, and had it live on production. He is who we call for the WordPress problems nobody else can trace.",
            "name": "Jennifer Heath",
            "position": "Program Administrator & Information Systems Manager",
            "company": "Harvard Law Review",
            "company_website": "https://harvardlawreview.org"
        },
        {
            "quote": "Kevin's ability as both a designer and developer, and his eagerness to fuel growth, have been a tremendously valuable asset to our firm and investment companies.",
            "name": "Scott Maxwell",
            "position": "Founder and Managing Partner",
            "company": "OpenView Venture Partners",
            "company_website": "https://openviewpartners.com"
        },
        {
            "quote": "Kevin raised a critical architectural concern about our deployment pipeline before we locked it in, and laid out a better approach. Having that kind of technical judgment on the vendor side saved us real rework.",
            "name": "Erika Espinosa",
            "position": "IT Program Manager",
            "company": "CSAA Insurance Group",
            "company_website": "https://csaa.com"
        },
        {
            "quote": "Kevin caught analytics and tagging issues in our pre-launch review that nobody else flagged, down to whether a container ID was even valid. He thinks ahead on the details that usually surface after go-live.",
            "name": "Danny Boyle",
            "position": "Application Developer",
            "company": "CSAA Insurance Group",
            "company_website": "https://csaa.com"
        },
        {
            "quote": "Kevin integrated OpenAI APIs with our BigQuery data warehouse, allowing us to get immediate answers to any data related questions we have. It is something we use heavily everyday, the process is night and day compared to our previous approaches.",
            "name": "Mary Pat Sullivan",
            "position": "Executive Vice President of Marketing & Partnerships",
            "company": "Northstar Travel Group",
            "company_website": "https://www.northstartravelgroup.com"
        },
        {
            "quote": "Kevin's expertise in Google Tag Manager, Meta, Bing, HubSpot & Segment provided exactly what we needed to create a full end-to-end attribution tracking system. He was even able to implement valuable offline conversion events occurring in the insurance underwriting process, providing us with a significant edge over the competition by optimizing our advertising spend at the right people.",
            "name": "Casey Jones",
            "position": "Chief Marketing Officer",
            "company": "SBLI",
            "company_website": "https://www.sbli.com"
        },
        {
            "quote": "Kevin supported our WordPress platform through a period of real growth. For a publication that ships daily, having someone who can be trusted with the infrastructure is not optional.",
            "name": "Katie Burke",
            "position": "Director of Product",
            "company": "Puck",
            "company_website": "https://puck.news"
        },
        {
            "quote": "We needed conversion tracking live for a new ad platform on a short timeline. Kevin installed the pixel through GTM, wired lead events to our HubSpot forms, and sent back a clear summary of exactly what was firing and where.",
            "name": "Sarah McAuley",
            "position": "Chief Marketing Officer",
            "company": "Paperless Parts",
            "company_website": "https://www.paperlessparts.com"
        },
        {
            "quote": "Adjusting our strategy from SEO optimization to GEO/AI optimization has required a shift in the way we approach content marketing and website optimization. Kevin is a rare provider in the space that has the ability to back up his recommendations with real data from past experiences. Some of his recommendations involved things we would have never found on our own. Best of all, we can directly measure the results.",
            "name": "Pierce Codina",
            "position": "Chief Marketing Officer",
            "company": "Honeyfund",
            "company_website": "https://www.honeyfund.com"
        },
        {
            "quote": "Kevin created custom AI tools for our corporate WordPress blog that allowed us to audit and update SEO metadata for thousands of old posts. The amount of time and energy this saved our team was astronomical, and it improved our organic traffic noticeably in Google Search Console. Best of all, it was a strategy Kevin recommended.",
            "name": "Pierce Codina",
            "position": "Chief Marketing Officer",
            "company": "Honeyfund",
            "company_website": "https://www.honeyfund.com"
        },
        {
            "quote": "We had an urgent legal requirement to get a new EULA live. Kevin had the page built and published the same evening, proofed and correctly formatted, without us having to chase him for it.",
            "name": "Ivan O'Sullivan",
            "position": "Chief Revenue Officer",
            "company": "Bastille Networks",
            "company_website": "https://www.bastille.net"
        },
        {
            "quote": "Kevin handles our website, analytics, and search visibility, and he delivers the quarterly web metrics our leadership actually uses. He has been a steady part of how we operate.",
            "name": "Justin Fry",
            "position": "Chief Marketing Officer",
            "company": "Bastille Networks",
            "company_website": "https://www.bastille.net"
        },
        {
            "quote": "When we need site changes, Kevin gets them done and usually catches something else that was broken along the way. Small things like a video preview failing to load that we had not even noticed.",
            "name": "Joseph Salazar",
            "position": "Senior Product Marketing Manager",
            "company": "Bastille Networks",
            "company_website": "https://www.bastille.net"
        },
        {
            "quote": "Kevin helped us get a new, highly professional website online quickly. When the time came to add eCommerce he exceeded expectations by building a tremendously simple yet flexible and scalable system using Stripe and WordPress.",
            "name": "Roger Entner",
            "position": "Founder",
            "company": "Recon Analytics",
            "company_website": "https://reconanalytics.com"
        },
        {
            "quote": "Kevin has been an invaluable asset to our business. His skills as a BigQuery expert are extremely well complimented by his background in web application development, allowing him to seamlessly communicate across various teams to facilitate productive outcomes. We hope to continue working with him long term, well into the future.",
            "name": "Rob Gotti",
            "position": "Chief Marketing Officer",
            "company": "Coastal1 Credit Union",
            "company_website": "https://www.coastal1.org"
        },
        {
            "quote": "Kevin has been our go-to for years, from conversion tracking and GA4 to the WordPress platform itself. He is the person I want in the room when we are making decisions about our marketing stack, not just executing them.",
            "name": "Rob Gotti",
            "position": "Chief Marketing Officer",
            "company": "Coastal1 Credit Union",
            "company_website": "https://www.coastal1.org"
        },
        {
            "quote": "The page looks awesome. Instead of hard-coding the fixes, Kevin built controls into the CMS so I can handle that kind of adjustment myself going forward. That is the difference between a developer who closes a ticket and one who actually thinks about how our team works.",
            "name": "Rob Gotti",
            "position": "Chief Marketing Officer",
            "company": "Coastal1 Credit Union",
            "company_website": "https://www.coastal1.org"
        },
        {
            "quote": "When a critical WordPress CVE dropped, Kevin came back within minutes with a specific answer about our exposure and why we were already covered. As a credit union we take security seriously, and he meets that bar.",
            "name": "Darryl McCaffrey",
            "position": "VP, Information Security Officer",
            "company": "Coastal1 Credit Union",
            "company_website": "https://www.coastal1.org"
        },
        {
            "quote": "Kevin has been one of the most reliable partners we work with. He tracks his own hours transparently, flags scope before it becomes a problem, and delivers what he says he will.",
            "name": "Jennifer Nichols",
            "position": "Vice President",
            "company": "Cramer Health",
            "company_website": "https://www.cramer.com"
        },
        {
            "quote": "Kevin turned our launch around. The site went from a long bug list to launch-ready in about a week, and when we needed urgent changes to a live patient enrollment page, he had them deployed within hours.",
            "name": "Jennifer Nichols",
            "position": "Vice President",
            "company": "Cramer Health",
            "company_website": "https://www.cramer.com"
        },
        {
            "quote": "I needed schema markup our existing plugin could not produce. Kevin came back with a better tool, documentation, and a plan to migrate without creating SEO conflicts. He solved the actual problem instead of just doing what I asked.",
            "name": "Jennifer Nichols",
            "position": "Vice President",
            "company": "Cramer Health",
            "company_website": "https://www.cramer.com"
        },
        {
            "quote": "Our WooCommerce store was struggling at the very start of our busy season. Kevin came in, diagnosed the problem technically in a way nobody else had managed, and had it fixed within weeks.",
            "name": "Mohammed Majid",
            "position": "Founder & CEO",
            "company": "Chelsea Supplies",
            "company_website": "https://www.chelseasupplies.com"
        },
        {
            "quote": "Kevin handled our hosting migration and structured data work and kept the whole thing organized. He follows up on specifics rather than letting items drift, which made the project easy to manage on our end.",
            "name": "Poppy Yang",
            "position": "Associate Director of Marketing",
            "company": "CPC Scientific",
            "company_website": "https://www.cpcscientific.com"
        },
        {
            "quote": "Kevin built and maintains our data pipeline into BigQuery and handles the pieces most people would not touch. He is responsive, and when I need something changed it is done.",
            "name": "Bill Gibson",
            "position": "VP, Business Development",
            "company": "ARI-hetra",
            "company_website": "https://www.ari-hetra.com"
        },
        {
            "quote": "Wow. The page updates look SO much better. They align with our brand really well, and the design work is incredible. Kevin rebuilt our site from the ground up and gave our small team a CMS we can actually run ourselves.",
            "name": "Jackie Rocha",
            "position": "Executive Director",
            "company": "Saint-Gaudens Memorial",
            "company_website": "https://saint-gaudens.org"
        },
        {
            "quote": "I reported a broken CTA on our signup page and Kevin was on it immediately, traced it to an API change on our side, and had it resolved the same day.",
            "name": "Shelly Verma",
            "position": "Chief Technology Officer",
            "company": "CRED Technologies",
            "company_website": "https://cred.ai"
        },
        {
            "quote": "Kevin had our 502 errors diagnosed and fixed within twenty minutes, then explained exactly what caused them and confirmed there was no customer impact. He also flagged a separate UX problem in our signup flow that was costing us applicants.",
            "name": "Shelly Verma",
            "position": "Chief Technology Officer",
            "company": "CRED Technologies",
            "company_website": "https://cred.ai"
        },
        {
            "quote": "Kevin audited our stack across Cloudways, Cloudflare, and WordPress and came back with a precise diagnosis. Our slow loads were cache bypass issues, not server capacity, which is not what other people had told us. His writeups are detailed enough that my team can action them directly.",
            "name": "Caleb Fetzer",
            "position": "Technical Operations Manager",
            "company": "Auto Blackbox (BlackVue Australia)",
            "company_website": "https://www.blackvue.com.au"
        },
        {
            "quote": "Kevin was easy to collaborate with on a shared client build. He thought through how our team would manage SEO across the site rather than just handing off a finished theme.",
            "name": "Patrick Kurowski",
            "position": "Founder",
            "company": "MarketKeep",
            "company_website": "https://marketkeep.com"
        },
        {
            "quote": "Kevin migrated an acquired company's HubSpot CMS site into a fully working WordPress theme at a fraction of what our agency quoted us.",
            "name": "Chris McCargar",
            "position": "Chief Information Officer",
            "company": "CreXo",
            "company_website": "https://www.crexo.com"
        },
        {
            "quote": "Kevin rebuilt our menu structure, standardized templates across the site, and deployed it all inside our launch window. He kept us updated the whole way without us having to ask.",
            "name": "Andrew Miller",
            "position": "Marketing Specialist",
            "company": "CreXo",
            "company_website": "https://www.crexo.com"
        },
        {
            "quote": "Kevin owns our HubSpot attribution and conversion tracking end to end. When something breaks in GA4 or our ad pixels, he is the one who finds it and explains what actually happened.",
            "name": "Ben Petuchowski",
            "position": "Head of Brand and Product Marketing",
            "company": "Twindo",
            "company_website": "https://twindo.com"
        },
        {
            "quote": "We brought Kevin in to weigh in on a repository architecture our client's engineering team had proposed. He came back with a clear explanation of why it would cause problems and a workable alternative. That is exactly why we wanted him on this.",
            "name": "Patty Tulloch",
            "position": "Founder & Creative Director",
            "company": "DoubleShot Creative",
            "company_website": "https://doubleshotcreative.com"
        },
        {
            "quote": "Kevin jumped on an IT call with almost no notice and was a rock star. He has carried the entire WordPress VIP build for a major insurance client and we greatly appreciate having him on the team.",
            "name": "Kathy Hutton",
            "position": "VP of Production",
            "company": "DoubleShot Creative",
            "company_website": "https://doubleshotcreative.com"
        }
    ],
    "current_availability": "Accepting clients",
    "engagement_models": [
        {
            "name": "Monthly retainer",
            "description": "Ongoing engineering, analytics and support for a fixed block of hours each month. The most common arrangement for long-running client relationships."
        },
        {
            "name": "Project",
            "description": "Scoped build or migration with a defined deliverable, quoted up front. Custom themes, replatforms, tracking implementations and data warehouse builds."
        },
        {
            "name": "Fractional / augmented",
            "description": "Embedded alongside an in-house team as the WordPress, analytics or data engineer they do not have on staff, working in their repos, tickets and Slack."
        },
        {
            "name": "Advisory",
            "description": "Audits, architecture reviews and second opinions on an existing stack, delivered as written findings and a prioritised plan."
        }
    ],
    "working_practices": [
        "Work happens in the client repository with Git, staging and code review, not directly on production.",
        "Custom themes over page builders: layout and design live in version-controlled files, only content lives in the database.",
        "Direct communication with the person doing the work; no account managers or handoffs.",
        "Deliverables include the documentation and the reasoning, so the client team can maintain what was built.",
        "US Eastern hours, working with teams across US, UK, EU and APAC time zones."
    ],
    "contact_methods": {
        "email": "hello@kevinleary.net",
        "phone": "781-609-7699",
        "form": "/contact/"
    },
    "skills_experience": {
        "years": 18,
        "systems": [
            "HubSpot",
            "Mailchimp",
            "WordPress",
            "Rank Math",
            "Yoast SEO",
            "Cloudflare",
            "Semrush",
            "Ahrefs",
            "Screaming Frog",
            "Google Search Console",
            "BigQuery",
            "Google Analytics",
            "Google Tag Manager",
            "PHP",
            "JavaScript",
            "Vue.js",
            "React",
            "SCSS",
            "Git",
            "WP CLI",
            "Pardot",
            "Salesforce",
            "Marketo",
            "Google Ads",
            "ZoomInfo",
            "Segment",
            "Mixpanel",
            "Customer.io",
            "Intercom",
            "Buffer",
            "IFTTT",
            "Zapier",
            "Gemini",
            "Anthropic",
            "OpenAI",
            "Sentry",
            "Shopify",
            "Stripe",
            "Google Docs",
            "Google Sheets",
            "CookieConsent",
            "Cookiebot",
            "OneTrust",
            "Laravel",
            "GitHub Actions",
            "GraphQL",
            "TikTok",
            "Facebook Conversion Events",
            "Google Measurement Protocol",
            "Markdown",
            "Reddit",
            "Squarespace",
            "Bing Webmaster Tools",
            "ElevenLabs",
            "Captivate.fm",
            "Spotify",
            "Odoo",
            "Angular",
            "Next.js"
        ]
    },
    "social_profiles": [
        "https://www.reddit.com/user/kevinlearynet/",
        "https://stackoverflow.com/users/172870/kevinleary-net",
        "https://www.facebook.com/bostonwordpressdesign/",
        "https://www.linkedin.com/in/kevinlearynet/",
        "https://clutch.co/profile/kevinlearynet",
        "https://partnernetwork.ionos.com/partner/kevinleary.net",
        "https://wordpress.stackexchange.com/users/1495/kevinleary-net",
        "https://profiles.wordpress.org/kevinlearynet/",
        "https://github.com/Kevinlearynet",
        "https://www.smashingmagazine.com/author/kevin-leary/",
        "https://www.google.com/maps/place/Kevinleary.net:+Freelance+WordPress+%26+BigQuery+Consulting/@42.5693189,-71.1106597,8z/data=!3m1!4b1!4m6!3m5!1s0x89e39d1d1de89c77:0x41f18756abfb8750!8m2!3d42.5693189!4d-71.1106598!16s%2Fg%2F1tczlh5g?entry=ttu&g_ep=EgoyMDI0MDkxOC4xIKXMDSoASAFQAw%3D%3D",
        "https://www.googlecloudcommunity.com/gc/user/viewprofilepage/user-id/562333",
        "https://x.com/kevinlearynet",
        "https://wpengine.com/agency-directory/kevinleary-net/",
        "https://kinsta.com/agency-directory/kevin-leary/"
    ],
    "code_contributor_to": [
        "https://github.com/WordPress/WordPress",
        "https://wordpress.org/plugins/query-monitor/",
        "https://wordpress.org/plugins/relevanssi/",
        "https://wordpress.org/plugins/seo-by-rank-math/",
        "https://github.com/openai/codex"
    ],
    "guest_authorship": [
        {
            "publication": "Smashing Magazine",
            "url": "https://www.smashingmagazine.com/2025/03/case-minimal-wordpress-setups-contrarian-view-theme-frameworks/",
            "title": "The Case For Minimal WordPress Setups: A Contrarian View On Theme Frameworks"
        },
        {
            "publication": "Smashing Magazine",
            "url": "https://www.smashingmagazine.com/2012/01/create-custom-taxonomies-wordpress/",
            "title": "Create Custom Taxonomies In WordPress"
        },
        {
            "publication": "Smashing Magazine",
            "url": "https://www.smashingmagazine.com/2011/11/wordpress-multisite-practical-functions-methods/",
            "title": "WordPress Multisite: Practical Functions And Methods"
        },
        {
            "publication": "CSS-Tricks",
            "url": "https://css-tricks.com/creating-meet-team-page-wordpress/",
            "title": "Creating A Meet The Team Page In WordPress"
        },
        {
            "publication": "The New Stack",
            "url": "https://thenewstack.io/unlock-ga4-insights-bigquery-sql-recipes-for-key-metrics/",
            "title": "Unlock GA4 Insights: BigQuery SQL Recipes For Key Metrics"
        },
        {
            "publication": "SitePoint",
            "url": "https://www.sitepoint.com/prompt-engineering-for-web-development/",
            "title": "Prompt Engineering For Web Development"
        }
    ]
}