dobrovolskiy.com
RU
← all workmobile · 2026

RYTA: freight & machinery marketplace

Offline-first, over-the-air-updated freight/transport load board for Android, web and the MAX messenger

RYTA 3.0 is a multi-platform marketplace where carriers and shippers publish cargo, trucks and machinery as pins on a self-hosted map, chat, and confirm identity by phone.

RYTA: freight & machinery marketplace

RYTA 3.0 is a multi-platform marketplace where carriers and shippers publish cargo, trucks and machinery as pins on a self-hosted map, chat, and confirm identity by phone.

The Android app is a thin Kotlin WebView shell that seeds an offline web bundle and swaps in SHA-256-verified bundle updates from a FastAPI backend without Play Store releases; the same bundle runs as a PWA (web.ryta.online) and the whole UI is mirrored as a bot + mini-app inside the MAX messenger.

Successor to a legacy .NET 'RYTA 2.0' system, with user/listing migration.

What it does

  • OTA update engine: APK seeds bundle from assets, then downloads/verifies/atomically swaps newer web bundles per channel (no store re-release); 300+ bundles published
  • Map of cargo / transport / machinery pins with custom SVG type icons, listing sheets with price/specs/rating, straight-line route preview (OSRM routing planned)
  • Topic chat rooms + direct messages, FCM push (data messages built natively) scoped to DMs to avoid fan-out
  • Passwordless phone identity: user calls an 8-800 number, Rostelecom virtual PBX webhook (HMAC-signed) confirms the pending request; one person = many devices
  • Paid services via T-Bank acquiring (Init + signed notification webhook), admin-managed price catalogue, subscriptions keyed by verified phone
  • MAX messenger bot that mirrors the full app UI (menus, search, listings, chats, profile) plus a MAX mini-app; live in production since 2026-08-27
  • SvelteKit admin panel (users, listings, billing, push, errors, themes, taxonomies, custom icon picker with Android-vector-XML to SVG conversion)
  • Client-side diagnostics journal (diag.js) with error export for the admin; release/publish scripts with env-drift detection; redroid containerized Android test device; Play Store asset generator (screenshots, captions, feature graphic)

Home-grown OTA update pipeline (hash-verified atomic bundle swap with rollback, channels, min-native gating) instead of Capgo; one web bundle serves Android WebView, PWA and a MAX mini-app; phone verification by inbound call through a telecom PBX webhook; real payments, real users migrated from a legacy .NET backend; 'core template' model (UA) where app code never edits core files and core improvements are pulled in via a manifest-driven script; production deployed on a self-managed Docker/Caddy host with private registry.

Gallery

RYTA: freight & machinery marketplaceRYTA: freight & machinery marketplaceRYTA: freight & machinery marketplace

Want something like this?

I build it live on a Zoom call, you watch the screen, the timer stops when you say stop. First 15 minutes are free.

$50 / hourBook an hour

More projects

Bro LocatorCompass-style live locator for cycling crews, with contacts exchanged over sound.Ultimate App TemplateAndroid WebView shell with self-updating web bundles, rollback and behaviour analytics.Sober: day counterMinimal sober-days counter with a friends circle that shares streaks.