Case 02 / Bangkok property
The real inventory lived in a spreadsheet
A Bangkok agency was running its real inventory out of a Google Sheet, 123 properties and 500 reserved reference codes, while its WordPress site showed six or seven property pages and quietly lost leads between the admin and the agents meant to work them. I rebuilt all of it in eight weeks: a custom site, a custom CRM, and a database that decides who sees what.
- WordPress, a bought theme, a page builder, 8 plugins
- 6 to 7 live property pages, 123 properties in a sheet
- Ownership stored in one column, so leads vanished
- A documented defect list that kept growing
- Next.js and Postgres, 35 routes, 483 listings live
- One CRM holding leads, deals, viewings and agents
- 41 RLS policies decide who sees what
- Homepage first byte measured at 43ms warm
- 19 June: stopped patching, preview live that night
- 23 June: serving the real domain, old URLs redirected
Under the surface
The parts that decide whether it holds
Homepage first byte: 43ms warm, 319ms on a cold first hit
530 URLs in the sitemap
237 distinct pages earning impressions
llms.txt and a named AI crawler allowlist, both live
Database figures are a live read on 19 August 2026. Search Console runs to 17 August 2026. The before state comes from the 2026-05 defect record.
Live database 19 August 2026, Search Console to 17 August 2026
The numbers
Search Console, last 90 days: 4,351 impressions, 114 clicks, average position 14.79. June to the first 17 days of August, impressions went 166 to 2,570 and average position 21.98 to 13.60. June was the launch month, so part of that curve is a new site indexing from near zero. The CRM also holds 12 won deals. Those are the agency's own sales result, recorded in the system I built. I am not going to claim I caused them, and the values are hers to share, not mine.
Search Console, read 21 Aug 2026
Organic search went from flat to actually moving
- Impressions: 1,163 to 3,955, up 3.4x
- Clicks: 39 to 79, up 2x
- Average position: 15.9 to 13.5
- June, the launch month: 166 impressions, 16 clicks
- 1 to 21 August: 3,415 impressions, 69 clicks
- 154 pages and 169 distinct queries earning impressions in the last 28 days
- The brand name converts: "pro pick property," position 1.3, 44 impressions, 20 clicks
- Everything else is the guides: "best area to live in bangkok for expats," "bangkok expat community," "the best neighborhoods for expats in bangkok," none of them brand terms, all landing on the 18 long form guide pages
1,163 to 3,955 impressions, last 28 days vs the prior 28
39 to 79 clicks, same comparison
154 pages, 169 queries earning impressions
Position and impression reads on the date shown, not a ranking promise. The 12 won deals recorded in the CRM are the agency's own sales result and hers to share, not counted here.
- Runs on her cloud instance and her Telegram, not my infrastructure
- Live read and write on her database, verified
- Deploy control on her Vercel project through a revocable token
- Status, logs, redeploy and rollback all tested
- Skill files for listings, photos and website code changes
- It is not a chat widget. There is no AI in the public product
- It is a single user tool. Her, by her choice, not her staff
- It was in her hands and she told me she would use it. Beyond that I will not claim more than I can show
Live read and write on her database
Deploy, logs, redeploy and rollback on her Vercel project
Skill files for listings, photos and site code
Her instance, her Telegram, her token. I am listing what it was connected to, not showing output I cannot produce.
No retainer, no lock in
What it costs and what you own
200,000 THB flat, in four installments of 50,000. Ownership of the website and the CRM transfers to you on payment in full. The code is yours, the database is yours, the domain and hosting sit in your accounts. After that, 2,500 THB per hour when you want something. No retainer, no monthly platform fee for software you already own.
Your listings, your leads, your agents, in one system you own outright, instead of a theme you rent and a spreadsheet you fear.
Wil
wilcot.co, Bangkok
Send me your current site and I will tell you exactly what is broken underneath it.