Blog

Problems, and how I solved them.

Real problems from the job, and how I fixed them.

All posts

43 Articles I wrote for the AHA JournalLighting, wiring, smart locks and Mumbai homes, read on ahasmarthomes.com.

Non-brand clicks are the SEO number that matters

Total clicks told us nothing, because most of them were people already searching for AHA by name. Splitting brand from non-brand turned SEO into a number we could steer by.

+183% non-brand clicks

A path-traced showroom in a TV browser

22 renders, path-traced offline in about 2 hours

Five bugs a data audit caught before anyone made a decision on them

2.00× → 1.00× Meta lead count

What buyers really ask on sales calls

5 to 6 buyer questions per call

A blog hub that builds its own topic pages

11 → 48 posts in the Journal

Mapping a whole market when the API stops at 60 results

1,176 firms mapped in Mumbai

A sales pitch that plays itself

15 → 5½ min walkthrough, with a presenter clicking

The shared token that switched off the website’s leads

~30 min website leads stopped, once

A thank-you page that lied

7 / 7 forms verify the save

Asking AI assistants about AHA without saying AHA

31 buyer questions, AHA’s name removed

Planning billboards around where the leads are

93 sites geocoded from a spreadsheet

Product films recorded from the app, with no ffmpeg

87 s lock film, no feature left out

A 15-minute warehouse that runs on one PC

15 min refresh, while the PC is on

The first-week SEO audit that read the site like a crawler

21 → 0 pages sharing a duplicate title

An ads agent that grades its own advice

≤ 8 recommendations per weekly run

The BACK button that kept walking out of the app

1 per press history steps banked

One meaning per number, so the screens stop arguing

54 metric formulas, one definition each

Turning showroom pages into local landing pages

362 → 999 words, Lower Parel page

Giving a TV remote a mouse pointer

3× drag threshold for the air mouse

A nightly sync that survives its own failures

16 of 25 steps that can fail without stopping the run

The slow part was the server, not the page

96% of the LCP wait came before first paint

From sleep loop to portable screensaver

22 slides a pass on the TV, about 4½ minutes

A phone page that tells consultants who to call next

7 days with nothing logged puts a deal on the list

Measuring whether AI assistants recommend you

5 → 7 of 24 panel answers name AHA

A phone as the TV remote, with voice search

4 speech guesses scored per search

Where did this lead come from?

7 / 7 forms record the lead’s page

Building for a 2 GB TV and a remote with no pointer

−35% browser memory

Don’t let the LLM do the maths

~255 lines of Python maths moved to SQL

The sitemap that quietly hid the whole blog

38 → 108 URLs in the sitemap

What a fortnight of Google Business Profile posts taught us

+93% → 0% first four posts: ten days, then five

The hero image that waited in line

−80% LCP on /solutions

Product pages led by specifications

2,037 px of bullets, and no spec table

Rules first, LLM second

0.9 confidence for the rules to answer

Writing about Apple without breaking Apple’s rules

6 of 6 Apple pages indexed within days

Lead capture without handing the browser your CRM keys

0 secrets in the page

From 3.3 MB to 180 KB, the image diet behind a fast landing page

−94% image weight