Real-estate platform · 2022-2024

AX Capital

AX Capital works in the Dubai real-estate market. From 2022 to 2024 I led the front-end team there and built the public platform from scratch by myself: a site with property search, a custom CMS on Quasar and a 3D apartment viewer on Three.js right in the browser.

AX Capital
Role
Front-end team lead
Team
Built the platform alone, led the front-end team
Period
2022-2024
Stack
  • Nuxt
  • Quasar
  • Three.js
  • Editor.js
01

Context

Buying, renting and selling, off-plan projects, an agent directory and the company’s own journal. All of it is on one public site.

02

What I built

Three parts. The public site on Nuxt: search across the primary and secondary markets and new developments, filters by type, number of bedrooms and price in AED, USD, EUR, GBP or CNY, properties on a map, agent pages, catalogs, AX Journal and request forms. A custom CMS on Quasar with an Editor.js editor, where all the site content is managed. And a 3D viewer on Three.js, so a buyer can see the apartment in 3D right in the browser.

03

Architecture

Nuxt for the site, Quasar for the admin panel, Three.js for the viewer. A listings site lives on search traffic, so pages have to render fast and get indexed. The CMS is a separate app, so editors don’t touch the public front end. The 3D viewer loads only where it is needed. Editor.js outputs structured JSON instead of raw HTML.

04

Challenges

The site has two types of content: journal texts and property data that the filters work on. Texts fit well into Editor.js, but properties need typed fields for queries. So the block editor could not be the only content model.

05

Outcome

axcapital.ae went to production with all three parts. With SSR, Sharp image compression and a CDN on AWS, pages loaded about 40% faster. According to the client, performance went up by 50%.

Results

+50% performanceBuilt from scratchSite · CMS · 3D viewer

Need to launch a product?

Send me the idea, the repo or the unfinished project. First I’ll ask questions, then I’ll send a written scope. Looking for someone to join your team? Tell me which role.