Case study · WordPress

Seuil: a WordPress real estate portal built as a personal project

Nobody commissioned this site. I built it to show, on a concrete case, what I can do: a real property search application for Luxembourg and the neighbouring Lorraine region, delivered by a custom-written WordPress plugin.

Seuil property portal home page: search by town, workplace and budget

You cannot click on a CV line

When you are looking for a job, you can list skills. You can also show them. A live site that anyone can open and browse tells you straight away whether the work holds up. I chose real estate because it is a demanding sector when it comes to data structure: property types, prices, floor areas, filters, maps.

The site is online: ccmanagement.domotiko.eu. I would rather say it up front: the starting listings, their landlords and their flatmates are fictional, and so are their photos; each demo listing says so on its page. Accounts created on the site, however, are real.

From a first prototype to Seuil

The first version, called CC Management, relied on a theme, a page builder and Estatik, an off-the-shelf real estate plugin. It worked, but mostly it showed that I could assemble plugins. It was also heavy and hard to evolve.

So I started again under a new name, Seuil. The site is now rendered entirely by a WordPress plugin I wrote: no theme, no page builder. Listings are a WordPress content type, managed from the admin area like posts. Estatik, Elementor and the contact form plugin from the old version are deactivated.

What you can do on the site

Seuil covers renting, buying and flat-sharing, with 36 listings spread between Luxembourg and the Lorraine border area. Beyond the usual search by town, property type and budget, I wanted to answer the questions cross-border workers really ask:

  • How long is the commute to my job? Each listing shows an estimate based on distance, with extra time for crossing the border at rush hour.
  • Where are the properties? A map follows the search filters.
  • Is it a good price? Price statistics are calculated from the listings themselves.
  • Who will I live with? For flat-shares, a short questionnaire gives a compatibility score with the current flatmates.
  • Which one should I choose? A comparison tool puts up to three homes side by side.

Since version 2, these are no longer just demo screens. Anyone can create a real tenant or landlord account. Tenants find their favourites, alerts and rental file on all their devices; their messages, applications and viewing bookings reach the landlord, who is notified by email and replies from their own space. Landlords publish listings with their own photos, and every listing is checked before it goes live. The demo accounts are still there for exploring without signing up.

Agencies can feed the site with a listings file (CSV, JSON or XML), read again automatically every six hours. Saved searches trigger email alerts, instantly, daily or weekly. And the site is available in French, German and English, down to the emails, which are sent in each user’s chosen language.

Technical choices

The first page is served directly by the server, then a JavaScript application takes over for navigation. The code is split and bundled with esbuild, and the Leaflet map library only loads when a map is displayed. Fonts are hosted on the site, icons are lightweight SVG files, and a button switches to dark mode, a choice the site remembers from one visit to the next.

On the server side, a REST API written for the project handles sign-up, login, messaging, applications, viewing slots and photo uploads, with dedicated database tables and limits against abuse. Personal data is handled in line with the GDPR: consent at sign-up, one-click data export, account deletion, retention periods applied automatically and a published privacy policy.

SEO is part of the build: an XML sitemap, titles and descriptions of the right length, and redirects from the old addresses of the first version. In September 2026, PageSpeed gave 97 on mobile for the home page and 98 for the search page, with no layout shift. It is the same logic that made me prefer the block editor over Elementor on my own site: only load what is needed.

What you can check by browsing the site

To sum up what this project shows:

  • Building a complete WordPress plugin, from the content type and the API to the public front end.
  • Designing a search experience: filters, map, commute times, comparison tool.
  • Working on performance and technical SEO from the design stage.
  • Handling real accounts, messaging and personal data in line with the GDPR.
  • Web design in light and dark mode, and writing all the content in French, then its German and English versions.

What remains before commercial use

In the first version of this case study, I listed what a real portal would still need: a catalogue fed by agencies, real accounts and real messaging, GDPR compliance, several languages. All of that now exists.

What would remain for commercial use is less about code than about running a business: signing partner agencies, having the legal notice and privacy policy reviewed by a lawyer, and having someone moderate listings. On the technical side, a listing published by a landlord stays in the language it was written in; assisted translation would be the next step.

What the rebuild taught me

The first version taught me to start with the data rather than the design. Seuil taught me the next step: when a need is central to a site, a custom plugin can be easier to maintain than a stack of generic plugins. It is also faster, because it only loads what the site needs.

Why I show it

A personal project has its limits, and I have just listed them. But it has one merit no CV has: it can be checked. You can open the site, choose your workplace, filter flat-shares, compare three homes, book a viewing. If something does not work, you see it straight away. That is what I offer an employer: a concrete example of what I deliver, with its choices explained and its limits acknowledged.

A position to fill? Let’s talk.

I am looking for a permanent position as a WordPress developer or digital marketing specialist, in Paris, elsewhere in France or in Luxembourg.