finds.dev← search

// the find

StanfordSpezi/Spezi

★ 258 · Swift · MIT · updated Sep 2026

Open-source framework for rapid development of modern, interoperable digital health applications.

Spezi is a Swift framework from Stanford's digital health group for building iOS and SwiftUI apps as a set of modules that declare dependencies on each other and share state through a Standard. It is aimed at teams building clinical or research apps who want modules like consent, questionnaires, and account handling to be reusable across projects.

The module model is the interesting part. Modules declare requirements on a Standard through property wrappers and a constraint mechanism, and the test tree has StandardConstraintTests and dependency resolution suites that exercise this rather than just describing it. The Capabilities folder splits lifecycle, communication, observable state, view modifiers, and notifications into separate directories, so each concern can be read on its own. Documentation is DocC catalogs next to the source, including articles on module dependencies and communication, instead of a separate wiki. The ecosystem of separately packaged modules (SpeziAccount, SpeziQuestionnaire, SpeziBluetooth, SpeziLLM) shows the pattern is used outside this repo.

The README is mostly a directory of other packages with screenshots. The actual how-to sits behind a DocC link, so you learn the vocabulary (Standard, Module, Dependency, Communication) before the README shows any code. Nothing here targets Linux or server-side Swift; the stack assumes SwiftUI and the Apple SDKs, and the UI test target is an Xcode project alongside Package.swift, so expect Xcode to be the center of the workflow. Adopting Spezi means adopting its architecture: a Standard, a graph of modules, and property-wrapper injection. Retrofitting an existing app is a rewrite of its wiring rather than a drop-in library, and the indirection will make dependency resolution failures harder to trace than plain initializers. At 258 stars, the project has a small contributor base for a framework whose modules must move in step. A breaking change in core ripples through every SpeziX package, and the README does not state a compatibility or versioning policy.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →