work details

Aurora Global — B2B Bearing Catalog and Quote Website

A multilingual B2B website with a technical bearing catalog and a request-for-quote flow for a UK-based automotive and industrial spare parts supplier.

Client

Aurora Global Ltd

Start

07 Jul 2026

Completed

Aurora Global homepage: precision bearing supply for European industry
Description

A multilingual B2B website with a technical bearing catalog and a request-for-quote flow for a UK-based automotive and industrial spare parts supplier.

Case study

Challenge

Aurora Global's old website was a corporate brochure with no product list or quote workflow, and its quote button opened WhatsApp. The company uploaded its stock to BearingNet every day, yet that stock was invisible on its own site. Buyers, meanwhile, arrived with part numbers and in several languages.

Approach

We built a four-language B2B catalogue and quote site on Next.js, Fastify and MySQL, with all content managed from the admin panel. BearingNet's own Excel format can be imported directly in the panel: each file is previewed without writing first, and the upload key is never stored. Product pages gained specification tables, trust information, structured data and product-specific sharing images.

Outcome

The site is live in English, German, Russian and Arabic with 5,715 active product records, 11 product groups and 4 brands. Every product leads to a quote request, and requests are tracked by status in the panel. The daily stock update is done by dropping the file the client already prepares into the panel.

Tools

Next.js 16, React 19, TypeScript, Tailwind CSS 4, Fastify, Bun, Drizzle ORM, MySQL, Nginx, PM2

Key Features
  • 5,715 active products, 11 groups, 4 brands (SKF, Timken, NTN, SNR)

  • Advanced search by part number, brand and category (⌘K)

  • Multi-product RFQ with unique request numbers

  • Quote status workflow, assignee, notes and event history

  • Daily BearingNet Excel stock import with dry-run preview

  • EN/DE/RU/AR with localised URLs and right-to-left Arabic

  • Per-language product sitemaps, hreflang and Product schema

  • Server-generated social sharing image for every product

  • llms.txt, IndexNow and FAQPage structured data

Technologies Used
  • Next.js 16

  • React 19

  • TypeScript

  • Tailwind CSS 4

  • Fastify

  • Bun

  • Drizzle ORM

  • MySQL

  • Nginx

  • PM2

Design Highlights
  • Sharp-edged industrial interface on the brand palette; light and dark themes

  • Catalogue counters calculated from live data, never marketing estimates

  • Product pages show reviewing team, update date and manufacturer source

  • Right-to-left layout for Arabic and native slugs in every language

  • Filterable search dialog opened by keyboard shortcut

Details

Aurora Global is a UK-based B2B supplier of automotive and industrial spare parts with a clear focus on bearings. Its buyers are OEM technical procurement teams, MRO and maintenance departments, purchasing managers and industrial distributors — not only in the UK but across Europe, the Middle East, Asia and Africa. This project turned the company's stock into a technical catalogue searchable by part number, with every product leading to a quote request.

Context and requirements

The previous website was a corporate brochure: no product list, no quote workflow, and the "Request a quote" button simply opened WhatsApp. Bearing buyers, however, arrive with a part number and one question: do you have this reference, how soon, and at what price? Aurora Global uploads its stock to the BearingNet network every day, and buyers were finding parts there and asking for quotes. The brief was clear: the same stock had to appear on the company's own site, every product page had to convert into a quote request, and the site needed to be discoverable in several languages by search engines and AI search.

Solution and scope

Technical bearing catalogue

The live catalogue holds 5,715 active product records in 11 product groups across 4 brands (SKF, Timken, NTN, SNR). The groups cover deep groove, angular contact and self-aligning ball bearings; cylindrical, tapered, spherical and needle roller bearings; thrust bearings; housed bearing units; automotive wheel bearings; and bearing and industrial components. The listing offers a group filter, an "in stock only" filter and pagination. The counters at the top are calculated from the live catalogue rather than typed in as a marketing figure.

