---
title: "Domaine l'Angélus"
description: "Website for Domaine l'Angélus, located in Figeac in the Lot, offering gîtes and sheep dog breeding."
canonical_url: "https://tcastanie.dev/en/portfolio/domaine-langelus-website"
---

> Index of every page on this site: [llms.txt](https://tcastanie.dev/llms.txt)

# Domaine l'Angélus

Website for Domaine l'Angélus, located in Figeac in the Lot, offering gîtes and sheep dog breeding.

![Project overview](https://tcastanie.dev/portfolio/doma_social.webp)

<card-group>
<card icon="i-mingcute-link-line" title="Website" target="_blank" to="https://www.domaine-langelus.fr">

[www.domaine-langelus.fr](http://www.domaine-langelus.fr)

</card>

<card icon="i-mingcute-calendar-2-line" title="Deployment">

July 2024

</card>

<card icon="i-mingcute-lighthouse-line" title="Lighthouse scores">

- Performance: 85
- Accessibility: 98
- Best Practices: 100
- SEO: 100

*(Average across 26 pages via Unlighthouse)*

</card>

<card icon="i-mingcute-tool-line" title="Tech stack">
<field-group>
<field name="Front-end" type="">
<badge color="neutral" variant="outline">
<icon name="i-simple-icons-nuxt">



</icon>

 Nuxt (SSG)

</badge>

<badge color="neutral" variant="outline">
<icon name="i-simple-icons-vuedotjs">



</icon>

 Vue.js

</badge>

<badge color="neutral" variant="outline">
<icon name="i-simple-icons-unocss">



</icon>

 UnoCSS

</badge>
</field>

<field name="Back-end & Payments" type="">
<badge color="neutral" variant="outline">
<icon name="i-simple-icons-directus">



</icon>

 Directus

</badge>

<badge color="neutral" variant="outline" className="mr-2">
<icon name="i-simple-icons-sqlite">



</icon>

 SQLite

</badge>

<badge color="neutral" variant="outline">
<icon name="i-simple-icons-hono">



</icon>

 Hono

</badge>

<badge color="neutral" variant="outline">
<icon name="i-simple-icons-stripe">



</icon>

 Stripe API

</badge>
</field>
</field-group>
</card>
</card-group>

Domaine l'Angélus, located in Sainte-Colombe (Figeac) in Lot, is a venue offering holiday cottage accommodation and herding dog training. The objective is to create a website showcasing the various services offered by the estate, as well as enabling bookings for overnight stays and herding dog training courses.

## Overview

![Homepage](https://tcastanie.dev/doma/homepage.png)

The site is divided into two distinct parts:

- Gîtes section for presenting the estate and booking overnight stays.
- Dogs section for presenting the breeding, its services and lineage, and booking courses.

Each section has its own design: a light one for the gîtes, a dark one for the breeding. Their common element is the bronze colour which was subsequently adopted for the estate's various communication materials (social media and flyers).

## Features

### Online booking

Visitors can easily choose a date range based on availability and quickly pay for their reservation. Gîte bookings are separate from dog training course bookings.

![Booking bar](https://tcastanie.dev/doma/booking-bar.png)

### Presentation of gîtes and estate

Simple pages displaying photos of the estate and gîtes, as well as all the amenities. Each gîte listing also includes an availability calendar.

![Gîte listing preview](https://tcastanie.dev/doma/fiche-gite.png)

### Breeding presentation

Several pages with details about the estate's breeding services, dogs for sale or available for stud, as well as displaying the lineage family tree.

![Lineage page preview](https://tcastanie.dev/doma/page-lignee.png)

## Technical aspects

The project architecture is simple: a database to store all business data (bookings, pricing grid, availability, high season, pages...) and a server to host the static site, CMS and handle payments.

### Tech stack

The *CMS* is **Directus** <icon name="i-simple-icons-directus" className="size-5">



</icon>

, directly connected to the **SQLite** <icon name="i-simple-icons-sqlite" className="size-5">



</icon>

 database. Payments are processed with **Stripe** <icon name="i-simple-icons-stripe" className="size-5">



</icon>

 and managed with the **Hono** <icon name="i-simple-icons-hono" className="size-5">



</icon>

 framework. The *front-end* is built with **Nuxt** <icon name="i-simple-icons-nuxt" className="size-5">



</icon>

 and **Vue.js** <icon name="i-simple-icons-vuedotjs" className="size-5">



</icon>

 in static mode (*SSG*), with the help of **UnoCSS** <icon name="i-simple-icons-unocss" className="size-5">



</icon>

 (**Tailwind** syntax).

As the site is primarily a showcase website, the choice to generate a static site was obvious, due to the significant performance gains.

To ensure data security, automatic database backups are implemented with **Duplicati** <icon name="i-simple-icons-duplicati" className="size-5">



</icon>

.

### SEO

Most of the SEO was implemented using the **Nuxt SEO** plugin. It greatly simplifies Schema.org graph management and enables quick generation of multiple SEO tags, OpenGraph images, as well as *robots.txt* and *sitemap.xml* files.

I also used the [Google Indexing Script](https://github.com/goenning/google-indexing-script) to quickly index all the site's pages on Google and rank at the top of search results based on the domain name, in less than a month.

## Process

Created a hidden website (IP restriction) automatically updated with each code addition to implement a suitable Agile methodology. The estate hosts were able to test the site at their leisure and provide feedback to adjust features. On deployment day, the site was simply opened to the public.

Training the estate managers to use the CMS was also necessary to give them free rein for future content additions or modifications, as well as to handle booking emergencies.

## Results and impact

The estate's clients are happy to be able to book directly via the internet, without going through an intermediary, which is rare in the gîte booking sector. The simple, uncluttered display of gîte listings and their availability is also very popular. The estate managers can directly interact with bookings, particularly creating them manually.

The detailed display of the breeding's lineage dogs and dogs offered by the estate is an innovative element in the sheep dog breeding sector, which is still slow to adopt modern web practices.

![Facebook feedback](https://tcastanie.dev/doma/fb-feedback.png)

The deployed website properly reflects the combination of gîtes and sheep dog breeding and remains simple and effective in its objectives: presenting the estate and enabling bookings.

## Version 2 in August 2025

To better meet the business’s needs and keep pace with changing customer demand at the Domaine, several features have been revamped and others added.

### Bespoke back-office system

Development of a back-office system specifically designed to meet the needs of managing bookings for holiday cottages, as well as dog training courses. The processes carried out by hosts are now much quicker and easier to understand.

A simplified schedule allows owners to see, at a glance, all expected visits to the Domaine, along with the relevant key information.

### Website redesign and improvements to the home pages

- Only one holiday cottage is now available for bookings. The code has been rewritten to ensure better maintenance.
- The booking flows for holiday rentals and training courses have been rewritten to make them easier to use, following user feedback.
- The website’s structure and header menu have been simplified.
- A boarding request form, a customer reviews page and an FAQ section have been added.
- Improved *landing pages* with more photos, videos and engaging animations.
- Improvements to SEO features (schemas, metadata, OG images, etc.).
- Fixed errors related to the user’s time zone.

### Update to the site’s technical stack:

- Migration from **Nuxt** `v3` to `v4`
- Use of **Nuxt UI** and removal of **UnoCSS**
- **Stripe** payments handled directly by Nuxt (**Nitro**)
- Use of **Motion** for animations

## Sitemap

See the full [sitemap](https://tcastanie.dev/sitemap.md) for all pages.
