Skip to main content
Build LogUncategorized

Pulso stopped being a single-user app

Pulso now has real user accounts. As of 3 August it signs people in through Supabase Auth with email and magic links, and all seven collection tables in Postgres are scoped by user_id behind row-level security, which replaces the single shared token that had been standing in for a login since the app was built for exactly one person: me.…
Yeison Ospina
August 5, 2026
Pulso iOS wear logging and watch history screensBuild LogUncategorized

Pulso iOS Stopped Being Read-Only

Until 30 July, Pulso on the phone could show you everything and change nothing. It read the live API, rendered the collection, and that was the whole contract. On the evening of the 30th that changed: the app writes now. The add-watch flow went in behind the FAB, search then enrich then save, and I gated it deliberately. It spends…
Yeison Ospina
August 2, 2026
Vela's monthly plan screen breaking down money out by bill, due date and accountBuild Log

Building Vela’s widget system: 13 designs, nine that made it

Widgets were the one part of Vela iOS I designed before I built, on purpose. I laid out 13 widget concepts first, including a bills-runway view and a payday countdown, as mockups I could react to before any Swift got written, and nine of those thirteen made it into the app as real, native widgets: safe-to-spend (with a lock-screen version),…
Yeison Ospina
July 31, 2026
Pluma's Command view: Scout, Strategist, Writer, Editor and Publisher agent cards around a glowing feather, with a live Priority Queue listing a real Build Log draftBuild Log

Pluma’s Build Log: the post writing about itself

This entry exists because of a question I asked out loud: does every update across every app really need its own blog post? The honest answer turned out to be no, not on the main blog, that stays reserved for one real cross-project story a week, but yes, somewhere, because yeison.co.uk already had a Build Log section built for exactly…
Yeison Ospina
July 31, 2026
Build Log

Teaching Pluma to find its own pictures

A post about something visual is weaker without the visual, and until this week getting one into Pluma meant me manually screenshotting and uploading after the fact. Now any Claude Code session, on any of my projects, can render a real image straight from the actual design artifact or a genuine Simulator screenshot, upload it, and stage it, without writing…
Yeison Ospina
July 31, 2026
Vela's accounts screen showing net position and balances kept by handBuild Log

The same SwiftUI bug, five different disguises

This week's bug list for Vela iOS reads like the same mistake wearing five different outfits. SwiftUI lets you stack two .sheet modifiers on one view and it will not warn you, it just silently honours the last one and ignores the first. Settings had exactly that: two sheets, so tapping "Start fresh" did precisely nothing, no error, no crash,…
Yeison Ospina
July 31, 2026
Vela's Home screen showing Safe today, this week, upcoming bills and cash flow for the monthBuild Log

Vela iOS: from empty repo to full parity in under 24 hours

On 30 July I had Claude Code create the Jason9347/vela-ios repository at 6am UK time. By 6:43am there was a read-only core: login, Overview, Accounts, Transactions, Plan, Fixed costs, Income, a Face ID mask over the numbers, and the app's appearance settings. Nine minutes later the remaining read-only screens landed too. That's not a typo, less than an hour from…
Yeison Ospina
July 31, 2026
Pulso's wear history calendar showing which days each watch was wornBuild Log

Fixing what looked fine in the sandbox

Three bugs this week had the same shape: they looked fixed locally and were still broken in production, because nobody had actually checked. The chat advisor's backend, /api/suggest and /api/usage, had three commits sitting unpushed. Every test I ran locally passed because the local server had the code; production didn't, so real requests 404'd silently. Watch image search failed for…
Yeison Ospina
July 30, 2026