Blog
SwifterPM: faster Swift package resolution for generated, Bazel, and Buck2 projects
Our users kept telling us that resolving Swift packages was slow, and that the directories where they get resolved ate gigabytes of disk. That pain has only grown as people run several agents across worktrees at once. So we built SwifterPM. It leaves resolution to the Swift Package Manager and speeds up everything around it: fetching the pinned sources, putting them on disk, and reading their manifests. Starting today it's the default for Tuist generated projects, with an environment variable to opt out, and it ships as a rule for Bazel and Buck2.
The build system you already have
Underneath the surface syntax, every build system is the same graph. After years building remote caching for them, we got curious about what actually makes one tick, and what a build system would look like if you designed it today for coding harnesses.
L10N.md: localization built like we ship software
Existing localization tools take content out of the repository and translate it in environments where changes can't be validated. We tried Crowdin and Weblate, none of them felt right. So we built our own system on top of LLMs, with the repository as the source of truth and a lockfile to keep things incremental.
Codex cut Mastodon iOS clean builds 80%
We gave Codex the Mastodon iOS client and asked it to migrate the project to Tuist generated projects, enable caching, and benchmark the results. Here is what happened.
Teaching AI to Read Xcode Builds
From debugging build issues to building agent-friendly build observability. Exploring how structured build data could transform how AI agents understand and optimize Xcode builds.
Debugging the communication between Xcode and XCBBuildService
Learn how to debug the communication between Xcode and XCBBuildService with XCBLoggingBuildService.