← Back to all projects

work project

Zubr — Wholesale Meat Products Marketplace

Zubr — Wholesale Meat Products Marketplace

Services

  • Next.js frontend with React SSR
  • .NET Core API backend
  • Headless CMS on Umbraco
  • GraphQL schema design and integration
  • Index engine with request-level caching
  • Product catalog and inquiry flow

Deliverables

  • Structured wholesale catalog with product cards, categories, and specs
  • WhatsApp-first inquiry flow with guaranteed response SLA
  • Headless CMS back office — typed content editing without a developer
  • GraphQL + index engine stack — near-zero perceived load time
  • React SSR — instant first paint, seamless client-side navigation

Client Journey

Wholesale Buyer

  1. Arrives with a specific need. A HoReCa manager or retail chain buyer lands on the platform looking for a particular meat category — chicken, beef, or duck. The homepage immediately surfaces the right catalog section with no detours.
  2. Browses a structured catalog. Products are organized by type and origin (Belarusian producer, local distributors). Each card shows cut type, packaging format, and temperature regime — refrigerated or frozen. No ambiguity, no need to call for specs.
  3. Reads about quality guarantees. A dedicated section explains the supply chain: animals raised without antibiotics under nutritionist supervision, all documentation provided by the supplier. The buyer builds trust before any contact.
  4. Submits a bulk inquiry in 90 seconds. The inquiry form captures name, phone, and product interest. The manager receives a WhatsApp ping and responds within 5 minutes during business hours — a guarantee published on the site.
  5. Gets a tailored commercial offer. The team discusses volume, assortment, and delivery schedule. A contract and prepayment follow, then production, quality control, and delivery to the buyer's warehouse or point of sale.

Content Manager (Internal)

  1. Logs into Umbraco CMS. The back office is role-separated — catalog editors, page editors, and admins operate in their own sections with no risk of cross-contamination.
  2. Adds or updates a product. A structured form enforces consistent data — category, cut type, origin, certificates. No free-form HTML; every field is typed.
  3. Publishes instantly. The change propagates via GraphQL to the Next.js frontend. The index engine picks up the update and re-warms the cache; the page reflects the new data in seconds without a full rebuild.

Before & After

BeforeAfter
Buyers discovered suppliers through cold calls and industry directories — days of research per batchStructured catalog with categories, origin, and packaging — buyer finds the right product in under 2 minutes
Product specs only available after a phone call with a sales repEvery product card shows cut type, format, temperature regime, and certificates — no call needed to qualify
No proof of quality — buyers took supplier claims on faithSupply chain story, antibiotic-free guarantee, and nutritionist supervision published on-site
Inquiry forms with 48-hour response windowsWhatsApp-first flow with a guaranteed 5-minute response during business hours
Static HTML site with slow page refreshes and no CMS — updates required a developerHeadless Umbraco CMS + GraphQL + React SSR: content updated in seconds, pages load near-instantly
No index-layer caching — every request hit the origin serverAll GraphQL queries cached at the index engine layer; repeat visits served from memory

Metrics

<5 min
guaranteed WhatsApp response during business hours
7 days
delivery lead time from order to warehouse
80K+
tonnes of poultry produced annually by the partner farm
4
product categories: chicken, beef, duck, ready-made
~0 ms
perceived navigation time — SSR + cached GraphQL queries
10+
years the company has operated in the wholesale meat market

Architecture Highlights

  • Headless CMS (Umbraco + .NET Core). Content is modelled as typed documents — no free-form HTML in the back office. Editors work in a structured form; developers consume a clean API.
  • GraphQL data layer. The frontend queries only the fields it needs per page. A single unified schema covers products, categories, pages, and settings — no REST endpoint sprawl.
  • Index engine + request caching. All GraphQL queries on the frontend pass through an index service that caches responses in memory. Cache invalidation fires automatically on CMS publish events — stale content is never served.
  • React SSR via Next.js. Pages are server-rendered on first load for instant paint and correct SEO indexing. Client-side navigation is handled by React's virtual DOM — no full-page reloads, zero visible latency between routes.

Open for contract collaboration

I am available for contract-based collaboration. If you have an interesting project idea, schedule a call via Calendly.

Schedule a 30-min call