Mikheil Chkhvirkiaმიხეილ ჩხვირკია

06 · 2025 · Archived

Chemifasi

ჩემი ფასი

Type "laptop", get every Georgian store's price on one page. Built alone.

Chemifasi
No public screen to show, so this is an illustration of the idea, drawn for this site.
The story

Chemifasi.ge was the first Georgian price-comparison platform: type a product such as "laptop" and see the prices from Zoommer, PSP, Elit and the other large online stores on one page, with no ads and no markups. I built it alone. The frontend is React and TypeScript on the Next.js 14 App Router with Tailwind and React Query, fully SEO-optimised with OG tags, schema and a custom meta generator. The .NET 8 backend is an ASP.NET Core Web API with a rate limiter middleware, parallel fetching from every store, global error handling, and an Onion architecture with MediatR built to take on more shops.

A free solo product: scrapers, API, SEO front and deployment.

My role

Everything: Next.js 14 frontend, .NET 8 API, scrapers, SEO, deployment.

With

Nobody. Solo project.

Stack

Next.js 14 · .NET 8 · MediatR · Rate limiting · Parallel scraping

System blueprint
Next.js 14.NET 8 APIRate limiterStore AStore BStore CMerge · rank
How I built it
  1. Parallel fetch across every store per query, merged and ranked in one response.
  2. Rate limiter middleware and a global error handler in front of the API.
  3. Onion architecture with MediatR so a new store is one handler, not a rewrite.
  4. Fully SEO-optimised front: OG tags, schema, a custom meta generator.