Skip to main content
Web development

Beauty website — lash extensions

2023
Frontend developer
Beauty website — lash extensions

Project description

Promotional site template focused on lash extensions. It includes a service catalog with sample prices, a contact form, an interactive OpenStreetMap map, and responsive navigation. Business copy, map coordinates, and form destination are configurable via a data module with placeholders, a carousel on the home page, and a footer with contact and social links.

Key features

Next.js App Router with `[lang]` routes and `generateStaticParams` for English and Spanish

Locale detection via middleware (`Accept-Language`) and explicit URL prefixes

Per-locale JSON dictionaries and server-oriented service content

Embedded map with Leaflet and OSM; client-only loading to avoid SSR issues

Contact form posting to FormSubmit (configurable destination in data)

Responsive UI: sticky nav, mobile menu, service grid, and animated home carousel

Per-page SEO metadata via `generateMetadata` and configurable title prefixes

Tailwind CSS plus CSS Modules where needed; Inter via `next/font`

Challenges and solutions

Internationalization and routing

Aligning initial locale redirects, stable `/en` and `/es` routes, and JSON-driven copy without duplicating layout, while keeping SEO and shareable URLs in good shape.

Leaflet without SSR

The map needs the DOM and does not play well with server rendering; it is loaded with dynamic import and `ssr: false` so React Leaflet mounts only on the client.

Contact without a custom backend

Form submission is delegated to FormSubmit to avoid API routes or a mail server in the repo, with the destination documented in the data module.

Screenshots

Beauty website — lash extensions — 1
Beauty website — lash extensions — 2

Technologies used

Next.js 13React 18TypeScriptTailwind CSSCSS ModulesLeafletReact Leafletreact-iconsnext/fontMiddleware i18nFormSubmit
Built with by Alexei Hernández
© 2026 All rights reserved