Two Years and a Lot of Nerves: How We Created a WordPress Plugin with a Friend for Collecting and Analyzing Form Submission

Ashot Agabekov - Oct 4 - - Dev Community

Hi! My name is Ashot Agabekov, and today I’ll tell you a story about how my friend and I created our first WordPress plugin, Leadee, for website owners, marketers, and anyone collecting leads through contact forms.

Image description

https://www.youtube.com/watch?v=GQbGr40urNM

And we did it without the slightest idea of how to go about it.

Target audience, presale – none of that was on our minds as enthusiasts. My friend, an experienced marketer, Semyon Trotsan, suggested we make an analytics plugin for WordPress, specifically for marketers.

The main goals of the plugin were:

  • Collect leads with data tracking (traffic type, device, browser, screen size, etc.)
  • Display the information in convenient graphs
  • Support exporting data to Excel and CSV tables

My friend proposed developing a plugin mainly for his own use to reduce the time spent processing data. We sorted out some financial questions and got to work.

I specialize more in Java than in PHP, but the idea intrigued me. So, I decided to support my friend’s initiative, and we “virtually shook hands.” That’s how our journey into a project full of surprises and challenges began. I thought, "Why not, this will be an interesting experience."

COVID and financial challenges

At first, everything went smoothly. We worked without much stress. But then COVID hit, and restrictions started. Since the project motivated us and seemed promising, we decided to partner up. We discussed responsibilities, who would handle what, and continued development. We became partners on the plugin but realized that the plugin needed a "reboot" for it to be useful to more than just us.

The result after two years

Image description

To get straight to the point, here’s what we ended up with:

  • Support for three forms: Contact Forms 7, Ninja Forms, WPForms
  • Export of leads to Excel and CSV
  • Tracking the first visit to the site: if a client visits one page, browses around, and eventually submits a form on another page, our plugin records the initial landing page for that submission
  • Handling UTM tags
  • Graphs and sources of leads
  • Setting goals
  • Live mode (alerts and live updates of tables and graphs as new leads come in)

A host of other features — details can be found in the FAQ on the official site
Links to the plugin and demo:
Plugin: https://wordpress.org/plugins/leadee/
Demo: https://leadee.io/demo/
(just submit a form, and voilà – you’re taken to the plugin)

A bit of history and the first MVP version

The first task was to help my friend, a marketer, cut down the time spent processing data. For this, we started with the Gentelella template. It looked great, but didn’t account for the fact that other plugins would influence ours. This led to some hilarious moments: changing the site theme would also recolor our plugin’s admin panel — it was epic!

Image description

We also faced issues with data export. The first version used such a heavy PHP Composer library that it ballooned the plugin’s size to an unbelievable 400 megabytes — seriously, 400 megabytes! Insane! And it required specific PHP settings to work. Fortunately, in a later version, we found a lighter and more flexible solution.

In the end, the MVP version was suitable only for personal use. We decided to completely rework the plugin and introduce new approaches so that the product could serve a wider audience.

Interface development, or the plugin’s journey to becoming a professional product

Initially, I tried to create the mockups myself and even prepared a few options in Figma, but honestly, they left much to be desired. So, Semyon took over this task, and he did a much better job.

What’s interesting is that neither he nor I are professionals in this field — we just know the names of the programs. But despite that, my friend worked some real magic, even buying a Roccat Tyon mouse specifically for the job.

In a couple of weeks, we had a beautiful, functional interface that was ahead of its time.

Image description

The fun part begins

From a technical standpoint, developing the plugin was a real challenge for me. My specialty is Java, and I had never built plugins before, so I had to start from scratch.

I had been familiar with PHP since my teenage years when I created websites for clients. But I had no experience with building plugins. I dove into studying the official WordPress documentation and recommendations and began learning a new tech stack. We decided to use Framework 7 for the layout, as I had some experience with it. Yes, it’s more for mobile apps, but I decided to go with it.

It was both tough and exciting — figuring things out step by step in a new world and watching our ideas take shape!

Progress continues

Developing a project with a partner is like riding a bike: one pedals, the other follows along. We worked evenings and weekends since we both had day jobs. It was mentally exhausting, especially when we just wanted to relax. But enthusiasm and years of experience in IT kept us going.

The full development cycle took about a year and two months. We were enthusiasts, and thanks to persistence, we managed to complete the project.

So, why are we better?

Our plugin, of course, has competitors, like Flamingo, but they lack an interface and support for other contact forms. We have everything needed for full-fledged analytics! Also, our plugin doesn’t rely on external integrations and is quite self-sufficient.

We’re confident we’ve created something genuinely interesting and useful. For example, we have a cool feature — real-time alerts.

Imagine: someone submits a form, and at that very moment, while in the admin panel, you see tables update in real-time. Plus, our plugin supports goal setting — an incredibly useful feature for marketing!

Traffic sources are key!

One of the critical elements for us was identifying traffic sources for leads. Our plugin analyzes where the lead came from, matching the data with its own site database. My partner handled creating this list of resources, and he did an excellent job.

The early version of the traffic source clustering we used in the initial MVP didn’t fit here. We had to start from scratch.

I basically built a plugin that initially worked in a very basic form, but then everything had to be re-done. To quote a modern cinema classic: “The same, but smaller, and different!”

We ultimately identified five categories of traffic:

  1. Advertising.
  2. Search.
  3. Referral.
  4. Social media.
  5. Direct traffic.

The sixth category—messengers—has not yet been implemented. Identifying visits from messengers, such as Telegram, requires the presence of UTM tags.
Image description

Moderating the plugin: a test of patience

This process was a nightmare. We faced a ton of revisions and fixes, and even when everything met repository requirements, we waited for months for a response.

Moderation dragged on like a nerve-wracking test. The entire journey through the bureaucracy and ensuring plugin security is a story worthy of its own article!

And yet, we succeeded!

One fine evening, we finally received the long-awaited acceptance email. Our joy was indescribable!

Image description

The Leadee project: A test of endurance
Despite all the challenges, we managed to release a working product, which others are already using.

We celebrated the occasion with champagne when the plugin was finally accepted into the WordPress repository. It was a small victory on a big journey!

Plugin: https://wordpress.org/plugins/leadee/
Demo: https://leadee.io/demo/
(just submit a form, and voilà – you’re taken to the plugin)

. .
Terabox Video Player