A web application for buying cars at Japanese auctions, built from scratch.

A service for a buying agent: clients from Russia and the CIS browse lots, get a full landed price and submit a bid request, then a manager takes the deal all the way to shipping the car in a container. Lots live with the data provider, whose rules forbid keeping a copy of the database. So every page is built from live API requests.

9 screens · demo data

Screens of the web application:

auction.example/cars?make=toyota
Catalog · Toyota1,842 lots · auctions 29.09 — 04.10
Prius 312Aqua 208Corolla 176Grade 4+ 1,120Under 80,000 km 9642018—2022 1,405
Toyota Prius 2019 · ZVW51
USS Tokyo · 30.09 · lot 41207
4.5 / B
68,000 km
¥ 1,240,000start
Toyota Prius 2020 · ZVW51
TAA Kinki · 01.10 · lot 8814
4 / B
54,000 km
¥ 1,390,000start
Toyota Prius 2018 · ZVW50
JU Aichi · 30.09 · lot 3120
3.5 / C
97,000 km
¥ 780,000start
Toyota Prius 2021 · ZVW55
USS Nagoya · 02.10 · lot 50318
4.5 / A
31,000 km
¥ 1,720,000start
auction.example/cars/41207
Toyota Prius 2019 · ZVW51USS Tokyo · lot 41207 · auction 30.09, 10:40
Landed price in Vladivostok
1,461,700 ₽
Bid ¥ 1,240,000736,500 ₽
Auction fees and delivery to port58,000 ₽
Freight to Vladivostok62,000 ₽
Customs duty540,000 ₽
Recycling fee5,200 ₽
Agent fee60,000 ₽
Grade
4.5 / B
Sheet decoded
Mileage
68,000
km per sheet
Engine
1,800
cc · hybrid
Similar
412
sales in 3 months
auction.example/stats
Auction results · Toyota Prius 20193 months · 412 sales
Average sale price
¥ 1,180,000

Min ¥ 690,000 · max ¥ 1,720,000. Breakdown by auction, grade and mileage.

Weekly average
weekly chart
USS Nagoya · 24.09grade 4 · 71,000 km · grey¥ 1,105,000● sold
TAA Kinki · 23.09grade 4.5 · 52,000 km · white¥ 1,290,000● sold
JU Aichi · 22.09grade 3.5 · 98,000 km · black¥ 760,000● unsold
auction.example/admin/bids
Bid requestsin progress · 48 · 9 at auction today
New
12
waiting for a manager
Agreed
7
bid confirmed
At auction
9
today
Bought
21
in September
ClientLotMax bidAuctionStatus
Alexey K.Prius 2019 · USS Tokyo¥ 1,300,00030.09at auction
Marina S.Honda Fit 2020 · TAA Kinki¥ 1,000,00001.10new
Oleg V.Nissan Note 2021 · JU Aichi¥ 1,150,00026.09bought
Igor L.Mazda CX-5 2019 · USS Osaka¥ 1,800,00025.09not won
auction.example/admin/clients/1042
Client · Alexey K.access approved 12.09 · manager Irina
Balance
184,500 ₽

Top-ups, car purchases and adjustments. Every entry shows its author, and a voided one shows who voided it.

Ledger
+300,000 ₽Top-upadded by Irina · 14.09
−115,500 ₽Nissan Note 2021, purchaseadded by Irina · 26.09
−2,000 ₽Adjustmentvoided by Dmitry · 27.09
Requests
14
all time
Purchases
3
1 in a container
Favorites
27
lists A/B/C/D
Searches
4
emails on new lots
auction.example/admin/purchases
Purchased cars sheetworks like Google Sheets
Paste from ExcelUndo · Ctrl+Z+ ColumnDownload .xlsx
#
Car
Chassis
Price, ¥
Freight
Status
Container
1
Nissan Note 2021
E13-041207
1,115,000
62,000 ₽
in container
No. 12
2
Honda Fit 2020
GR3-118802
1,010,000
62,000 ₽
in yard
—
3
Toyota Aqua 2019
NHP10-7731
845,000
58,000 ₽
in container
No. 12
4
Mazda Demio 2020
DJLFS-60214
690,000
58,000 ₽
paid
—
5
Suzuki Jimny 2019
JB64W-1128
1,480,000
65,000 ₽
to port
—
Cell history: Irina, 24.09 14:12 — was ¥ 980,000, now ¥ 1,010,000.
auction.example/admin/container/12
Dismantling sheet · container No. 12catalog of 240 items · 11 categories
Engine assemblyToyota Aqua 2019 · 1NZ-FXE1 pc¥ 42,000
CVT gearboxToyota Aqua 2019 · P4101 pc¥ 18,000
HeadlightToyota Aqua 2019 · LED, left and right2 pcs¥ 9,000
Front bumperToyota Aqua 2019 · body color1 pc¥ 6,500
Rear doorToyota Aqua 2019 · with glass1 pc¥ 7,000
Items
38
in the sheet
Categories
7
of 11
Total
¥ 214,000
catalog prices
Export
3
PDF · Word · Excel
auction.example/chat
Chat with a managerPWA on the phone · Web Push · attachments
Irina, manager● online
Bid request for Toyota Prius 2019 received
IrinaWe checked the sheet: no body repairs, interior B. Bid up to ¥ 1,300,000?
Yes, go ahead. Please send interior photos
interior_41207.jpg1.2 MB
Notification on the phone screen
Auctions · nowPWA
Irina, manager

