Albert Gabdullin

Senior Frontend Engineer

QuickForm - Auto Form Filler
quickform.pro

How I Built My Own Form Autofill Extension (And Got 20,000 Users)

Hi! I'm a software developer, and I want to share a story of how I built my own Chrome Extension for autofilling forms. It started with pain... a lot of pain.

💡 The Pain That Sparked an Idea

At work, I was building features and fixing bugs — the usual dev life. But every time I needed to test something, I had to fill the same long form again and again.

First few times? Not a big deal. But after the 30th time in a day, I was ready to scream. Some days, I spent up to 2 hours just filling in forms. I wasn’t coding — I was copy-pasting like a robot.

That’s when I snapped: “Okay, enough. This has to stop.”

I thought about using Puppeteer. It seemed powerful. But every run opened a new tab or window, and setting it up every time was painful. Plus, it didn’t solve the problem inside my current tab.

So I searched for a Chrome Extension to help. I tested all the top-rated ones. But honestly? They were either:

  • hard to configure
  • had horrible UI
  • or just didn’t work right

None of them felt like something I wanted to use every day. And if I didn’t like them, my teammates probably wouldn’t either.

So... I decided to build my own.

🛠️ Learning As I Go

There was just one small problem: I had zero experience building Chrome Extensions.

I started reading blog posts, docs, anything I could find. Slowly I began to understand how it all works: content scripts, popup, options, permissions... and the million other little pieces.

I chose Plasmo as my base (it's like Next.js, but for extensions). In 3 days, I hacked together a working prototype.

The UI? Ugly. But it worked.

At first, I tried to autofill forms by setting element.value. But that didn’t trigger updates in React apps. I needed a smarter way. After some digging, I learned this trick:

input.dispatchEvent(new Event('input', { bubbles: true }))

That tiny line fixed everything. Suddenly, the fields updated properly in React, Angular, Vue — anything.

But there were more challenges.

Some elements didn’t exist yet when the page loaded. For that, I used MutationObserver — it watches the DOM and fills new fields as they appear.

The wildest part? Custom select components. Many UI libraries render fake dropdowns using aria-controls, hidden inputs, or portals. I had to reverse-engineer several of them. It felt like detective work sometimes.

One night I was debugging why a dropdown wasn’t autofilling, only to realize it was rendered outside the main DOM tree. Took me hours. But I loved it.

🚀 Getting It Out There

Once the basic version worked, I created a website. I wanted it to feel clean, fast, and clear. So I worked on SEO from day one:

  • 100/100 Lighthouse score
  • Meta tags with keywords
  • SEO-friendly FAQ section
  • Chrome Web Store description with optimized text
  • Added the site to every relevant directory I could find

I also shared the extension on Reddit, Indie Hackers, and a few dev communities. Nothing fancy — just honest posts with a small demo.

And slowly... people started using it.

Now I get:

  • ~2,000 visitors/month to the website
  • ~200 installs/day from Chrome Web Store

Around 30–40% uninstall quickly (they're usually looking for a generic form filler that works on any site without setup). But the rest stay — and many write to say thanks.

📈 Where It Is Now

Today, the extension is used by nearly 20,000 people.

It’s been amazing. I’ve learned so much — not just about coding, but also UX, SEO, and even customer support. I never expected strangers from different countries to write emails saying, “Hey, this saved me so much time.” But they do.

Next steps:

  • Add more powerful features
  • Make the UI better and smoother
  • Launch a Pro plan with advanced options
  • Expand to Firefox and maybe Safari

💭 Final Thoughts

This whole journey started with a simple frustration: I was tired of typing the same thing every day.

If you're a developer and something annoys you — maybe that's a sign. Maybe it’s your next side project.

Thanks for reading! And if you want to try the tool, it’s called QuickForm.

Happy building. 🚀