DEV Community

Cover image for How I Built a Free Random Letter Generator — And Got 7,800+ Impressions in 8 Weeks with Zero Ad Spend
shahriyar anwar
shahriyar anwar

Posted on

How I Built a Free Random Letter Generator — And Got 7,800+ Impressions in 8 Weeks with Zero Ad Spend

I'm not a full-time developer. I'm an SEO and WordPress specialist. So when I decided to build and launch a web tool from scratch, I knew I had to be smart about every decision — from the tech stack to how I'd get it in front of people.

This is the story of how I built randomletter.io — a free, fast, accessible random letter generator — and what I learned along the way.

Why I Built It

The idea was simple: I wanted to create a suite of small, useful generator tools under one brand. Random letter generator was Tool #1.

I looked at what was already out there. Most existing tools were cluttered, slow, or just plain ugly. I knew I could do better — and more importantly, I knew a clean, fast, accessible tool could rank well on Google with the right SEO foundation.

So I got to work.

The Stack

I kept it deliberately simple:

  • WordPress as the CMS (I know it well, it's fast to deploy)
  • Kadence Theme — lightweight, performance-friendly
  • Custom Vanilla JS plugin for the actual tool logic
  • LiteSpeed Cache + Cloudflare for speed
  • Rank Math SEO for on-page optimization
  • Hostinger for hosting

No React. No npm. No build pipeline. Just clean, dependency-free Vanilla JS wrapped in a custom WordPress plugin.

Building the Tool Plugin

The core tool lives in a custom plugin at wp-content/plugins/. I built it entirely in Vanilla JS — no frameworks, no libraries.

Why Vanilla JS? A few reasons:

  1. Performance — no library overhead. Every millisecond matters for PageSpeed scores.
  2. Simplicity — fewer moving parts means fewer things to break.
  3. Control — I own every line of code.

The plugin handles letter generation, display modes (single letter, multiple letters), and user settings like excluding vowels or consonants. It enqueues its own CSS and JS cleanly, without touching the theme.

One early mistake: I accidentally enqueued Google Fonts twice — once in the theme and once in the plugin. Fixed it, and PageSpeed jumped immediately. Small things like that compound fast.

Accessibility from Day One

This was non-negotiable for me. A tool that teachers and students use needs to work for everyone.

I made sure:

  • All interactive elements have proper accessibility labels
  • Colour contrast meets accessibility standards (I had to fix --rlg-text-muted — the default was too light)
  • The tool is fully keyboard navigable
  • Screen reader announcements work correctly when a new letter generates

Result: 100/100 Accessibility score on PageSpeed Insights. Not a nice-to-have — a baseline.

The PageSpeed Obsession

I'll be honest — I became a little obsessed with PageSpeed scores.

After a lot of tweaking — removing duplicate font loads, deferring non-critical CSS, optimising the LiteSpeed Cache configuration, and setting up Cloudflare properly — here's where I landed:

Metric Mobile Desktop
Performance 98 100
Accessibility 100 100
Best Practices 100 100
SEO 100 100

A perfect or near-perfect score doesn't guarantee rankings — but it removes a barrier. Google won't penalise you for being fast.

SEO Strategy: Content Over Tricks

I didn't do anything clever with SEO. I just did the basics well:

  • Targeted low-competition keywords
  • Wrote genuinely useful supporting content
  • Built clean internal linking
  • Made sure the site was fully crawlable

No black hat. No shortcuts. Just content that actually helps people.

The Results (8 Weeks In)

As of May 2026, with zero ad spend:

  • 7,870 impressions on Google Search Console
  • 85 clicks
  • Average position: 18.2 (and improving)
  • 7 pages indexed
  • Impressions in 145 countries — India, USA, UK, Japan, Canada, Philippines, and counting

Not viral numbers. But for an 8-week-old site with no backlinks budget, I'll take it.

What's Next

Continuing to grow organically — more content, more visibility, more tools under the same brand. Slow and steady.

No shortcuts. No rushing.

What I Learned

  1. Vanilla JS is underrated. You don't need a framework for a focused, single-purpose tool.
  2. Accessibility and performance aren't opposites. You can have both if you're intentional from the start.
  3. WordPress gets a bad reputation it doesn't always deserve. With the right stack, it's genuinely fast.
  4. SEO is slow. That's fine. Compound interest is slow too. Keep going.

If you're thinking about building a small web tool — just start. Keep the scope small, the code clean, and the user experience tight.

You can check it out at randomletter.io — feedback always welcome.

Top comments (0)