Finora
An ongoing, self-initiated finance product. The native iOS client is substantially built in Swift 6 with iOS 26 Liquid Glass, a UI-free domain layer and 142 unit tests, and it runs today on mock repositories behind protocol seams. The platform it will connect to is designed: FastAPI, PostgreSQL with pgvector, XGBoost classification, Prophet forecasting and an assistant that answers only from the user's own numbers.
- Role
- Founder, architect and engineer
- Team
- Solo
- Timeline
- Started early 2026, ongoing
- Stack
- Swift 6 · SwiftUI · FastAPI · pgvector · XGBoost · Prophet · GCP

01 — Problem
People lose control of money mostly because they can't see it: receipts are on paper, cash spending leaves no trail, local banks have no open APIs, and international apps assume cents. Technically the hard parts were exact money arithmetic, a serif font that jitters during number animations, floating glass controls that stopped taking taps, forecasting from very short histories, and an assistant that must never invent a number.
02 — Approach
03 — Architecture
How the system fits together, in two views.
04 — Decisions
- D1Prophet for forecastingOver: ARIMA, LSTMTwo or three months of history is about 100 transactions. Prophet handles weekly and monthly seasonality, custom events like salary day, and gives uncertainty intervals; ARIMA assumes stationarity and an LSTM would overfit.
- D2XGBoost for categoriesOver: BERT, neural netsSmall tabular data with short text: XGBoost is accurate, interpretable and fast enough to run on every insert.
- D3pgvector for the assistantOver: Pinecone, WeaviateOne less service, and embeddings can be written in the same transaction as the data they describe.
- D4A staged cold startA forecast from two weeks of data would be confidently wrong. Forecasts stay off in month one and ship with wide, flagged intervals in month two.
- D5Keyless deploymentGitHub Actions deploys through Workload Identity Federation, so there is no long-lived cloud key to leak.
05 — Technology
- iOS
- Swift 6 strict concurrency, SwiftUI, iOS 26 Liquid Glass, VisionKit, AVFoundation, Keychain
- Testing
- Swift Testing (142 unit tests), XCUITest launch smoke tests
- ML
- XGBoost, Prophet, Isolation Forest
- LLM + RAG
- LangChain, OpenAI GPT-4o-mini and text-embedding-3-small, pgvector
- Backend (designed)
- FastAPI with clean architecture, PostgreSQL 16, Redis, Cloud Storage
- Infrastructure
- Cloud Run, private Cloud SQL, Secret Manager, GitHub Actions with Workload Identity Federation
06 — Outcome
Own product · 202607 — Status
- Native iOS client: 7 implemented screen groups
- 142 Swift Testing unit tests
- Camera receipt capture with per-field confidence flags
- Budget, safe-daily-spend and affordability maths
- Three Python ML modules: classifier, analytics, forecasting
- GCP bootstrap and verification scripts
- FastAPI backend and Next.js web app
- Server-side OCR and ingestion pipeline
- RAG assistant (the iOS assistant runs a heuristic mock today)
- Goals, onboarding, account and paywall screens (scaffolded)
08 — My role
A solo, self-initiated build. Claude, Claude Design and Claude Code were used as tools for planning, design and implementation.
- Product concept, scope and user stories
- Platform architecture and ML model choices
- Mobile and web design system
- iOS clean architecture, domain layer and 142 tests
- Router, composition root and Liquid Glass components
- VisionKit scanner and Keychain layer
- GCP infrastructure scripts
