36 Coffee Roasters
A fast, bilingual online store for a Ukrainian specialty coffee roastery — from choosing a roast and grind to paying by card and picking up at the nearest Nova Poshta branch.

The brief
36 Coffee Roasters roasts specialty coffee and sells it to home brewers across Ukraine — filter and espresso roasts, drip bags, cocoa and brewing equipment. Every coffee comes in several pack sizes and grinds, which makes a simple product list a poor fit.
The task: an online store that handles the whole order on its own. Ukrainian first with an English version, a catalog filtered by origin, roast level, processing and pack size, pack-size and grind selection right on the product cards, checkout without forced registration, Nova Poshta branch, parcel-locker and courier delivery, and online card payment — while the roastery manages products, prices and stock from its own admin panel.
What we built
An online store for a Ukrainian specialty coffee roastery, selling filter and espresso coffee, drip bags and brewing gear.
Built as a headless setup — a server-rendered Next.js storefront on a Laravel REST API — with Ukrainian and English versions, catalog filters, pack-size and grind variants, guest checkout, Nova Poshta delivery, LiqPay card payments and customer accounts with Google sign-in.
Project facts
- Client
- 36 Coffee Roasters, Ukraine
- Timeline
- 10 weeks
- Our role
- Design, Development & Infrastructure
- Year
- 2026
- Technologies
Gallery
Mobile
Catalog
Product
Checkout
Bestsellers
Categories
Approach
- 01
Shop logic first
We mapped how the roastery actually sells: coffee with pack-size and grind variants, equipment as simple products, categories for filter, espresso, drip bags and cocoa. That model drives the catalog filters, the cart and the API contract between the two teams.
- 02
Headless, server-rendered storefront
A Laravel REST API owns products, stock, orders and payments; a Next.js storefront renders catalog and product pages on the server for speed and SEO — structured data, hreflang for Ukrainian and English, sitemap — with small client islands for the cart, filters and checkout.
- 03
Checkout that fits Ukraine
Guest or account checkout with Google sign-in, Nova Poshta city and branch lookup for branch, parcel-locker or courier delivery, and LiqPay payment by card, Apple Pay or Google Pay, with a result page that confirms the payment status.
- 04
Shipped through a pipeline
Tests first on the frontend, Docker images built in GitHub Actions, a staging environment for the roastery to review, and production releases gated behind approval — so every change reaches the store the same way.
Team
Have a similar project?
Tell us about it


