Skip to content
All projects
Client workLive2025–2026WebCloud

A Romanian-language marketing website for an auto detailing business, live at nvautodetailing.com. A static site on Netlify with service pages, a filterable portfolio, a contact form and a serverless function that shows the business's Google reviews.

Website built for a third-party business. Brand names, logos and portfolio photos belong to NV Autodetailing.

  • A serverless function fetches the business's Google reviews and caches them on Netlify's CDN for 24 hours, so the reviews are refreshed about once a day instead of on every visit.
  • A custom reviews carousel. It loops endlessly and pauses on hover, on touch or when scrolled out of view. It respects reduced-motion settings and opens full reviews in a native dialog.
  • A homepage plus six service landing pages, each with canonical URLs, Open Graph tags and structured data for search engines (business, service, FAQ and breadcrumbs).
  • A portfolio of real work photos in six categories, with filters, a lightbox and a before-and-after slider you can drag or move with the arrow keys.
  • A Netlify Forms contact form with spam protection and inline success and error messages.

The problem

A local auto detailing business needed a professional website. It had to:

  • present the services: window film, paint polishing, ceramic protection, interior detailing, engine cleaning and headlight restoration
  • show real results
  • make it easy for customers to get in touch

The site runs within Netlify’s free tier.

What was built

A Romanian-language static website with:

  • a homepage
  • six service landing pages
  • privacy, terms and 404 pages

The homepage covers the services, a before-and-after slider, the business’s story, the product brands it works with, a filterable portfolio, live Google reviews and a contact form.

The site started from a free template. The live pages now use their own stylesheet and script in place of the template’s framework.

Architecture

  • Static front end. Hand-written HTML pages share one custom stylesheet and one script.
  • Contact form. Handled by Netlify Forms and submitted in the background, so the page doesn’t reload.
  • Reviews function. A Netlify Function written in TypeScript calls a Google reviews API through SerpApi. It returns the reviews in a consistent shape and tells Netlify’s CDN how long to cache them.
  • Reviews widget. It renders the reviews in the site’s own style. If the function is unavailable, it loads a third-party widget instead.

Engineering details

  • API key. The key is never committed. It is read from Netlify’s environment variables.
  • Caching. Each response has its own cache lifetime: 24 hours on success, 5 minutes after an upstream error, and 1 minute when the function is not configured.
  • Accessibility. The before-and-after slider works with the keyboard and Escape closes the mobile menu. Animations respect reduced-motion settings, and the review count uses correct Romanian plurals.
  • Performance. Images load lazily, and the hero image is preloaded in two sizes.

Contact

Have a project in mind?

Send a short email with what you want to build, your timeline and any useful links.

flaviu.vanca@sketysoft.com