Confirmed live against the actual Gitea wiki — hyperlinks to hyphenated wiki page names 404 without a trailing .-, e.g. .../wiki/Privacy-Policy needs to be .../wiki/Privacy-Policy.-
60 lines
3.8 KiB
Markdown
60 lines
3.8 KiB
Markdown
<p align="center">
|
|
<img src="Outpost/Assets.xcassets/AppLogo.imageset/outpost-ios-1024.png" width="120" alt="Outpost logo">
|
|
</p>
|
|
|
|
<h1 align="center">Outpost</h1>
|
|
|
|
<p align="center">
|
|
<a href="https://testflight.apple.com/join/y1mYcYAM">
|
|
<img src="https://img.shields.io/badge/Download-TestFlight-0D96F6?style=for-the-badge&logo=apple&logoColor=white" alt="Download on TestFlight">
|
|
</a>
|
|
</p>
|
|
|
|
A native Apple ecosystem client for [Outline](https://github.com/outline/outline) — built for iOS, iPadOS, and macOS from a single SwiftUI codebase, aiming for full editing parity with Outline's web app, including realtime collaborative editing.
|
|
|
|
> **Early alpha — macOS only for now.** Expect missing features and rough edges. iOS/iPadOS support is planned but not in the current build. See the [releases page](https://git.psmattas.com/psmattas/Outpost/releases) for changelogs, and [open an issue](https://git.psmattas.com/psmattas/Outpost/issues) if you hit anything.
|
|
|
|
## Why
|
|
|
|
Outline's web app is great, but there's no native Apple client with full editing parity. This project connects to a self-hosted Outline instance over its REST API and realtime collaboration socket to provide a proper native experience across the Apple ecosystem.
|
|
|
|
## Requirements
|
|
|
|
- Xcode 27+ (currently developed against an Xcode 27 beta — this is a hard minimum, not a suggestion)
|
|
- macOS 27+. iOS/iPadOS support is planned but not in the current build (see the alpha note above) — same 27+ minimum will apply once it lands
|
|
- A self-hosted (or hosted) Outline instance with API access
|
|
|
|
## Setup
|
|
|
|
1. Clone the repo and open the `.xcodeproj` in Xcode.
|
|
2. Generate a scoped API key on your Outline instance (Settings → API Keys).
|
|
3. On first launch, enter your instance URL and API key — these are stored in Keychain, never in app config or source.
|
|
|
|
## Architecture
|
|
|
|
See [`CLAUDE.md`](./CLAUDE.md) and [`docs/ARCHITECTURE.md`](./docs/ARCHITECTURE.md) for the full technical breakdown: REST layer, Yjs/Hocuspocus realtime sync via [YSwift](https://github.com/y-crdt/yswift), and the ProseMirror-schema-to-native-editor mapping.
|
|
|
|
## Disclaimer
|
|
|
|
This project is being built to solve a personal problem — I wanted a genuinely good native knowledge-base client for my own self-hosted Outline instance and none of the existing options fit. It's a personal-use tool first, not a polished product with support guarantees.
|
|
|
|
Parts of this codebase are AI-assisted (built with the help of AI coding tools). Treat that however you like — review, use, fork, or ignore the code accordingly. No warranty of quality, security, or fitness for any particular use is implied beyond what's stated in the license below.
|
|
|
|
## License
|
|
|
|
This project is a client only — it does not include, vendor, or redistribute any of Outline's (BSL 1.1 licensed) server source. See [`LICENSE`](./LICENSE) for this repository's own license.
|
|
|
|
## Privacy
|
|
|
|
Outpost collects nothing about you — no analytics, no telemetry, no crash reporting of its own, no age or demographic data, nothing. The only thing stored locally is your Outline server URL and API token (in the device Keychain) and, optionally, a local offline cache of what you've viewed. Everything else goes straight from your device to whatever Outline server you configure — there's no backend in between, and the developer has no access to your data or your server.
|
|
|
|
Full policy, terms of service, and data-processing statement are on the [wiki](https://git.psmattas.com/psmattas/Outpost/wiki):
|
|
|
|
- [Privacy Policy](https://git.psmattas.com/psmattas/Outpost/wiki/Privacy-Policy.-)
|
|
- [Terms of Service](https://git.psmattas.com/psmattas/Outpost/wiki/Terms-of-Service.-)
|
|
- [Data Processing Statement](https://git.psmattas.com/psmattas/Outpost/wiki/Data-Processing-Statement.-)
|
|
|
|
## Not affiliated with Outline
|
|
|
|
This is an independent, unofficial client. Not affiliated with or endorsed by General Outline, Inc.
|