Skip to content
  • Medusa JS
  • 2026
  • 8–10 weeks

A made-to-order vase studio in Osijek, shipping across the EU from a single Next.js storefront.

Case study · 2026

Eleven sculptural models, print-on-demand, one calm catalog.

Vasevo designs and prints biodegradable PLA vases in Osijek and ships them across Europe — the storefront had to feel as considered as the objects.

The artifact

01

Vasevo storefront showing sculptural 3D-printed vases on a warm bone surface with product grid and pricing. — Product still-life · SAFE

Brand pulse

02

Palette

06

Dominant#10B981
  • #FFFFFF
  • #C78A56
  • #281507
  • #E8CAA7
  • #0C0C08

Typeface

2

Heading

Fraunces

Aa Bb Cc

vasevo.com

Body

DM Sans

Vasevo ships in six weeks — checkout, CMS, and three locales from one codebase.

abcdefghijklmnopqrstuvwxyz · 0123456789

Voice

The brand sits on a bone surface (#F2EDE0) with near-black type (#0F0E0B) and a warm caramel accent (#C78A56) — quiet, tactile, and product-led.

Receipts

What we shipped, in receipts.

Real evidence of what we shipped — not promises.

06 receipts

01

Catalog

11 models

Eleven sculptural vases live in the grid, each with quick view and add-to-cart.

02

Localization

10+ locales

Croatian and English variants across BE, BG, CZ, DE, DK, EE, ES via hreflang.

03

Shipping

EU-wide, €35+

Flat EU shipping from €35, free over €80 — surfaced in the ticker and footer.

04

Bundles

Sets of 2 or 3

Build-your-set flow with 5% off pairs and 10% off trios.

05

SEO

OG + schema

Open Graph, Twitter Card, and WebSite/Organization structured data on every page.

06

Hosting

Cloudflare edge

Served from Cloudflare with WebP imagery and preload hints for fast first paint.

Context

00

Vasevo is a Croatian decor brand designing and printing sculptural vases in-house in Osijek. Every piece is made to order in biodegradable PLA — no warehouse stock, no overproduction. The founders needed a storefront that could carry the calm of the product into the buying experience, handle EU shipping rules, and route every order back to the print queue in the studio.

Approach

01

We built the storefront on Next.js against a Medusa commerce engine, then wired the catalog, set builder, and order lookup against it. Eleven products were modeled with variant-level material and color (Matte Bone White, Matte Dark Green, Matte Caramel, Metal Oxide Green, Matte Desert Tan). The build-your-set page composes pairs and trios with automatic 5% / 10% discounts. Hreflang and locale switching cover Croatian plus English variants for ten EU markets, with shipping thresholds (€35 floor, €80 free) surfaced in a persistent header ticker.

Outcome

02

Vasevo now runs a single Next.js storefront on a Medusa backend, with print-on-demand orders flowing straight to the studio in Osijek. The catalog, set builder, and order lookup share one product model; shipping thresholds and locale-aware pricing are configured once and read everywhere.

Key surfaces

02

  • Product grid

    01

    Product grid lists all eleven vases with material, height, and price visible per card.

    Vasevo storefront showing sculptural 3D-printed vases on a warm bone surface with product grid and pricing. — Product grid
  • Secondary hero

    02

    Secondary hero anchors the studio story alongside price, model count, and shipping threshold.

    Vasevo storefront showing sculptural 3D-printed vases on a warm bone surface with product grid and pricing. — Secondary hero

Across devices

03 surfaces

Vasevo storefront showing sculptural 3D-printed vases on a warm bone surface with product grid and pricing. — laptop
Desktop view00

Secondary hero pairs the product story with material claims and EU shipping detail.

Vasevo storefront showing sculptural 3D-printed vases on a warm bone surface with product grid and pricing. — tablet
Tablet view01

Mid-page viewport shows the bundle prompts for sets of two and three.

Vasevo storefront showing sculptural 3D-printed vases on a warm bone surface with product grid and pricing. — mobile
Mobile view02

Product grid reflows to a single column with quick view and add-to-cart on every card.

Stack

Architecture, layer by layer.

Every layer we shipped, end-to-end. No black boxes.

05 layers

  • Layer 01

    Storefront

    • Next.js
    • React
    • TypeScript
  • Layer 02

    Commerce engine

    • Medusa
    • Postgres
  • Layer 03

    Payments

    • Stripe
  • Layer 04

    Localization

    • next-intl
    • HR + EN across 10 EU markets
  • Layer 05

    Hosting

    • Cloudflare edge
    • WebP imagery

“Ceramics kept breaking. Plastic wasn't the answer. We needed a material that was light, durable, and natural.”

Krešimirfounder

Engagement

— fin

  • Timeline8–10 weeks
  • TeamFront Tribe
  • RoleHeadless commerce build
  • Live sitevasevo.com