Tally.
Design round 01

Expense tracker · Web app / PWA
Swiss, softened · Geist + Geist Mono
One accent #FF4F00 · CHF
05 Oct 2026
Brief

Logging an expense should take one sentence or one tap. You type or say it, and Gemini turns it into an entry.

Style

Swiss, but toned down: white background, thin rules, mono numbers. Corners are soft and spacing is generous. Orange only marks something live (recording, AI-filled, top category).

How to review

Three layouts below, scroll each row sideways. Pick one, or mix parts (e.g. A's home with C's month view). Then pick an icon.

00

Setup (same for every layout)

On first launch the app asks for your Google AI Studio key. Two steps: key, then currency and categories.

Shared
9:41●●● 5G ▮
Step 01 / 02

Bring your
own key.

Tally uses Gemini to read what you type, say, or photograph. Paste a key from Google AI Studio. The free tier is enough.

Google AI Studio API key
AIza••••••••••••••Qx4Paste
Key works · gemini-2.5-flash
Get a key at aistudio.google.com →

Your key stays on this device and is only sent to Google.

Continue
00.1 — API keyValidated live
9:41●●● 5G ▮
Step 02 / 02

A few
defaults.

Currency
CHF — Swiss franc ▾
Language
Auto (EN / FR) ▾
Budget
2 000.00 / month
Categories — tap to remove
GroceriesDiningTransportHomeHealthFunShoppingBills+ Add
Start logging
00.2 — DefaultsEditable later
A

Ledger

A list of entries with one input bar at the bottom, like a message box. The month total sits on top. The closest to a classic expense app.

Safe pick
9:41●●● 5G ▮
TallyOct 2026
Spent this month
1 284.60CHF
64% OF 2 00026 DAYS LEFT
Today22.40
  • 18:05TPG ticketTransport3.00
  • 12:40Migros lunchGroceries14.90
  • 09:12CoffeeDining4.50
Sun 0468.20
  • 20:30Cinema, PathéFun19.50
Coffee 4.50 — or just talk
A.1 — HomeType or tap mic
9:41●●● 5G ▮
TallyOct 2026
Spent this month
1 284.60
● Listening · 0:06Release to send

"Dinner at Bains des Pâquis with Léa, forty-two francs, we split it"

Gemini parsedAI
Amount
21.00 CHF
What
Dinner, Bains des Pâquis
Category
Dining
When
Today, 20:14
Note
Split with Léa · 42.00 total
Edit
Save
A.2 — Voice → confirmOne sheet
9:41●●● 5G ▮
← BackOverview
Week
Month
Year
October 2026
1 284.60CHF
  • Groceries412.30
  • Dining286.10
  • Bills240.00
  • Transport148.80
  • Fun119.40
  • Shopping78.00
EXPORT CSV →
A.3 — MonthCategory bars
B

Numeral

Opens straight to a big number and a keypad, like a calculator. Tap the amount and a category, done. Hold the black bar to say it instead.

Fastest log
9:41●●● 5G ▮
TallyToday 22.40
New expense · CHF
4.50
Add a note…
GroceriesDiningTransportFun···
1
2
3
4
5
6
7
8
9
.
0
⌫
Hold to say it
B.1 — EntryKeypad first
9:41●●● 5G ▮
Tally● AI filled

"Dinner at Bains des Pâquis with Léa, forty-two, we split it"

Your share · CHF
21.00
Dinner, Bains des Pâquis · split w/ Léa
GroceriesDiningTransportFun···
1
2
3
4
5
6
7
8
9
.
0
⌫
Log 21.00 →
B.2 — Voice filled itSame screen
9:41●●● 5G ▮
← LogOctober
Month to date
1 284.60CHF
AVG 256.92 / WEEK · PEAK SAT 03
MTWTFSS
Sat 03 · Top day184.70
  • 11:20Coop weekly shopGroceries96.40
  • 19:45Birthday giftShopping88.30
B.3 — MonthCalendar heatmap
C

Stream

Text first. Write one sentence or a whole day ("groceries 23.40, coffee 4, train to Lausanne") and Gemini splits it into entries. You can also snap a receipt. The month view reads like a short report.

Most AI-native
9:41●●● 5G ▮
Mon
05.
Today
22.40
Month
1 284.60
  • 3.00TPG ticketTransport · 18:05
  • 14.90Migros lunchGroceries · 12:40
  • 4.50CoffeeDining · 09:12
What did you spend?
C.1 — TodayBig date, feed
9:41●●● 5G ▮
TallyMon 05
You wrote

groceries 23.40 at coop, a coffee for 4 and the train to Lausanne 22.80 half fare

3 entries foundGemini
  • 23.40CoopGroceries
  • 4.00CoffeeDining
  • 22.80Train → LausanneTransport · ½ fare
Total50.20 CHF
Edit
Log 3 entries
C.2 — Many in oneBatch parse
9:41●●● 5G ▮
← TodayReport
October so far

You spent 1 284.60 CHF. Groceries led at 32%, dining is up on September.

  • Groceries412.30
  • Dining +18%286.10
  • Bills240.00
  • Transport148.80
  • Fun119.40
Ask: "how much on coffee this month?"
C.3 — ReportAsk your data
◼

Pixel app icon

16×16 pixel art with hard edges, shown at App Store size and home-screen size.

Pick one

I1 — Mic Coin

An orange coin with a microphone. Says "money" and "voice" in one shape.

I2 — Receipt

A white receipt with a torn edge on black. The orange bar is the total.

I3 — Tally Marks

Four strokes and a slash, the oldest way to count. Plays on the name.

→

Proposed stack

Everything runs on Cloudflare's free tier. The backend gets built once you sign off on the design.

Proposal
Workers

One Worker serves the PWA and a small JSON API (/api/entries). Free tier: 100k requests/day.

D1 (SQLite)

Cloudflare's free database: 5 GB and 5M reads/day. Plenty for a personal ledger. Tables: entries, categories, settings.

Gemini, from the device

Audio, text, or a receipt photo goes straight from the browser to Gemini 2.5 Flash with your key. It returns entries as JSON. The key never reaches our server.

Cloudflare Access

A login wall with an email one-time code, free for up to 50 users. Only you can open the app or the API.

To decide
  1. Layout: A Ledger, B Numeral, C Stream, or a mix.
  2. Icon: I1, I2 or I3.
  3. Name: keep Tally?
  4. Just you, or should others be able to sign up?