Johor's property market has rarely been this crowded. Cross-border investment, the JS-SEZ build-out and a steady stream of new launches mean a developer is competing for the same buyer attention as a dozen others in the same corridor.
So when a Johor property company came to us for a new project listing platform, the brief wasn't "make it look good." They had two operational requirements that sounded small and weren't — and those two decided the entire build.
The brief: two features that break templates
Everything else was standard — project pages, unit types, floor plans, gallery, location. These two weren't:
- Automated social media sync. Every listing that goes live on the website should format itself and publish to their Facebook Page and Instagram — correct crop, price, location, unit type, link back. Nobody re-typing the same details into three places.
- Inquiry forms with real logic. A buyer picking "new launch, above RM 1.5M" and one picking "rental, under RM 2k" need different follow-up questions and different agents. The form has to adapt as it's filled, then route the lead to the right person.
Why we didn't build this on WordPress
We've written the long version elsewhere — Next.js vs WordPress and why WordPress sites load slower than they should. The short version, specific to this project: neither requirement is a WordPress feature. Both get assembled from third-party parts — an auto-poster plugin, a premium form builder, an automation service in between, often a fourth plugin to make the first three agree. Each is a monthly fee and a place a lead can silently go missing.
The deeper problem is ownership of the logic. When routing rules live in a form builder's settings panel, nobody can read, version or test them. When a lead lands with the wrong agent, there's no code to inspect — only a dropdown someone may have changed six months ago.
Feature 1: listings that publish themselves to Facebook and Instagram
We built this directly against the Meta Graph API. When an agent publishes a listing, the CMS does the rest in the background:
- Generates the social image. A 4:5 portrait crop for Instagram and a 1.91:1 landscape for Facebook, rendered from the same source photo with price, location and unit type composited on.
- Builds the caption from listing fields. Assembled from the same database fields that render the web page, so the two can never disagree.
- Queues instead of failing. Instagram's publishing API needs a media container created before it can post, and caps posts per rolling 24 hours. On a launch day with dozens of units, a naive integration hits that wall and fails silently. Ours queues and drains automatically.
- Handles the unhappy path. Price change, unit sold, listing withdrawn — the CMS updates or removes the social post instead of leaving a sold unit advertised at last month's price.
That last point is the one plugin chains almost always skip, and the one that causes real problems: a buyer walking in holding a screenshot of a unit that sold three weeks ago.
Feature 2: an inquiry form that routes its own leads
The form is multi-step, and each step decides what comes next. New launch asks about financing stage and handover window. Rental skips both and asks move-in date instead. A budget above a set threshold opens a different path from one below it.
Routing runs on the same data: property type, budget band and location combine into a rule that assigns the lead to a specific agent, with a fallback so nothing lands in an unattended inbox. The agent gets the full answer set attached — no "let me pull up your enquiry" on the first call. It's about two hundred lines of readable logic, and the point is where it lives: in code the client owns, that we can test and change in an afternoon.
Built for a cross-border audience
JS-SEZ changed who visits a Johor property site. A meaningful share of enquiries now arrive from across the Causeway, and that group behaves differently enough to affect the build:
- They browse on mobile, on the move. Listing pages are rendered server-side and images served in modern formats at the size actually needed — not assembled in the browser on a commute.
- They compare in two currencies. Prices show in RM with an SGD reference, so nobody opens a converter mid-decision.
- They enquire outside Malaysian office hours. After-hours leads are acknowledged immediately and queued to the right agent for the morning, instead of sitting unseen in a shared inbox.
None of it is exotic. It's just what this audience needed — which is exactly the sort of thing a template decides for you in advance.
Got a workflow your website can't handle?
Free 30-minute consultation. Tell us the process you're doing manually — we'll tell you honestly whether it needs custom development or whether an existing tool already does it.
WhatsApp us about your project → Free Consultation · No CommitmentWhat we built it on
What changed after launch
| Metric | Before | After |
|---|---|---|
| Time to publish a listing everywhere | ~12 min, three places | Under 1 min, one upload |
| Social posting effort | ~3 hrs / week manual | Automated |
| Average first response to a lead | ~4 hours | ~18 minutes |
| Leads reaching the wrong agent | Common | Rule-based, with fallback |
| Lighthouse Performance (mobile) | — | 96 |
| Recurring plugin / automation fees | Would have been ongoing | RM 0 |
The listing count didn't change. The marketing budget didn't change. The gap between "a unit is available" and "the right buyer is talking to the right agent" got much shorter.
When WordPress is genuinely the right answer
If this had been a five-page company profile with a contact form, we'd have said so — WordPress is faster to stand up, cheaper on day one and easy to maintain. The line is workflow. The moment a website has to do something on a schedule or decide something based on user input, you're not buying a website; you're buying a small piece of business software, and the platform question changes with it. Same argument outside property, in our custom software vs SaaS guide.
The takeaway
Property website design in Johor Bahru is rarely a design problem. Every industry has a workflow off-the-shelf tools handle badly, and in property it's listing distribution and lead routing — the two things that decide whether marketing spend turns into a conversation. Bolting those onto a template works until volume arrives.
If your business has a process like that, build the software around the workflow rather than the other way around. See how our custom website design service works → — or read how we approached a very different proptech problem in the iCARES smart community platform.



