All projects
SEOFrontend

SEO showcase website with online quotes and calculators

A showcase website built for local SEO and for turning visits into quote requests.

Context

The showcase website is where most customers first arrive: it has to rank well locally and make requesting a quote easy. The original version, built with CRA and MUI, rendered client-side and was poorly suited to search engines.

My role

From design to operations, fully autonomously.

Solution

The site was migrated from CRA and MUI to Next.js, then to Tailwind. Local SEO relies on the Metadata API, structured data and a sitemap.

The online quote is tied to real stock and submitted through a Server Action, which keeps the token on the server. The catalogue is fed by the business API, with caching and revalidation triggered from the back office. Two calculators, for maintenance cost and return on investment, help visitors picture the benefits.

Key features

  • Strong local SEO

    Metadata API, sitemap and LocalBusiness, Product and FAQPage structured data.

  • Online quotes tied to stock

    Visitors build their quote (robot, accessories, installation) from real stock.

  • Always up-to-date catalogue

    A change in the back office triggers site revalidation, with no redeploy.

  • Two calculators

    Maintenance cost and return on investment, to help visitors make up their minds.

Engineering challenges

  1. 1

    Controlled stack migration

    Moved from CRA and MUI to Next.js, then to Tailwind, for SEO-friendly server rendering.

  2. 2

    Token kept on the server

    Quotes go through a Server Action, so the API access token is never exposed to the browser.

  3. 3

    Caching, revalidation and fallback

    A cached catalogue, revalidated on demand by the back office, with a fallback catalogue.

  4. 4

    Performance and headers

    AVIF and WebP images, critical CSS, security and cache headers.

Tech stack

Frontend
Next.js 15ReactTypeScriptTailwindLeafletsharp
Integrations
GA4

A project of this scale?

Let's talk about your context: I'll tell you frankly what is feasible, and how long it takes.