Sparky

Sparky app icon

Productivity

A local-first macOS app I built for myself: ideas, reminders, and focus sessions without an account.

I needed one place to remember things

I made Sparky because ideas, plans, reminders, and the work I wanted to finish kept ending up in different places. I wanted one calm tool that could hold that context without asking me to create another account.

Calendar, Mind, Focus, and Me came from that need: remember something, organize it, schedule it, and spend time on it without changing tools.

The Mac became the boundary

I chose to make Sparky a native macOS app and keep its main workflows local. Memories, notes, checklists, links, photos, and files belong to the person using the Mac, not to a hosted profile I need to maintain.

That decision shaped the responsibility of the app. It had to handle persistence, attachments, reminders, permissions, and focus sessions coherently on one machine.

Building one local system

SwiftUI provides the desktop interface, while SwiftData stores Memories, Minds, schedules, checklists, and completion history. Attachment payloads stay in Application Support and the data model keeps their references.

The Focus engine handles configurable work and break cycles, pause, reset, and session extension. UserNotifications covers reminders and session feedback. Calendar, Mind, Focus, and Me share the same local models and product services, with permission-aware integrations behind macOS APIs.

I also wanted to reach my Memories from Claude or Codex when I was away from the Mac, without moving the data out of the app. So I wrote sparky-mcp, a small TypeScript server you run yourself. Sparky keeps ownership: it uploads a mirror of its Minds and Memories, the server answers reads from that SQLite mirror, and writes become queued commands. The app claims them, applies them in order, and reports back. Each command carries a base version, so a stale edit is reported as a conflict instead of overwriting newer data.

Where Sparky is now

Sparky is an active macOS app that brings those personal workflows together without a custom backend, analytics, or advertising. It stays useful offline and deliberately boring about privacy.

The remote MCP access is optional and off by default. Nothing is hosted for you, you run your own server, and Sparky behaves the same without it. Anyone holding its API token can read and change your Memories, so it needs the same care as a password.

A mobile version is planned, but it is not available today. Local-first also does not mean automatic sync or guaranteed backup; the current product boundary is the Mac.

Built with

Swift / SwiftUI / SwiftData / TypeScript