(01) The brief
The residence hosts foreign students and workers for months at a time. Its previous site was from 2011: not responsive, the English was machine-translated and enquiries had fallen from hundreds a year to almost none.
(02) What it does
- A walk through the house in vertical photos (the kind you take with a phone) shown at their real proportion, with no forced cropping.
- Rooms with price, what is included and availability updated by the owner.
- An English version written from scratch, not machine-translated, for foreign visitors.
- Contact by WhatsApp and form, with the location steps from the Metro.
(03) How it was built
- Full rescue of the old site’s copy and a 15-year booking history so no ranking or URLs were lost.
- Next.js with App Router and parallel routes per language; reciprocal hreflang so Google serves each visitor their version.
- Panel on a separate subdomain: the session cookie does not travel on every visit to the public site.
- Motion animations only where they help (photo entrances), respecting the system’s reduced-motion preference.
(04) Security
- Panel password stored as an scrypt hash generated on the owner’s computer; the server never sees the password.
- Panel blocked for search engines and with no links from the public site.
- CSP and HSTS headers; no third-party dependencies on the public site.
(05) Speed and Google
Photos converted to WebP with per-screen sizes. Lodging structured data with address and price.
(06) What it deliberately doesn’t do
- It is not a booking engine: the booking closes over WhatsApp or email.
- It does not process online payments.