title: cashly — personal finance app subtitle: budget organization built on the prism design system role: creator team: solo stack: [swift, swiftui, swiftdata, widgets, charts] period: 2026 — present year: 2026 status: wip order: 4
context
cashly is a personal finance app for budget organization. it's the first real consumer of the prism design system — built to prove that the design tokens and component library work in a real product, not just in a demo.
the goal isn't to compete with nubank or copilot. it's to build the budgeting tool i actually want to use — simple, fast, native, with the specific workflows that matter to someone who tracks expenses daily but doesn't need a full accounting suite.
core features
→ budget categories — create custom categories with spending limits per month. visual progress bar shows how close you are to each limit.
→ quick entry — add an expense in 3 taps. category, amount, done. no required fields for notes, tags, or receipts. those are optional.
→ monthly overview — swift charts integration for spending breakdowns. category comparison month-over-month.
→ widgets — home screen widgets showing remaining budget, largest category this month, and daily average spend.
the swiftdata approach
cashly is fully swiftdata — no core data migration layer, no realm, no sqlite wrapper.
@Model
final class Transaction {
var amount: Decimal
var category: Category
var date: Date
var note: String?
@Relationship(deleteRule: .nullify, inverse: \Category.transactions)
var category: Category
}
@Model
final class Category {
var name: String
var monthlyLimit: Decimal
var color: String
var transactions: [Transaction]
var spent: Decimal {
transactions
.filter { Calendar.current.isDate($0.date, equalTo: .now, toGranularity: .month) }
.reduce(0) { $0 + $1.amount }
}
}
swiftdata gives us icloud sync for free, @Query for reactive ui updates, and a model layer that feels native to swiftui. the trade-off: less control over the underlying store, and some rough edges with complex queries.
widget design
three widget families, all using the prism design system tokens:
→ small — remaining budget for the current month. single number, progress ring, category color.
→ medium — top 3 categories with spending bars. tappable to open the category detail.
→ large — full monthly breakdown with chart. matches the in-app overview screen.
status
in development. will ship under the byescaleira brand when prism is stable.
by escaleira / 2026