OwnPost is a SwiftUI app for writing notes in Markdown, publishing canonical posts to Ghost, and syndicating to Mastodon and Bluesky (POSSE workflow).
- Markdown editing and preview
- Local persistence with SwiftData
- Publishing to Ghost Admin API
- Syndication to Mastodon and Bluesky
- Optional on-device AI helpers (proofreading and alt text)
- iOS and macOS targets
- Swift 6.2
- SwiftUI + Observation
- SwiftData
swift-markdownfor Markdown parsing/export- FoundationModels (on supported devices)
- Xcode 26+
- iOS 26 / macOS 26 SDK
- Swift 6.2 toolchain
xcodegen(if you want to regenerate the Xcode project fromproject.yml)
git clone https://github.com/wpowiertowski/ownpost.app.git
cd ownpost.appswift build --scratch-path .buildxcodegen generate
open OwnPost.xcodeprojIf you already have a generated project, you can open it directly in Xcode and run on iOS Simulator or macOS.
Publishing credentials are configured inside the app settings:
- Ghost: Admin API URL + Admin API key (
{id}:{secret}) - Mastodon: instance URL + OAuth flow
- Bluesky: handle/email + app password
Credentials are stored via Keychain services in OwnPost/Services/Keychain/KeychainManager.swift.
OwnPost/Appapp entry and root stateOwnPost/ModelsSwiftData models and publish snapshotsOwnPost/ServicesAI, networking, persistence, markdown, publishingOwnPost/Viewseditor, AI sheets, publishing UI, settings, shared componentsproject.ymlXcodeGen project definitionPackage.swiftSwiftPM build definition
- SwiftPM build is configured to process app resources (
Assets.xcassets,Localizable.xcstrings). Info.plistand entitlements are excluded from SwiftPM target compilation and used via Xcode project settings.
See LICENSE.