Limgro
Case studyIn production since 2018Auto businessPlatform

BeAvto

Four products, one codebase, 75,014 trims

BeAvto is a four-module automotive platform on one codebase: a vehicle-specification catalog, a classifieds engine, a nationwide service directory and a set of buyer calculators. Live since 2018, rebuilt mobile-first in 2026, fed by an in-house parsing and content pipeline that runs unattended.

Laravel
PHP
React
PostgreSQL
Docker
AWS
The numbers
75,014
Vehicle trims in the catalog
58 + 12
Automated jobs (CLI + cron)
119,828
Photos processed by the pipeline

Challenge

Four products — catalog, classifieds, directory, calculators — on one 2018 codebase, with 75,014 trims and 22,483 businesses to keep current. Manual data entry was never an option, and the legacy build chain could not carry a mobile-first interface.

What we built

We built an in-house parsing pipeline that imports and normalises vehicle data into dictionary tables, 58 command-line jobs and 12 cron schedules that keep it running unattended, and an image pipeline that watermarks and resizes 119,828 photos. The front end moved to Vite 5 with one mobile-first component library shared by all four modules.

Result

A platform where 75,014 trims, 22,483 businesses and 45,634 reviews stay current without manual work — 70 automated jobs, one shared component library, and a bilingual interface rendered from the same normalised data.

What it does

Every screen below is the live product, captured this week.

Home — vehicle search across new and used listings.
Module 01

Search and marketplace

The entry point is a search over live listings: body type, brand, model, year, price, region and mileage resolved into one query, with saved searches that alert on change.

  • 40+ filters across body type, brand, model, year, price and region
  • Saved searches with change alerts and comparison lists
  • Seller accounts, phone-reveal tracking and listing analytics
Catalog — brands, generations and trim-level specifications.
Module 02

Specification catalog

271 brands, 4,380 models, 9,394 generations and 75,014 trims, normalised into dictionary tables so a generation page can compare its own trims row by row.

  • Engine, power, 0–100, transmission, drive, body and weight per trim
  • Tire and rim sizes, PCD, oil types and service intervals
  • Side-by-side comparison of what differs between versions
Service directory — businesses by district, with live open-now state.
Module 03

Service directory

22,483 businesses across 598 cities in seven categories — repair shops, car washes, tire shops, fuel stations, dealerships, rentals and insurance.

  • Filters by district, work type, rating and photos
  • Live 'open now' state calculated from real opening hours
  • 45,634 reviews with star ratings and 11,303 photos
Customs calculator — inputs, live result panel, explanation below.
Module 04

Buyer calculators

Five financial tools that answer the questions a buyer asks before choosing a car, each with an explanatory article and links back into the catalog.

  • Customs clearance, credit, leasing, fuel cost and transport tax
  • Live recalculation as inputs change, no page reload
  • 232-code OBD-II fault reference alongside the tools
On a phone

Rebuilt mobile-first: search, catalog and calculators are the same component library at a single-column width.

Under the hood

The stack, and the engineering decisions behind the build.

Front end
React SPA · Vite 5 · SCSS · mobile-first component library
Back end
PHP 7.4 · Laravel 7 · 58 CLI jobs · 12 cron schedules · 146 migrations
Data
PostgreSQL 13 · in-house parsing pipeline · 119,828 processed photos
Infrastructure
Docker Compose · nginx · Cloudflare · Hetzner ARM64
Rendering & i18n
Server-rendered markup inside the React app · mobile-first breakpoints
Engineering highlights
  • In-house parsing pipeline normalising vehicle data into dictionary tables — no manual data entry anywhere.
  • 58 CLI jobs and 12 cron schedules running import, normalisation, image processing and publishing unattended.
  • Image pipeline watermarking and resizing 119,828 photos without blocking the request path.
  • Vite 5 migration off the 2018 build chain, with one mobile-first component library across all four modules.

Have a Similar Project?

Let's talk about how we can build something great for your business. We love a good challenge.

Start a Conversation

Let's Build Something Great Together

Have a project in mind? Tell us about it. We'll get back to you within 24 hours with a clear plan of action.