LilyJRose Holiday Cottage Website - Made with Webflow

Aug 21, 2025

Project Overview

I designed and developed a webflow site for a holiday cottage, this was to increase their advertisement in getting bookings and building more of an online presence. It was completed for a private client and features a minimalistic, yet warm look reflecting the warmth of the house.

Technologies Used

Webflow

Google Business Listing

SEO optimisation

Key Features

Landing page

Links to relevant sites

Captivating Animations

Google Business Listing

SEO optimisation

Design process

It was designed and developed in Webflow. Beginning with a planning phase: understanding target audient, goals for usability, SEO and theme for site.

Content was written to highlight the property’s features, nearby attractions, and the charm of the local area, with keywords optimized for search visibility. A clean, mobile-first design was created using calming colors and modern typography to reflect the peaceful rural setting. Key features included a gallery, booking links, visitor FAQs, and a “Places to Visit” guide. The site was fully optimized for performance, accessibility, and search engine indexing.

Outcome and Result

The project was finished with the client being happy, they enjoyed the control over the business listing and the look of the site.

Thank you for reading this Project

many thanks

James

import { useForm } from "framer"; import { useEffect } from "react"; export function FormValidator() { const { values, state, setError, setStep, submit } = useForm(); // Regex patterns const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; const phoneRegex = /^\+?[0-9\s\-]{7,15}$/; const validPostcodes = ["10115", "75001", "80331"]; // or fetch from JSON useEffect(() => { if (state === "submit") { const { email, telephone, PLZ } = values; if (!emailRegex.test(email)) { setError("email", "Invalid email"); setStep("error"); return; } if (!phoneRegex.test(telephone)) { setError("phone", "Invalid phone number"); setStep("error"); return; } if (!validPostcodes.includes(PLZ)) { setError("postcode", "Invalid postal code"); setStep("error"); return; } setStep("success"); submit(); // Continue to Zapier } }, [state]); return null; }