Back to portfolio
Case study

Afterglow
Candle shop

A three-language candle shop with a bag, order form and custom-candle requests, backed by a private admin panel for orders, events and stock.

Client

Afterglow

velasbyafterglow.com

Sector

Handmade scented candles, Kuala Lumpur

Scope

Shop site, ordering & admin panel

Projects like this

From RM 5,000

Typically RM 5,000 to RM 7,000

The brief

A candle shop that takes orders, in three languages

Afterglow hand-pours custom scented candles in Kuala Lumpur. The brand needed a shop that felt as soft and giftable as the candles, in English, Bahasa Malaysia and Simplified Chinese.

Behind the storefront it needed a real back office: orders and custom-candle requests landing in one place, pop-up stall dates to publish, and stock counts for both finished candles and raw materials.

What we shipped

A storefront with a real back office.

01

Three-Language Storefront

Every page exists in English, Bahasa Malaysia and Simplified Chinese, with a language switcher and Chinese fonts swapped in automatically.

02

Bag, Order Form and Custom Requests

Shoppers fill a bag and place an order, or ask for a custom label and scent strength. Orders are saved to the shop database, then confirmed over WhatsApp, where payment is arranged: the site takes no money online.

03

Scent Quiz and Product Motion

A four-question quiz suggests a scent family, and each candle can be turned by drag or arrow keys. Animations switch off under reduced-motion settings.

04

Private Admin Panel with 2FA

The owner signs in with a password and an authenticator code. The panel is never exposed on the public site, and every change is written to an audit log.

05

Stock and Materials Tracking

Candle stock, wax and fragrance materials, recipes and production runs, with low-stock warnings. Counts only change through checked database functions.

06

Orders, Requests and Events Inbox

Orders, custom-candle requests and upcoming pop-up stalls are managed from one panel, and published events appear on the shop automatically.

In the browser

Soft on the outside, strict underneath.

velasbyafterglow.com/shop.html
Afterglow shop page with scent filters and candle cards
Shop by mood: filters by scent family, add to bag or customise from the card.
velasbyafterglow.com/product.html?id=p1
Afterglow product page for the Rose & Oud candle
Product pages let shoppers turn the candle, pick a quantity or request a custom label.
velasbyafterglow.com
Afterglow homepage on mobile
Designed mobile-first, from a 375px phone screen up.
Stack & approach

Light front, careful back.

27

Pages (9 per language)

3

Languages

8

Candles in the catalogue

109

Backend test functions

Plain HTML, CSS, JS

A no-build storefront: 27 pages, all imagery drawn in SVG and CSS, no external image hosts.

FastAPI

Separate public and admin apps, so admin routes can never be reached from the shop.

PostgreSQL

Versioned migrations, a live replica and connection pooling, with the app running under a restricted database role.

Security

Strict content security policy, hashed passwords, encrypted 2FA secrets, login lockout and an audit trail.

Testing

109 backend test functions plus a browser check that runs across all 27 pages.

Build with us

Want a shop that takes orders, not just likes?

A shop of this scope (three languages, ordering, admin panel and stock) starts from RM 5,000. Tell us what you sell and how orders reach you today, and we will quote the right build.