Hi everyone!
I’d like to share Dexo, a native iOS client for Discourse forums that I’ve been building with UIKit and Swift.
Screenshots
Features
- Multi-Forum Management — Add, switch between, and remove multiple Discourse instances in one app
- Topic Browsing — Latest and Top topic lists with infinite scrolling
- Categories & Tags — Browse topics by category or tag
- Topic Detail — Full HTML content rendering with image viewer, syntax-highlighted code blocks, and collapsible sections
- Reply — Reply to topics or to a specific post
- Secure Auth — Uses the Discourse User API Key flow with RSA encryption; credentials are stored in the iOS Keychain
- Appearance — System / Light / Dark mode
Planned
- Notifications & private messages
- Topic creation
Tech Stack
| Component | Detail |
|---|---|
| Language | Swift 5 |
| UI Framework | UIKit |
| Minimum Target | iOS 17.0 |
| Architecture | MVVM + @Observable |
| Database | SQLite (GRDB) |
| Networking | Alamofire |
| Image Loading | SDWebImage |
How Authentication Works
Dexo follows the Discourse User API Key specification.
It generates an RSA key pair on the device, sends the public key to your Discourse instance for authorization, and stores the resulting API key securely in the iOS Keychain.
No passwords are stored on the device.
TestFlight
Source Code
The project is fully open source:
Build from Source
Requires Xcode 16+ and mise:
make setup # Install tools, fetch deps, generate Xcode project
Then open dexo.xcodeproj, select your dev team, and run.
Feedback
This is still a work in progress.
I’d love to hear your feedback, feature requests, or bug reports.
feel free to reply here or open an issue on GitHub.


