Yatoday Realty: Website, CRM, Portals and AI for an Estate Agency

An estate agency on the Costa Blanca usually types the same flat into a CRM, a website and three portals, then chases buyers across email and WhatsApp. Yatoday Realty keeps the listing in one place and sends it everywhere from there.

Yatoday Realty: Website, CRM, Portals and AI for an Estate Agency - Property page

The Challenge

A typical agency in Spain works in several systems at once. Listings live in a CRM, the website is maintained by someone else, each portal has its own upload form, buyers write in English, German or Russian, and the reservation document is a Word file sent back and forth by email. A price change means editing it in five places, and nobody knows for sure which portal still shows the old one.

Yatoday Realty is our platform for estate agencies that puts all of this in one panel: the listing, its website page, its portal feeds, the buyers looking for something like it, the deal and the documents. Each agency is a separate account with its own users, offices and roles, from owner and office manager to agent and external partner.

Edit Once, Publish Everywhere

The property card holds everything an agent needs: price and its history, address with a point on the map, areas and layout, features, energy certificate, descriptions in each language, documents with expiry reminders, owner and mandate. Up to 100 photos per listing are converted to AVIF, WebP and JPEG, stripped of GPS data and watermarked if the agency wants, with a clean copy kept for portals. A readiness panel shows what is still missing before the listing can go online: a description in the main language, a valid energy certificate, a price.

When the agent saves a change, the website does not rebuild at once. The panel collects changes for a few minutes and then publishes them together, or the agent presses “Publish now”. In the demo the price of a villa drops from €1,250,000 to €1,195,000, and a few seconds after publishing the property page shows the new price, the reduction and one more line in its price history. Every build is logged, and an earlier version can be restored.

The Agency Website

The website is a static Astro site generated from the panel and hosted on Cloudflare Pages, so pages load fast and are fully indexable. It supports up to nine languages with translated addresses and hreflang tags, custom domains, a blog and legal pages filled in with the agency’s details.

For the visitor it is a proper property search:

  • The catalogue has filters by type, municipality, features, price, bedrooms and area, a map with clusters, and an area the visitor draws by clicking its corners. The drawn area filters both the map and the list.
  • The property page has a gallery, details, features, map, energy label, price history and a mortgage calculator that starts from the agency’s figures and states that the result is an estimate.
  • Visitors get their own tools: favourites with personal notes, comparison of up to four properties side by side, “recently viewed”, alerts for a price change or new listings in a building, a printable PDF card, and a “What is my home worth?” form that becomes a seller lead with a guide price per m² from the agency’s own listings.
  • Search works in plain words: a visitor can type “three bedrooms near the beach under 400,000” and the AI turns it into catalogue filters.

Portals Without Re-typing

The platform builds feeds for Kyero, Green-Acres and Spainhouses in each portal’s published format, and the tests check them against the portals’ own XML schemas. For each portal the agency sets which listings go out (operations, types, offices, exclusive only, minimum photos), maps its property types to the portal’s codes, and enters the contract limit; above the limit, featured and newest listings go first.

Before anything is sent, each listing is checked against the portal’s required fields. In the demo, Spainhouses rejects two listings with “No postal code, or the address is shown only by district”, while Kyero takes all ten and Green-Acres eight of its eight-listing limit. The agent sees this on the portal tile, in the property card and in the export journal, and fixes the data before the portal sees it. Portal enquiries that arrive by email are read automatically and turned into leads with the portal and the property reference attached, and the statistics show how many leads each portal brought and what each one cost.

Buyers, Requests and Matches

A buyer’s request records what they want: operation, property types, municipalities or an area drawn on the map, budget, bedrooms, area, required and desired features. The platform scores every listing against it in per cent and keeps the score current whenever a listing or the request changes. In the demo, a buyer looking for a villa with a pool between Jávea and Moraira gets two matches at 100% and a country house at 76%, which lacks some of the desired features.

The agent ticks the properties and sends a selection by email or as a private page on the agency website, where the client marks what they like. The client can also subscribe to new matches daily or weekly.

Leads and Deals

Website forms, portal emails and WhatsApp messages land in one list of leads. Routing rules hand each lead to the listing’s agent, to the next agent in turn or to an office, a reaction timer tracks how quickly someone picks it up, and notifications go out by email, browser push or Telegram. An automatic reply goes back in the client’s language. From a lead the agent creates a request, a deal or a viewing in one step.

Deals move across a kanban board in two pipelines: sales and rentals, and property acquisition from owners. The board shows the value in progress and the expected commission, a lost deal needs a reason, and moving a deal to a stage can update the property’s status. The calendar books viewings, prints a viewing sheet the client signs on screen and syncs with Google and Outlook.

AI That Writes and Translates

The agency can generate a listing description from the property’s characteristics, translate it into the website’s other languages and translate correspondence with a client, all with a monthly limit per agency. The same model reads the page of the agency’s own listing on another site and fills in a new property card from it, and qualifies new WhatsApp leads by asking the agency’s questions and offering free viewing slots.

For photos there is a “before and after” visualisation: renovation, furnishing an empty room or a new façade. The result is saved next to the original photo and stays hidden on the website until a staff member chooses to show it.

Documents and Signatures

Document templates (mandate, reservation, deposit contract, rental contract, key handover and others) are edited in a rich-text editor with fields such as the property reference, the client’s name and the agency’s details. A document is generated as PDF or Word in the client’s language and signed on the agent’s screen or through a link. On the phone the client reads the document, enters their name, signs with a finger and confirms; the platform records the time, IP address, browser and a SHA-256 fingerprint of the document. For a qualified electronic signature the agency can switch on an external provider module.

Tech Stack

- Panel: Laravel + Inertia/React (Ant Design), multi-tenant with roles and record scopes
- Agency website: Astro + Tailwind CSS (@yatoday/astro-ui), Pagefind search, Leaflet maps
- Builder: Node worker with a Redis build queue, publish log and rollback
- Hosting: Cloudflare Pages, custom domains, Pages Functions and Turnstile for forms
- Data: MySQL 8 with spatial queries (map areas, matching), Redis + Horizon queues, Meilisearch
- Media: Cloudflare R2, AVIF/WebP/JPEG variants, watermarks
- Portals: Kyero v3, Green-Acres XML, Spainhouses XCP feeds checked against their XSD schemas
- Lead email: Cloudflare Email Worker
- AI: Anthropic Claude for texts, translation and search; Gemini or OpenAI for visualisations
- Documents: TipTap editor, Gotenberg PDF, DOCX, on-screen signature, Yousign module
- Messaging: WhatsApp Business API, Postmark newsletters, web push, Telegram
- Integrations: REST API (Sanctum), signed webhooks, OpenAPI docs, Google and Outlook calendars

Result

An agency changes a price once and sees it on its own website and in every connected portal feed after the next publication, with the portal checks showing what each portal will refuse before it is sent. Buyers search the website by drawing an area on the map, compare properties and follow price changes, and their requests are matched against new listings automatically. Leads, deals, viewings and signed documents stay in the same panel as the listings they belong to.

Status: the platform is built and runs end to end on demo data; it is not launched yet, and the external services (Cloudflare, portals, WhatsApp, Anthropic, Gemini, Yousign, Postmark) have so far been tested only against simulated versions of them.