Advanced product search

A search dialog available site-wide (⌘K) queries the live catalogue by part number, brand or bearing category, with brand and category filters, a list of matching products and a "view all results" link. All search copy is served from the database in four languages.

Product detail pages

Each product page includes a description, "where it is used" and "technical advantages" sections, a specification table with bore, outside diameter, width and dynamic load rating, related products and a direct quote button. To build trust, it shows who reviewed the content, when the record was last updated and the manufacturer source, and states plainly that technical compatibility must be confirmed against manufacturer documentation. Dimensions and ratings are never guessed.

Request for quote (RFQ)

The quote page explains a four-step process: select products, share requirements, technical review, receive a response. Buyers add one or more products with quantities, enter company and contact details, country (ISO code), city and a message; privacy consent is mandatory. Each request receives a unique reference number, the source page and UTM parameters are recorded, the IP address is stored only as a hash, and the endpoint is rate-limited per minute.

Corporate pages

Home, about, contact, FAQ, privacy, cookie and terms pages; a BearingNet membership badge appears in the footer and on the about page.

Admin panel

Every piece of visible copy is managed from the admin panel and the database. Key screens:

  • Quote requests: status workflow (new, in review, contacted, qualified, closed, spam), assignee, internal notes and event history; each new request triggers a panel notification.
  • BearingNet stock import: the Excel file the client already sends to BearingNet each day is dropped into the panel; a dry-run report (rows to add, update or reject) comes first, and only after confirmation are stock quantities updated and new parts created as products.
  • Products and product groups: multilingual names, descriptions, images, variants and specifications.
  • Content: home layout, slider, menus, FAQs, custom pages, offices, email templates, media library and site settings.
  • Marketing and visibility: GA4, Google Ads, Search Console and social channel connection screens, plus management of AI content prompts.
  • System: users and roles, audit log, cache and notifications.

Technical architecture

The project is a Bun monorepo with three applications: the public site on Next.js 16 and React 19, a Next.js admin panel and a REST API on Fastify. Data lives in MySQL, with schema and content versioned as numbered SQL seed files. The catalogue model is split into products, product translations, inventory, variants, images, specifications and category links; the quote side uses separate tables for requests, request items and request events.

Multilingual: the site runs in four languages — English (default), German, Russian and Arabic. URLs are localised per language (e.g. /en/request-a-quote, /de/angebot-anfordern), and product addresses carry their own slug in each language. Arabic pages are rendered right-to-left.

SEO and GEO: a sitemap index with separate product sitemaps per language, hreflang and canonical tags, Organization, Product and BreadcrumbList structured data, FAQPage markup, an llms.txt file for AI search engines and IndexNow pings. A unique social sharing image is generated server-side for every product and static page.

Security and quality: the upload key in the first row of the BearingNet file is never read, logged or stored, and the import is restricted to the admin role. Google account tokens are stored encrypted. The codebase includes catalogue API regression tests, unit tests for the import parser and Playwright end-to-end tests. The deploy script builds each release in its own directory, verifies HTTP routes and rolls back to the previous release if activation fails.

Integrations

  • BearingNet: import of the stock file in the network's automatic upload format.
  • Google Workspace: OAuth connection for Gmail and Calendar.
  • Meta and social channels: OAuth connection for Facebook and Instagram; the LinkedIn, Instagram and Facebook profiles are declared as sameAs in the Organization schema, with brand language aligned to the English social media content managed by the same team.
  • Tanitio: a dedicated API endpoint for content connection.

Outcome

Aurora Global is now live on its own domain in four languages with a bearing catalogue searchable by part number. The SKF and Timken stock listed on BearingNet exists on the site as product pages, each page leads to a quote request, and requests are tracked by status in the panel. The daily stock update needs no extra system: the client simply uploads the file it already prepares. The project continues under ongoing maintenance alongside catalogue content, SEO and social media work.