Skip to content
Craft Solution Tech
All work
Website2026Luxury real estate · France

Terres de Villas

Terres de Villas

The starting situation

A young agency in a market where credibility is decided before the first appointment. Facing names established for twenty years, it had to look settled from day one, and exist in English without doubling the typing.

What was delivered

A site the agency feeds itself: it enters a property or an article in French, the English version writes itself, and the affected pages update in the same breath. Map search, detailed listings, an editorial section, and search treated as the project's priority, with a dedicated page per town.

What it changes

The project as the people using it every day see it.

  1. 01

    Established from day one

    Map search, complete listings, a fed editorial section: the site doesn't claim the agency is serious, it shows it. In this market the first appointment is won before it's requested.

  2. 02

    Bilingual without double work

    The agency writes in French. English follows on its own, at publication. Not a line typed twice, no content lagging behind the other language.

  3. 03

    Findable town by town

    A dedicated page per town, with an address translated in each language. A buyer looking for a villa in Sanary lands on the Sanary page, not a general list.

The screens, one by one

Each capture stays put while you read what it demonstrates, and each is paired with its phone version.

The catalogue

01 / 04

The catalogue

Properties with their floor areas, bedrooms and badges: exclusive, featured, new. Filters by type, location, budget and area, and a switch between list and map without losing your search.

Under the hood

The page is pre-computed and refreshed when a property changes, rather than recomputed on every visit.

On a phone

Filters fold into a button, the list-map switch stays visible, and property cards go full width.

Searching by place

02 / 04

Searching by place

Properties clustered by town, prices shown on the map itself, and the town's detail on click. That's how people look for a house: by place, not by list.

Under the hood

Open mapping library and independent background: no traffic-based licence, no third-party tracker on the page.

On a phone

The map fills the screen and the town panel slides over it, the gesture you expect from a search app.

The listing

03 / 04

The listing

Twenty photos, the price, the area, rooms, bedrooms and bathrooms right at the top. Then the written description. Everything a buyer wants before picking up the phone.

Under the hood

Images are served in a modern format at the screen's size; the gallery is navigable by keyboard as well as by finger.

On a phone

The thumbnail strip scrolls under the main photo, and the price stays legible over the image.

The editorial

04 / 04

The editorial

Articles about the market and local life that bring visitors long before they're looking for a villa. It's search working while the agency sleeps.

Under the hood

Written in French in the back office, translated to English at publication, with targeted republishing of the affected pages only.

On a phone

Image first, headline second: on a phone it's the photograph that makes you read.

The rest of the site

Click to enlarge: a dense interface can't be read at postage-stamp size.

The same site, on a phone

Not a stripped-down version: the same pages, the same content, the same paths. Most visits come from a phone.

The decisions, and why

Each decision carries its reason, then what would break without it.

  1. 01

    Domain separated from display

    Domain, infrastructure, presentation. The rules, what a property is and what makes it publishable, depend on neither the framework nor the database.

    Without it: An agency changes its mind about fields and categories every three months. Tangled with the screens, those rules make every change expensive.

  2. 02

    Translation fires at publication

    The translation service sits behind an interface: it's called when the agency publishes, not on every page view. Switching engines tomorrow touches one file.

    Without it: Translating on the fly means paying for a translation on every visit, and showing different text from one day to the next.

  3. 03

    Pages computed ahead, refreshed in the right place

    The site serves pre-computed pages. When the agency publishes a property, some thirty targeted refresh points update the affected pages, and only those.

    Without it: Without those targeted points there are two options left: recompute everything on every visit, or wait for a timer. The first is expensive, the second shows a sold property for hours.

  4. 04

    The addresses are translated too

    Every page has an address in each language, with a segment readable in the reader's language, and both versions declare each other to search engines.

    Without it: An English address containing French words doesn't rank, and without cross-declaration the two versions compete instead of adding up.

  5. 05

    An open map, not a rented one

    Geographic search runs on an open library and an independent map background, with properties clustered by town.

    Without it: A proprietary map means a bill that climbs with traffic and a third-party tracker on every search page.

  6. 06

    A bespoke back office, not an off-the-shelf tool

    The agency enters its properties and articles in an interface made for it, with a rich-text editor. The fields are its own, not a generic module's.

    Without it: An off-the-shelf tool imposes its data model. You end up filing an exclusive listing in a “tag” field and losing the ability to filter on it.

Our role
Design, architecture, development, search
Type
Website
Technologies
  • Next.js 16
  • TypeScript
  • PostgreSQL (Neon)
  • Drizzle ORM
  • next-intl
  • DeepL
  • MapLibre + MapTiler
  • TipTap

Tell us what you are trying to build.

Message us on WhatsApp

Other work

Bahia Renov Pro
Business software2026

Bahia Renov Pro

Business software · Spain

Sites were run on a shared spreadsheet and the phone. Three people typed the same information, and every subsidy file had to reach the scheme operator with the right papers in the right order, or be rejected.

Read the case study

SAVY
Mobile app2026

SAVY

Personal finance · Studio product

Keeping a budget together happens in a shared spreadsheet, or not at all. Someone fronts an expense, nobody knows where the month stands, and the conversation always comes back to the same place: who paid for what.

Read the case study

Regarde-moi
Website2026

Regarde-moi

Vocational training · France

A Qualiopi-certified beauty training centre near Avignon whose visibility rested on Instagram and word of mouth. Someone searching for “eyelash extension training Avignon” didn't find it, and her first question, how to pay for it, was answered nowhere.

Read the case study