{"id":1463463,"date":"2026-08-26T14:03:13","date_gmt":"2026-08-26T13:03:13","guid":{"rendered":"https:\/\/webpixelia.com\/portfolio\/wp-radar\/"},"modified":"2026-08-26T14:03:13","modified_gmt":"2026-08-26T13:03:13","slug":"wp-radar","status":"publish","type":"project","link":"https:\/\/webpixelia.com\/en\/portfolio\/wp-radar\/","title":{"rendered":"WP Radar"},"content":{"rendered":"","protected":false},"excerpt":{"rendered":"<p>Internal automated prospecting and auditing tool for WordPress services, custom-developed with a Laravel API and an independent Next.js frontend.<\/p>\n","protected":false},"featured_media":1463462,"template":"","meta":{"_seopress_titles_title":"WPRadar \u2014 SaaS platform for WordPress auditing and prospecting | Webpixelia","_seopress_titles_desc":"Custom development of WP Radar: Laravel and Next.js SaaS tool for discovery, technical audit and automated scoring of WordPress prospects, with CRM pipeline and billing integration.","_seopress_robots_index":"","_seopress_robots_follow":"","_seopress_robots_imageindex":"","_seopress_robots_snippet":"","_seopress_robots_primary_cat":"","_seopress_robots_breadcrumbs":"","_seopress_robots_freeze_modified_date":"","_seopress_robots_custom_modified_date":"","_seopress_robots_canonical":"","_seopress_social_fb_title":"","_seopress_social_fb_desc":"","_seopress_social_fb_img":"","_seopress_social_fb_img_attachment_id":0,"_seopress_social_fb_img_width":0,"_seopress_social_fb_img_height":0,"_seopress_social_twitter_title":"","_seopress_social_twitter_desc":"","_seopress_social_twitter_img":"","_seopress_social_twitter_img_attachment_id":0,"_seopress_social_twitter_img_width":0,"_seopress_social_twitter_img_height":0,"_seopress_redirections_value":"","_seopress_redirections_enabled":"","_seopress_redirections_enabled_regex":"","_seopress_redirections_logged_status":"","_seopress_redirections_param":"","_seopress_redirections_type":0,"_seopress_analysis_target_kw":"","_uag_custom_page_level_css":"","image_header":1463423,"url_video":"","url_site":"https:\/\/wpradar.app","cms":"Application SaaS full-stack (Laravel \/ Next.js \/ PostgreSQL)","cahier_des_charges":"<h3>Context &amp; Overall Objective<\/h3>\nThe project involved designing an internal tool to automate the discovery, auditing, and qualification of WordPress leads for the agency's maintenance, optimization, and redesign services.\n\nThe objective was to validate, under real-world internal usage conditions, that an automated pipeline for technical research and auditing could generate truly commercially viable leads before considering any expansion to a broader product.\n\nThe platform had to cover the entire lifecycle: from geolocated lead search to sales follow-up, including technical detection, performance auditing, scoring, and the generation of a contextualized sales pitch.\n<h3>Key Objectives<\/h3>\n<ul>\n \t<li>Separate the frontend and backend via a secure REST API<\/li>\n \t<li>Automate lead discovery by industry and location<\/li>\n \t<li>Detect website technical stack (WordPress, theme, plugins, PHP version)<\/li>\n \t<li>Identify vulnerabilities and technical shortcomings (outdated plugins, lack of HTTPS, non-responsive design)<\/li>\n \t<li>Audit performance using Core Web Vitals (PageSpeed \u200b\u200bInsights)<\/li>\n \t<li>Produce a deterministic and reliable sales score<\/li>\n \t<li>Generate a personalized sales pitch that accurately reflects detected signals<\/li>\n \t<li>Centralize the sales pipeline (CRM, Kanban, history, contacts)<\/li>\n \t<li>Automate lead follow-ups without ever sending automated emails<\/li>\n \t<li>Ensure reliable asynchronous processing at scale (jobs, dedicated queues)<\/li>\n \t<li>Ensure a smooth transition from converted leads to recurring billing<\/li>\n \t<li>Guarantee a strong level of security for authentication (2FA, token management)<\/li>\n<\/ul>\n<h3>Expected Functional Structure<\/h3>\n<h4>Authentication &amp; Security<\/h4>\n<ul>\n \t<li>Token authentication (Sanctum)<\/li>\n \t<li>TOTP two-factor authentication at login<\/li>\n \t<li>Session revocation upon password change<\/li>\n \t<li>Request rate limitation on sensitive endpoints<\/li>\n<\/ul>\n<h4>Technical Discovery &amp; Audit<\/h4>\n<ul>\n \t<li>Prospect search by sector and geographic area<\/li>\n \t<li>Automatic detection of WordPress, theme, and active plugins<\/li>\n \t<li>Plugin comparison to the official WordPress.org database to identify outdated versions<\/li>\n \t<li>Technical checks: HTTPS, sitemap, legal notices, responsiveness<\/li>\n \t<li>Automatic extraction of contact email<\/li>\n \t<li>Performance audit via Google PageSpeed \u200b\u200bInsights<\/li>\n \t<li>Scan deduplication and limitation of unnecessary re-audits<\/li>\n<\/ul>\n<h4>Scoring &amp; Sales Pitch<\/h4>\n<ul>\n \t<li>Overall deterministic score based on four sub-scores (maintenance, redesign, performance, WooCommerce)<\/li>\n \t<li>AI-powered sales pitch generation, strictly limited to signals actually detected<\/li>\n<\/ul>\n<h4>CRM &amp; Sales Pipeline<\/h4>\n<ul>\n \t<li>Complete prospect record and Kanban-style visual pipeline<\/li>\n \t<li>Contact management, notes, and status change history<\/li>\n \t<li>Tracking of technical interventions related to each prospect<\/li>\n \t<li>Dashboard with key indicators and CSV export<\/li>\n<\/ul>\n<h4>Prospecting &amp; Follow-ups<\/h4>\n<ul>\n \t<li>Customizable email templates with variables<\/li>\n \t<li>Automated follow-up sequence (4 days \/ 10 days \/ 20 days), draft generation only<\/li>\n \t<li>Sending always validated manually, no automatic sending<\/li>\n<\/ul>\n<h4>Client onboarding &amp; Billing Integration<\/h4>\n<ul>\n \t<li>Automatic conversion of a new lead to a new client and recurring billing agreement<\/li>\n \t<li>Two-way synchronization via signed webhooks (creation, pause, resume, cancellation, payment failure)<\/li>\n \t<li>Automatic and manual recovery mechanisms in case of synchronization failure<\/li>\n<\/ul>","apercu_developpemants":"<h3>Design of a Robust Business API Decoupled from the Frontend<\/h3>\nThe project is based on a decoupled architecture: a Laravel 13 backend exposing a REST API, consumed by a separately developed Next.js frontend. This separation allows for the evolution of business logic, technical auditing, and the user interface without strong dependencies between the two layers.\n<h3>Asynchronous and Orchestrated Audit Pipeline<\/h3>\nOne of the central challenges of the project was to be able to audit a large number of sites without blocking the application or saturating resources. The audit pipeline (WordPress detection, plugins, technical checks, PageSpeed, contact extraction) is orchestrated via Laravel jobs executed in batch mode, with deduplication per domain and a no-reaudit policy on recent scans. The jobs are distributed across dedicated queues (audits, scoring, emails, integrations) monitored by Laravel Horizon, ensuring isolation of processes and resilience in case of occasional failures.\n<h3>Deterministic Scoring and AI-Assisted Sales Pitch<\/h3>\nThe sales scoring relies on a deterministic and tested engine that calculates four sub-scores (maintenance, redesign, performance, WooCommerce) based on the signals actually detected during the audit. A dedicated module then generates a sales pitch via the Anthropic API, intentionally constrained by the verified facts about the prospect to avoid overselling or inaccuracies\u2014a deliberate product choice to preserve the tool's commercial credibility.\n<h3>Complete Sales Pipeline, from Discovery to Follow-Up<\/h3>\nBeyond the technical audit, the tool covers the entire sales cycle: geolocated prospect search via the Google Places API, enriched prospect profile, Kanban-style visual pipeline, contact and note management, status change history, and automated follow-up sequence (days 4, 10, and 20). A strong principle guided the product choices: no email is ever sent automatically \u2014 the tool generates drafts, validation and sending always remain in the hands of the user.\n<h3>Native Integration with the Existing Billing Ecosystem<\/h3>\nRather than rebuilding a billing module, an architectural choice was made from the outset of version 2: when a prospect is converted into a customer, WPRadar automatically triggers the creation of the customer and the recurring billing contract in Cliento (another SaaS developed by the agency), via a dedicated job and webhooks signed with HMAC-SHA256 to secure bidirectional communication. Manual and automatic recovery mechanisms guarantee the reliability of this synchronization, even in the event of missing data on the prospect's side.\n<h3>Security and Reliability of the Application Foundation<\/h3>\nAuthentication relies on Laravel Sanctum coupled with TOTP two-factor authentication, with systematic revocation of active sessions upon password changes and a limit on the request rate at sensitive entry points. The entire core business (scoring, audits, synchronization) is covered by a suite of PEST tests, ensuring the stability of the pipeline in the face of successive tool updates.","details_techniques":"<h3>Results<\/h3>\nWPRadar transformed a manual, time-consuming, and unstructured prospecting process into an end-to-end automated pipeline: from lead discovery to conversion into a billed customer. The tool objectively qualifies each opportunity using deterministic scoring and provides a reliable, immediately actionable sales pitch, without requiring any prior manual analysis.\n\nBeyond saving time in the prospecting phase, the project validated the agency's ability to design a robust SaaS architecture\u2014decoupled API, asynchronous processing at scale, and secure integrations between internal systems\u2014laying the technical foundations necessary for a potential multi-tenant rollout of the tool in a later phase.","screens":"[{\"screen_titre\":\"Page Dashboard\",\"screen_image_id\":1463424},{\"screen_titre\":\"Page Prospects\",\"screen_image_id\":1463425},{\"screen_titre\":\"Page Pipeline\",\"screen_image_id\":1463427},{\"screen_titre\":\"Page Emails\",\"screen_image_id\":1463426},{\"screen_titre\":\"Page Settings\",\"screen_image_id\":1463428}]","technique":"[\"D\u00e9veloppement sur mesure\"]","technologies":"[\"PHP\",\"PostgreSQL\",\"Next.js\",\"React\",\"TypeScript\",\"Redis\",\"Resend\",\"Neon\",\"Anthropic Claude API\",\"Railway\",\"Laravel\",\"Google Places API\",\"Google PageSpeed API\"]","resultats_images":"[]"},"project_category":[177],"project_tag":[222,223,220,221,224,118],"class_list":["post-1463463","project","type-project","status-publish","has-post-thumbnail","project_category-saas","project_tag-automated-technical-audit","project_tag-crm","project_tag-internal-agency-tool","project_tag-sales-prospecting","project_tag-webhooks","project_tag-wordpress-en"],"uagb_featured_image_src":{"full":["https:\/\/webpixelia.com\/wp-content\/uploads\/2026\/08\/wp-radar-desktop-mockup.webp",960,640,false],"thumbnail":["https:\/\/webpixelia.com\/wp-content\/uploads\/2026\/08\/wp-radar-desktop-mockup-150x150.webp",150,150,true],"medium":["https:\/\/webpixelia.com\/wp-content\/uploads\/2026\/08\/wp-radar-desktop-mockup-300x200.webp",300,200,true],"medium_large":["https:\/\/webpixelia.com\/wp-content\/uploads\/2026\/08\/wp-radar-desktop-mockup-768x512.webp",768,512,true],"large":["https:\/\/webpixelia.com\/wp-content\/uploads\/2026\/08\/wp-radar-desktop-mockup.webp",960,640,false],"1536x1536":["https:\/\/webpixelia.com\/wp-content\/uploads\/2026\/08\/wp-radar-desktop-mockup.webp",960,640,false],"2048x2048":["https:\/\/webpixelia.com\/wp-content\/uploads\/2026\/08\/wp-radar-desktop-mockup.webp",960,640,false]},"uagb_author_info":{"display_name":"Jonathan Webpixelia","author_link":"https:\/\/webpixelia.com\/en\/"},"uagb_comment_info":0,"uagb_excerpt":"Internal automated prospecting and auditing tool for WordPress services, custom-developed with a Laravel API and an independent Next.js frontend.","_links":{"self":[{"href":"https:\/\/webpixelia.com\/en\/wp-json\/wp\/v2\/project\/1463463","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webpixelia.com\/en\/wp-json\/wp\/v2\/project"}],"about":[{"href":"https:\/\/webpixelia.com\/en\/wp-json\/wp\/v2\/types\/project"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/webpixelia.com\/en\/wp-json\/wp\/v2\/media\/1463462"}],"wp:attachment":[{"href":"https:\/\/webpixelia.com\/en\/wp-json\/wp\/v2\/media?parent=1463463"}],"wp:term":[{"taxonomy":"project_category","embeddable":true,"href":"https:\/\/webpixelia.com\/en\/wp-json\/wp\/v2\/project_category?post=1463463"},{"taxonomy":"project_tag","embeddable":true,"href":"https:\/\/webpixelia.com\/en\/wp-json\/wp\/v2\/project_tag?post=1463463"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}