← Back to portfolio

// case_study / marketplace

Kram.com.ua

A Ukrainian classifieds and local discovery platform where people can publish listings, find offers in their city, message sellers and read practical editorial content.

ProductClassifieds marketplace + content platform
WebRuby on Rails 8.1, Hotwire, Tailwind CSS
MobileExpo / React Native for Android and iOS

01 / the product

One platform for local commerce.

Kram brings together listings, categories, city pages, search, filters, favorites, viewing history, conversations and editorial content. The administration area manages listings, users, articles and feedback.

The product is designed around a server-rendered Rails experience with a JSON API for the companion mobile client. This keeps the web platform fast and maintainable while allowing the mobile app to share the same core product data.

02 / technology

A focused, modern Rails stack.

  • Ruby 4.0.2 and Rails 8.1 with Puma and Propshaft.
  • PostgreSQL 17 as the primary database.
  • Turbo, Stimulus, Tailwind CSS 4 and esbuild for the web interface.
  • Solid Queue, Solid Cache and Solid Cable for background jobs, caching and real-time features.
  • Active Storage with libvips for listing and article images.
  • Expo and React Native for the mobile application, backed by the Rails JSON API.
  • Docker, Docker Compose and a production-ready deployment setup.

03 / interface

Selected screens.

Kram.com.ua homepage
Homepage — categories, city search and editorial content · open full size ↗
Kram.com.ua listings page
Listings — search and marketplace browsing · open full size ↗
Kram.com.ua about page
Product pages — consistent public-facing experience · open full size ↗

04 / result

Built to keep evolving.

Kram has a foundation for adding new categories, cities, mobile flows and content features without splitting the product into disconnected systems. The architecture supports ongoing Rails development from an early product stage through production support.