Lot 41207 bought for ¥ 1,255,000. The car is heading to the port.

  • Arrives even when the tab is closed.
  • The service installs on the home screen like an app, no app stores.
  • An unread message triggers an email.
  • Photos, spreadsheets and documents right in the conversation.
auction.example · support chat
Website support ↔ Telegram groupa reply in Telegram lands in the website chat
Website chat window
Support● online
Hi! How long does shipping to Vladivostok take after purchase?
AdministratorUsually 7–10 days after the auction, depending on the next vessel.
Staff group in Telegram
Website supportbot · 3 staff
Bot · guest #8841Hi! How long does shipping to Vladivostok take after purchase?
Guest #8841: Hi! How long does shipping…Usually 7–10 days after the auction, depending on the next vessel.✓ delivered to the website
01 / 09
37,000lots

Current Japanese auction lots in the catalog, with no local copy of the database.

906tests

They check the catalog, requests, calculations and access so updates break nothing.

2weeks

From the start of development to launch on the client’s domain.

Part 01 · API integration

Auction API integration without a local database copy.

Lots come from an auction data provider whose rules forbid keeping a copy of the data. The catalog, lot pages and statistics are built from API requests the moment a page opens, and speed comes from caching and background refresh.

  • Live data: lot prices and statuses are always current.
  • Smart caching: auctions refresh often, results archive once a day.
  • Fast pages: all API requests go out at once, not one by one.
  • Protection from provider outages: automatic retries and a slow response log.
Part 02 · Catalog and lot

Catalog and lot page: from a filter to a full landed price.

Cars, motorcycles and machinery in one catalog. Filters by make, model, year, grade and mileage show how many lots match. A lot page has photos, the auction sheet with decoded grades, neighbouring lots and similar sales from the archive.

  • Landed price calculator: auction fees, freight, customs duty, recycling fee. The administrator changes rates on their own.
  • A 3-month results archive: average, minimum and maximum price, with a chart.
  • Three languages and five currencies: Russian, English, Japanese.
  • A fast catalog even with many filters applied.
Part 03 · CRM

A built-in CRM: requests, clients, money, purchases.

We did not plug in an external CRM. Everything a manager works with is built into the service and tied to lots. A bid request moves through clear statuses, each request keeps a history, and the client gets an email at every step. See how we design systems like this on the Custom CRM development page.

  • Bid requests desk: filters, one-click status changes, inline editing.
  • Client card and balance: you can see who added an entry and who voided it.
  • The purchased cars sheet works like a spreadsheet: paste from Excel, undo, custom columns, Excel export.
  • Container and dismantling sheet: a parts catalog with export to PDF, Word and Excel.
Part 04 · Account and messaging

Client account, chat and support through Telegram.

Clients sort favorites into lists, save searches and get emails about new matching lots. They talk to their manager in a chat with attachments. The service installs on a phone as a PWA, so notifications arrive even when the tab is closed.

  • Push notifications on the phone without installing an app from a store.
  • The website support chat is linked to a Telegram group: staff reply in Telegram and the answer appears in the visitor’s window. We build links like this as part of our Telegram bot service.
  • Auction sheet translation on request and a “My purchases” section with statuses.
  • A yard with fixed prices: a car can be added from a phone right on site.
Part 05 · Built from scratch

Built from scratch: a custom core, no framework.

The service is written from scratch around the agent’s needs, without an off-the-shelf CMS or heavy frameworks. There is nothing extra in it, it runs fast and does not depend on someone else’s updates. After launch it stays with us for ongoing support. More on our approach on the Web application development page.

  • Pages open instantly: the server builds them, not the browser.
  • Emails to clients at every step of a request.
  • Exchange rates update automatically, with a fallback source.
  • Automated tests for key scenarios.
Part 06 · Access

A private service with approval-based access.

Anyone can sign up, but using the service requires administrator approval. Roles are client, manager, administrator and super administrator, each with its own permissions.

  • Two-factor sign-in through an authenticator app.
  • Sign in as a client, so support sees exactly what the client sees.
  • Account blocking and an activity log for staff.
  • New sections can be switched on or hidden with one setting.
Timeline

2 weeks from start to launch.

Days 1—2Specification and core

Roles, request statuses, data model, provider rules, the service core.

Days 3—6Catalog and lots

Catalog and lot page on the live API, calculator, results archive.

Days 7—11CRM and account

Requests, clients, balance, purchases sheet, yard, client account.

Days 12—14Messaging and launch

Chat with push notifications, support through Telegram, the client’s domain.

Need a web app of your own?

Your project:

Tell us your task — within 24 hours we'll come back with an estimate and timeline.

And get a personalized proposal with pricing and timeline.