АвтоЛакинск — Used Tractor & Truck Tires

A 26 KB used tractor and truck tire catalog with 100 live listings, built for farm mechanics on old phones and weak rural connections.

Role
Product designer and developer
Audience
Farm mechanics and truck drivers in Vladimir Oblast
Outcome
100 tire listings delivered in a 26 KB server-rendered page
Stack
Astro · React · nginx · Yandex Object Storage · Claude Code
АвтоЛакинск — Used Tractor & Truck Tires project interface

My dad sells second-hand tires for tractors, trucks and heavy equipment out of a yard in Lakinsk, Vladimir Oblast. For years the business ran on Avito listings and a phone number.

I turned that inventory into a 26 KB server-rendered catalog with 100 tire listings, designed to work on an old phone over a weak rural connection.

The problem with that isn’t reach. It’s that a listing can’t answer “do you have a 15.5 R38 for an MTZ-82.”

Who Actually Opens It

The customer is a farm mechanic or a truck driver, standing next to the machine rather than at a desk, on a five-year-old Android with a cracked screen, on whatever signal reaches a field in Vladimir Oblast — often EDGE, sometimes nothing.

That one fact decided the whole build. If the page doesn’t render on a bad connection, the shop doesn’t exist.

So: no client-side rendering, no framework shipped to the browser, no image carousel that needs JavaScript before you can see a tire, no cookie modal in front of the content.

What It Weighs

The page is 26 KB of HTML, server-rendered. Everything a customer needs to read — prices, sizes, stock, phone number — is in that HTML and paints without a single script running.

There is exactly one interactive component on the site: the catalog filter. It’s server-rendered too, so the full list of tires is in the markup, and it only downloads its JavaScript once it scrolls into view. Someone who lands and taps the phone number never fetches it.

Fonts are self-hosted and subset to Cyrillic and Latin separately, so a Russian visitor never downloads the Latin cut. 22 of the 24 images on the homepage are lazy-loaded. The small initial payload keeps first paint fast before the catalog’s interactive code loads.

I used a similar content-first approach for Romanalia, but here rural network conditions made page weight the defining constraint.

The single heaviest file on the page is the analytics tag, at 86 KB — larger than everything I wrote combined. That’s the honest trade I made for Yandex Metrika, and it loads last.

АвтоЛакинск used tractor tire catalog filters

The Catalog

100 positions, split into tractor, truck and heavy-equipment tires, filterable by width, profile and rim diameter. Each tire is its own page with a stable URL, its real price per unit, a stock count, and actual photographs from the yard — not stock images.

АвтоЛакинск used tractor tire product page

There are also pages that go the other direction: pick the machine — MTZ-80/82, T-40, T-25, T-16, T-150K, K-700, YuMZ-6 — and see the sizes that fit it. Most customers know their tractor better than they know tire markings.

A pressure calculator gives reference values for individual models, and there’s a page for the truck tire-fitting bay that operates next to the yard.

Ordering Is a Phone Call

There’s no cart. Stock on used tires changes daily and condition varies tire to tire, so every order is confirmed by phone before money moves. The site’s job is to get someone to the right size with a price in mind, then hand them a phone number.

URLs are in Cyrillic — /каталог, /шина/континенталь-600-70-r28 — because that’s what people search and what reads as trustworthy in a Yandex result.

Status

Live, running on nginx on a small VPS, with media on Yandex Object Storage. Listed on Yandex Maps and Avito, both linked from the homepage so reviews stay where customers already look for them.

It’s the least glamorous thing I’ve built and the one with the clearest brief: load fast, say what’s in stock, show the number.