𝗧𝗵𝗲 𝗗𝗮𝘆 𝗪𝗲 𝗙𝗶𝘅𝗲𝗱 𝗢𝘂𝗿 𝗦𝗶𝗴𝗻𝘂𝗽 𝗣𝗶𝗽𝗲𝗹𝗶𝗻𝗲

Our signup numbers grew every week. The team felt excited. But the data felt wrong. Users never returned. Email addresses looked strange. Our activation rate dropped.

I looked at the data. I did not find growth. I found noise.

The Problem

I ran a query to group signups by IP address. One IP address registered hundreds of accounts in 24 hours. It used the same browser fingerprint. A script was hitting our register endpoint. It used throwaway email domains. It was a bot, not a person.

Our signup pipeline was wide open.

The Solution

We built three layers of protection in one sprint.

Layer 1: Throttling

We used two types of rate limiting.

Layer 2: Blocklists

Layer 3: IP Blocklist

Some IPs are persistent. They abuse multiple parts of our system. We use a hard blocklist. These IPs are rejected for every request. The middleware stops them immediately.

The Results

Before the fix:

After the fix:

Lessons Learned

Growth is not just about getting users. It is about getting real users. Your product decisions depend on good data. That data starts at your registration endpoint.

Source: https://dev.to/ogeobubu/the-day-we-fixed-our-signup-pipeline-3664