Kassi icon

What Kassi Is

Kassi is a native SwiftUI app that replaces the dozen apps you check each morning with one screen you build yourself. Money, health, training, food, spending, parcels, trains, calendar and weather — arranged into pages from a library of over forty widgets.

The thesis is that most screen time is fragmentation. Ten apps, ten feeds, ten sets of notifications. Kassi collapses them into a single glanceable surface with no feed and nothing to scroll — you check it, get what you need, and put the phone down.

Kassi home screen Kassi Finance screen Kassi Money screen Kassi Health screen Kassi Wellbeing screen

Built Local-First

The architectural decision that shapes everything else: there is no server.

No accounts, no analytics, no tracking, and no backend the developer operates. Data lives in UserDefaults on the device; API keys live in the iOS Keychain. When a widget reads from Trading 212 or WHOOP, the request goes straight from the phone to that service using a key the user supplies. Nothing passes through a middleman, because there is no middleman.

That makes the App Store privacy label an honest “Data Not Collected” rather than a carefully-worded one. It also means zero hosting cost and no scaling problem — the app works identically for one user or a million. The trade-off is real and deliberate: no analytics means no visibility into how it’s used, and bring-your-own-key narrows the audience to people willing to paste an API key.

An optional personal server — one the user owns — adds Obsidian sync, the AI briefing and WHOOP OAuth. The app is fully functional without it.

The Widget System

Everything is a widget, and users assemble their own app:

Features Worth Calling Out

The Logger. Press the iPhone Action Button, speak, and Kassi works out what you meant. “Spent £20 at Tesco” files to spending and deducts from the right pot. “I ate porridge for breakfast” becomes macros. “Did legs, RPE 8” becomes a training session. “I have an idea…” goes to notes, and on to Obsidian. Routing is rules-based rather than a model call — deterministic, instant, works offline, and testable.

Try before you connect anything. First launch offers sample data instead of an empty grid: every widget fills with realistic numbers so the app is legible before a single API key is entered. One toggle in Settings wipes it back to a clean install. It also solves the App Store reviewer problem — nothing to look at with no accounts to sign into.

Earnings Radar. A nightly job pulls official filings from the SEC’s EDGAR system, scores fundamentals in Python, and writes a briefing on the three strongest companies reporting soon — with an analyst you can question. Every figure is computed deterministically; the language model only writes prose over numbers already verified, so it cannot invent a statistic.

Spending by voice, mapped. Purchases logged by speech are geotagged and plotted, so spending patterns show up geographically. The parser handles UK money slang — “a fiver”, “couple of tenners”, “two bands”.

Chess. A rewritten engine with full legal move generation, castling, en passant, promotion, piece-square tables and quiescence search, running off the main thread. Pieces are drawn as geometry rather than Unicode glyphs, so they match the rest of the app.

Design

A deliberately anti-default visual language: Instrument Serif for display type, Geist Mono for every number and label, warm off-white on near-black, and an acid-lime accent. Zero corner radius throughout — hard edges, hairline rules, data rendered as texture rather than chrome.

Personalisation is extensive: 18 themes, 24 accent colours or any custom colour, four typography styles, three layout densities and a bounded text-size scale.

The original screens

These are the design references from the July 2026 redesign, when the app was still called Atlas. The rule was “built, not decorated”. Scroll sideways.

More from the archive

How It’s Built

Status

Feature-complete and in daily use, preparing for App Store submission. Free to use, with an optional £4.99 one-off unlock for the features that cost real money to run.

Built solo, in Swift.