All case studies

Tiffin Service Platform

Previous product

Single-vendor food subscription with dynamic pricing engine

React
Node.js
PostgreSQL
Stripe Subscriptions

The Problem

A vendor running a tiffin service needed more than a menu. They needed customers to be able to pick what they want to eat each day from a weekly menu, skip days they don't want delivery, and pay a fair price based on what they actually selected — not a flat weekly rate. The pricing rules were non-trivial: different items had different costs, some combinations triggered discounts, and subscription modifications needed to recalculate mid-cycle.

What We Built

A subscription food platform with:

  • Weekly menu customisation — the vendor publishes a fixed menu for the week. Customers select which items they want for each day. The system stores their selections and updates the delivery schedule.
  • Dynamic pricing engine — the system calculates the subscription price based on the customer's selections. Pricing rules include per-item costs, combination discounts, day-level pricing variations, and pro-rated adjustments for mid-cycle changes.
  • Subscription lifecycle management — pause, resume, skip days, change items, cancel. Each modification recalculates the billing. Stripe handles the recurring charge; our system handles the logic behind it.
  • Delivery scheduling — the vendor sees a daily dashboard showing how many tiffins to prepare and where to deliver them.

What This Proves

Dynamic pricing engines are deceptively complex. When the rules compose — item costs + combination discounts + day variations + pro-rated mid-cycle changes — you need a proper pricing model, not a lookup table. We built that.

This product is no longer operating

This platform was a previous product. The dynamic pricing engine — composing item costs, combination discounts, day variations, and pro-rated mid-cycle changes — proved that subscription billing is a modelling problem, not a payment problem.

The accompanying Deep Dive explains the technical decisions and trade-offs behind this case study.

Read how to scope the first useful product