Gonglitea app icon

Gonglitea

Gong fu brewing timer, mathematically correct.

Coming soon to the App Store.

Gonglitea start screen with brewing time and offset selectors
Gonglitea countdown with a curve showing successive brewing times
Gonglitea next brew screen with suggested time and one-second adjustments

The rhythm of each steep.

A simple compounding schedule, with room to adjust by taste. Explore the curve, then make it yours.

OriginalAdjusted
Original and adjusted steep timesSelect an adjusted point to focus its override input. Exact values are available in the table below.

Your brew schedule

Enter a time to override · clear it to follow the curve
BrewOriginal · sAdjusted · sOverride · sOffset · s↺
01 / Build the curve

One ratio. Growing increments.

Index brews from n = 0, so the third brew is n = 2. If the first time is t₀ and the next is t₀ + Δ, a fixed multiplier gives r = (t₀ + Δ) / t₀.

bn = t₀ (1 + Δ/t₀)n = t₀ rn
Original rule: tn = bn before any overrides.

With t₀ = 25 s and Δ = 5 s, r = 1.2. The sequence is 25, 30, 36, 43.2, 51.84, … seconds.

Why the increases compound

Start with b₀ = t₀ and bn+1 = rbn. Repeated substitution yields bn = t₀rⁿ. Thus bn+1 − bn = t₀rⁿ(r − 1) = Δrⁿ: the increases are 5, 6, 7.2, 8.64, … seconds.

The mathematical sequence extends indefinitely. Usable tea extraction does not.

02 / Adjust by taste

Shift the future, keep the shape.

At an overridden brew k, compare your chosen time Tk with the current prediction bk + Sk−1. Add that difference to the persistent offset.

δk = Tk − (bk + Sk−1)
Sk = Sk−1 + δk  ·  tn = bn + Sn

Start with S−1 = 0. Without an override, Sn = Sn−1. Choosing 40 s instead of 36 s on brew 3 adds 4 s: 25, 30, 40, 47.2, 55.84, …

Multiple overrides, in chronological order

Sn = Σk≤n δk, summing only override events. Each correction is relative to the already adjusted prediction. If brew 5 is then set to 60 s, δ₄ = 60 − 55.84 = 4.16 s; the total offset becomes 8.16 s. Brew 6 is 62.208 + 8.16 = 70.368 s.

Between overrides, tn+1 − tn = Δrⁿ. Each segment is a vertical translation of the base curve; an override can introduce a jump. Equivalently, the latest override sets Sk = Tk − bk. Earlier edits never change a later explicitly entered time.

Changing t₀ or Δ keeps entered overrides as absolute times and recomputes corrections. Reducing the brew count discards overrides outside the new range.

Times rounded for display; calculations use full precision.