← All projects

Fastlash Onboarder

A lead capture and ROI calculator plugin for a lash technician's WordPress site — built from scratch, deployed to production.

Client Lash technician, Brazil
Stack React · WordPress · MySQL
Year 2026
Status Live in production

A business running on Instagram DMs

The client is a lash technician in Brazil who teaches other professionals her method. Her business ran almost entirely through Instagram and WhatsApp — no structured way to capture interested leads, no way to show potential students what they'd actually gain by switching methods, and no funnel connecting her website to her course.

She needed a tool on her existing WordPress site that could collect contact details from interested visitors, show them a concrete ROI comparison for adopting her technique, and direct them toward her training — all without replacing her current setup or adding monthly SaaS costs.


A two-step funnel inside WordPress

I built a custom WordPress plugin with a full React frontend. The plugin embeds via wp_enqueue_scripts with scoped styles, so it drops into any page without conflicting with the client's existing Elementor theme. The entire interface is in Brazilian Portuguese.

The flow has two stages. First, visitors enter their contact details — name, email, and phone number in international WhatsApp-ready format. This captures the lead and fires off an email notification to the client. Second, they're taken to an ROI calculator that shows what they'd gain by adopting the client's lash method. Visitors can choose their priority — maximize freedom, maximize profits, or balance both — and the calculator adjusts the projection accordingly.

At the end of the funnel, visitors are directed to the client's course. While the course is being developed, the link points to her Instagram page where she shares her work and tips — keeping the funnel functional even before the final destination is ready.

On the backend, I designed a custom MySQL schema for storing submissions and built REST API endpoints for the form handling. Email delivery uses wp_mail with structured error handling for reliable notifications on shared hosting.


The interesting parts

Database migrations on WordPress

WordPress's dbDelta function silently fails on certain schema changes. I hit this when adding a column to the submissions table. The fix: query SHOW COLUMNS first to check what exists, then run ALTER TABLE directly for changes that dbDelta can't handle. This became a reusable pattern I now apply to all schema migrations in the plugin.

International phone validation

The client's customers contact her via WhatsApp, so the phone field needed to capture numbers in E.164 format with proper country code handling — not just a text input with a pattern mask. I built a custom phone input component that validates and formats for WhatsApp-ready delivery.

Email reliability on shared hosting

Shared hosting environments like HostGator are unreliable for email. The wp_mail function can fail silently. I wrapped it in try/catch with structured error logging so delivery failures are captured rather than lost, and the client can be alerted if notifications stop working.

Performance on shared hosting

The site was slow on HostGator's shared environment — the server runs nginx but I had no access to the server configuration. I used Autoptimize for CSS/JS minification and concatenation, and WP Super Cache for page caching, which brought load times down significantly without needing server-level changes.

Styling consistency across browsers

The calculator's stepper controls rendered differently in Firefox versus Chrome. I wrote scoped CSS overrides and used CSS variables tied to the client's existing site palette so the plugin feels native rather than bolted on.


What's under it

React WordPress Plugin API PHP MySQL REST API wp_mail Elementor CSS Variables Autoptimize WP Super Cache HostGator

A working funnel on a live site

The plugin is live in production. Visitors enter their details, see a personalised ROI projection for the client's method, and are directed toward her training. The client receives email notifications for each submission and has structured lead data she can query directly.

The entire system runs on her existing hosting plan with no additional subscriptions, no third-party SaaS dependencies, and no ongoing costs beyond hosting she already pays for. The funnel is designed to work now — pointing to her Instagram while the course is in development — and switch seamlessly to the course URL when it's ready.

View the live plugin →

Need something built
like this?

Tell me what your business needs. If I can help, I'll send a clear proposal.

prashkup@protonmail.com WhatsApp