Client project3 min read
Zubr, Wholesale Meat Products Marketplace

Tech stack
Links
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
- 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.
- 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.
- 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.
- 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.
- 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)
- 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.
- Adds or updates a product. A structured form enforces consistent data, category, cut type, origin, certificates. No free-form HTML; every field is typed.
- 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
| Before | After |
|---|---|
| ✗ Buyers discovered suppliers through cold calls and industry directories, days of research per batch | ✓ Structured 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 rep | ✓ Every product card shows cut type, format, temperature regime, and certificates, with no call needed to qualify |
| ✗ No proof of quality, buyers took supplier claims on faith | ✓ Supply chain story, antibiotic-free guarantee, and nutritionist supervision published on-site |
| ✗ Inquiry forms with 48-hour response windows | ✓ WhatsApp-first flow with a guaranteed 5-minute response during business hours |
| ✗ Static HTML site with slow page refreshes and no CMS, updates required a developer | ✓ Headless Umbraco CMS + GraphQL + React SSR: content updated in seconds, pages load near-instantly |
| ✗ No index-layer caching, every request hit the origin server | ✓ All GraphQL queries cached at the index engine layer; repeat visits served from memory |
Metrics
Architecture Highlights
- Headless CMS (Umbraco + .NET Core). Content is modelled as typed documents, with 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, with 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, with no full-page reloads, zero visible latency between routes.
Related
Projects

Aurora.Luxe, Technical Expertise and Specifications for a Silk Clothing Store
Before: another team developed the store, and when the 1C exchange failed nobody could see why or check the work precisely. After: technical expertise and acceptance on the owner's side, and specifications such as the logging system that make new work checkable point by point.

CasaLista - Home Services Marketplace in Buenos Aires
Before: a services catalogue that had to be retyped once per language, so moderators either duplicated work or shipped half-translated listings. After: one upload that lands the item in every locale at once, plus a standalone landing page for a single service in three languages.

Gazbet, Aerated Concrete Company Store
Before: no website at all, every enquiry started with a phone call and a manual quote. After: a product catalogue with a calculator that turns the buyer’s own parameters into a concrete offer, so more visits end in a sale.
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