All work

SellerOS

A seller on three marketplaces sees three different dashboards and three different profit figures. SellerOS brings them into one model and shows not just charts but exactly where money is lost and what to do about it.

Client
Our own product
Type
Web service, demo data
Our part
Product, back end and interface
Year
2026
SellerOS

One model of money

Revenue, returns, advertising and fees from every marketplace are brought into one profit report: from gross sales to net profit and margin. Products from different marketplaces are linked into a single catalogue.

Diagnostics, not charts

The diagnostics layer turns metrics into cards: cause, action and effect in rubles. For example: a key product will run out in 9 days, so send 240 units to the warehouses. For Avito, a separate funnel runs from a view to a qualified lead, with the speed of the first reply.

Safe by design

The service only reads marketplace data and never changes anything in the seller’s accounts. Access keys are encrypted with AES-256-GCM, and raw responses are stored with SHA-256 deduplication. The screenshots show demo data, and the interface says so itself.

Three marketplaces, one ledger

Three hoppers take in data from Ozon, Yandex Market and Avito, a shared mill brings it to one form and records it on one ledger drum, and a diagnostic needle points at where the money is lost.

₽
The diagnostics needle: cause → action → effect in rublesHoppers for Ozon, Yandex Market and Avito, the mill, the ledger drumBelt and drum rows are motion; the count comes from one modelSellerOS puts Ozon, Yandex Market and Avito into one financial model. Marketplace data is only read: round tokens are Ozon, square ones Yandex Market, triangular ones Avito. Raw JSON is stored with SHA-256 deduplication: at the hash gate a pusher knocks a repeat into a bin, and the mill turns every record into the same ingot. The access keys sit in the box on the left: they are encrypted with AES-256-GCM. The diagnostics layer turns metrics into cards of cause → action → effect in rubles, and in the P&L gross sales become net sales and then profit. The numbers in the readout are the model's own count, not seller data.

Under the hood

  • Java 21 and Spring Boot: a modular monolith of identity, catalogue, integrations, analytics and recommendations.
  • PostgreSQL 17 with Flyway migrations; an interface on React and TypeScript.
  • JWT sign-in with refresh through a cookie; data is separated per organisation.
  • Marketplace keys are encrypted with AES-256-GCM; raw responses are stored with SHA-256 deduplication.
  • Starts with one docker compose command.

Java · Spring Boot · PostgreSQL · React

Shall we talk about your project?

Discuss your project