Case study
Soft Velvet Petals
The website for Soft.Velvetpetals, a handmade pipe-cleaner bouquet shop in Kuala Lumpur. Customers browse the catalogue, build a bouquet with a live price, and send the order straight to the shop's WhatsApp.
- Role
- Freelance, solo
- Stack
- Next.js 16, TypeScript, Tailwind CSS, Motion
- Key decision
- Bouquet builder with a live total that writes the WhatsApp order message for the customer

Problem
The shop took every order through Instagram and WhatsApp chats, so customers had to ask about sizes, prices and add-ons before they could order.
Approach
Built a one-page site from the owner's catalogue: five sizes from RM15 to RM160, add-ons, pickup areas and the order steps. A bouquet builder totals the price as the customer picks, then opens WhatsApp with the order already written, so the shop keeps the channel it already uses. The site is a static export served from Cloudflare Workers, with no server to run or pay for.
Outcome
Live on the shop's own domain and handed over to the owner.
Highlights
- Bouquet builder with a live total that writes the WhatsApp order message for the customer
- Static export on Cloudflare Workers: no server, no hosting bill
- Catalogue photos served as WebP, with build assets cached for a year
- SEO basics: sitemap, share image and Florist structured data
- Accessibility pass: focus ring, skip link and balanced headings
Want something like this built?
Tell me what you need; you get a fixed quote after a short call.