Runwell Start a project

Sweet Sprinkles

A bakery that owns its orders again

Sweet Sprinkles homepage: a sliced walnut loaf under the headline “Celebration bakes, handcrafted in Singapore.”

A storefront for a Singapore bakery, then the order system behind it: PayNow payments, stock that can’t oversell, and an admin the team runs themselves.

Client
Sweet Sprinkles Singapore
Industry
Bakery & celebration cakes
Location
Singapore
Year
2026
Services
E-commerce, Web apps, Backend & APIs, Systems
Status
Live
Visit live site sweetsprinkles.sg (opens in a new tab)
Shop by collection carousel with loaf cakes, cream cakes and cupcakes
Shop by collection: the bake counter, browsable on any phone.

Where it started.

Sweet Sprinkles sells celebration cakes, loaves and festive bakes across Singapore. After their old setup broke, orders came in by email and spreadsheet, and nobody could see at a glance what had been paid, what was in stock or what needed baking tomorrow. They needed a shop that looked like the bakery and a back office that kept every order honest without adding admin work.

Shop all page listing cakes with prices and filters
The full catalogue with filters and sorting.
Illustration of an order card moving from payment confirmed to preparing Concept
How an order moves: placed, paid (verified by staff), preparing, ready. (concept illustration, not a screenshot)

How we approached it.

We started with a fast storefront on headless Shopify so the bakery could sell quickly. When the bakery asked to take PayNow directly and own the whole order flow, we moved commerce onto their own backend: a Postgres order database, PayNow QR payments that staff confirm against the bank, and an admin built around how the kitchen actually works: orders in, stock reserved, bakes prepared, customers emailed.

Where it stands.

The bakery now runs its online orders from its own admin: every order has a clear status, stock is held the moment someone checks out, and payment is confirmed against the bank before anything is baked. The storefront is live at sweetsprinkles.sg.

The system behind it.

Sweet Sprinkles, taken apart: from the screen people use to the work that keeps it running.

  1. Interface

    What customers see

    • Celebration bakes
    • Pickup & delivery slots
    • Order status page
  2. Storefront

    SvelteKit, mobile-first

    • /shop
    • /collections/[handle]
    • /products/[handle]
    • /cart
    • /checkout
    • /orders/[id]/[token]
  3. Admin

    Run by the bakery

    • /admin/orders
    • /admin/products
    • /admin/inventory
    • /admin/customers
    • /admin/settings/content
    • PayNow → staff verify
  4. Data

    Its own order database

    • orders
    • order_items
    • reservations
    • inventory_adjustments
    • payment_records
    • products
    • variants
    • admin_audit
  5. Operations

    Runs nightly, emails every step

    • cron · /api/commerce/reconcile
    • Resend · order emails
    • CI · Postgres 18 service
    • Vitest + Playwright
    • Vercel · Singapore

What we built.

  • Storefront

    Catalogue, collections and product pages with pickup and delivery slots, built mobile-first for customers ordering on the go.

  • Order system

    Checkout reserves stock the moment an order is placed. A retried checkout returns the same order instead of creating a second one.

  • PayNow, verified

    Customers pay by PayNow QR. An order only counts as paid once staff confirm it against the bank, never on the customer’s word.

  • Admin

    Products, variants, images, collections, inventory, orders, customers and homepage content, managed by the bakery with no developer needed.

  • Order emails

    Customers hear from the bakery at every step: order placed, payment confirmed, preparing, ready for pickup.

  • Nightly clean-up

    A scheduled job releases stock held by unpaid orders, so cakes don’t sit “reserved” for customers who never paid.

Under the hood.

Frontend
SvelteKit, Svelte 5, Tailwind 4, GSAP
Commerce
Custom checkout, PayNow QR, Stock reservations, Audit ledger
Data & backend
Neon Postgres, Drizzle, SQL migrations, Redis rate limiting
Infrastructure
Vercel (Singapore), Cloudflare R2, Resend, Daily cron
Quality
Vitest, Playwright, GitHub Actions CI

By the numbers

  • 76 products on a store the bakery runs itself
  • 1 admin for orders, stock, payments and customers
  • 5 order stages, from placed to collected