Finding the right spare part for a KAMAZ, URAL, MAZ, MTZ or TATRA truck usually means digging through scanned paper catalogues, guessing transliterated part names, and cross-referencing drawing numbers by hand. I got tired of that workflow, so I built a free electronic parts catalogue (EPC) lookup tool: kamaz-parts.com.
What it does
The site works like the OEM electronic catalogues dealers use:
Brand → Model → Assembly group → Position table → Part number
- 87,000+ part numbers with original Cyrillic identifiers preserved
- ~30,000 assembly diagrams (text-based position tables, so they load fast and stay searchable)
- 160+ vehicle models across KAMAZ, URAL, MAZ, MTZ and TATRA
- Every part number resolves to a canonical page, e.g.
/parts/53205-2506060-krestovina-mezhosevogo-differentsiala/
Why part numbers come first
A design decision I'm happy with: URLs are number-first. Heavy-truck buyers search by part number, not by part name — the number is the strongest retrieval signal. So the slug leads with the standard part number, and the transliterated Russian name follows for keyword value.
Original identifiers keep their Cyrillic characters in the database (Э4308-…, Ural-375С), because that's what appears on the physical part and in OEM documentation. The slug is a one-way derived URL cover — the original text is never overwritten.
Search that understands real-world input
People paste part numbers in every conceivable format: with dashes, without, run together, mixed Cyrillic/Latin look-alike letters. The resolver normalizes all of these and also handles:
- Kit and substitute numbers (secondary numbers live in an aliases table)
- Legacy URLs from older catalogues (63,000+ redirect rows)
- Fuzzy name search via an FTS5 index in both English and Russian
For developers and AI agents
A few things that might interest this community:
-
/llms.txtand/llms-full.txt— the catalogue is documented for LLM agents at build time - Read-only API at
/api/agent/*with tools likesearch_parts,resolve_part_number,get_part,list_models - Part number decoder at
/decoder/— paste a KAMAZ part number and get its group/system breakdown - Sitemaps are pre-rendered static files; every page is a static asset served from the edge (Astro + Cloudflare Workers + D1)
The stack (briefly)
- Astro with static prerendering + a thin Cloudflare Worker for dynamic bits
- Cloudflare D1 (SQLite) for the catalogue — 500k+ position rows
- Cloudflare R2 behind a custom assets domain for images
- Build-time index/noindex allowlist so only pages with real content get indexed
If you work with Russian/Soviet-era heavy machinery, give it a try: kamaz-parts.com. Feedback welcome — especially if you hit a part number that doesn't resolve!

