Delivery snapshot
Record date: March 30, 2026. Technology and screenshots describe the delivered version documented on this date. Any performance observations belong to the same point-in-time record. The linked live site may include later changes made by the client or other providers.
Glam by Grisel needed a bilingual digital home for a Miami-based permanent makeup and lash studio. The existing experience combined a marketing site, service information, booking entry points, galleries, courses, and FAQs, so the rebuild had to organize many content types without losing the visual character of the brand.
Clients had to move between social media and separate information sources to understand the work, compare services and pricing, find reviews or courses, and start a booking. The business needed one professional website that could make those paths clear in both English and Spanish.
The rebuild had to preserve the established visual identity while supporting media-heavy portfolios, before-and-after comparisons, service details, booking actions, course information, and an Instagram feed. Each surface also needed localized content and responsive behavior.
The approach was a ground-up rebuild as a Vite and React single-page application delivered through Cloudflare Pages. The structure separates the service library, booking flow, gallery, courses, Instagram content, and FAQ so each surface can be maintained independently while sharing the same bilingual content layer.
The implementation uses React 19, Tailwind CSS, react-i18next, Cloudflare R2 media delivery, and Cloudflare Workers for server-side integrations. The site includes an immersive hero, service navigation, a booking drawer, before-and-after presentation, a masonry gallery, courses, FAQs, and localized metadata.
The services library organizes brows, lashes, and lips into responsive service cards. Booking calls to action open a persistent booking drawer, while the navigation and page sections provide direct paths into the same flow.
Before-and-after pairs use a drag-to-reveal interaction, with a responsive gallery and lightbox for additional work. Course cards expose duration, level, features, and enrollment actions in a structured layout.
Content and communication
The homepage includes a Cloudflare Worker-backed Instagram feed, a bilingual content layer, FAQs, certifications, and responsive layouts for the main marketing surfaces.Public verification
Business outcomeA bilingual website brings services, pricing, reviews, courses, and direct booking together in one professional experience.
Working with Alejandro gave Glam by Grisel a website that finally brings every part of my business together. Clients can see my work, understand each service and its pricing, read reviews, learn about my courses, and book directly without searching through social media. He also created the experience in English and Spanish, which is important for my Miami clients. The process felt personal, and the finished website represents my work professionally while giving the business room to grow.
Grisel Llamo, Owner, Glam by Grisel
I owned the site architecture, frontend implementation, bilingual experience, Cloudflare deployment, media delivery, and integration work represented in this delivery. The structure keeps content areas and integration surfaces separated so later updates can be handled without rebuilding the entire experience.
The frontend uses Vite, React 19, Tailwind CSS v4, and react-i18next. Cloudflare Pages hosts the application, Cloudflare R2 serves media assets, and Cloudflare Workers provide the gallery and Instagram integration surfaces. The interaction layer uses scroll reveals, a booking drawer, responsive gallery controls, and reduced-motion-aware behavior.