Build and contribute
The application architecture, local verification and the handbook source.
Redcast is native SwiftUI and AppKit, built in Swift 6 with complete strict concurrency. It supports macOS 26 and later. The app has no third-party package dependencies; the documentation website has its own Node dependencies.
Build the app
Use Xcode 26 and the committed project:
xcodebuild -project Tinycast.xcodeproj -scheme Tinycast \
-configuration Debug CODE_SIGNING_ALLOWED=NO buildIf xcode-select points at Command Line Tools, use the full Xcode path:
DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer \
xcodebuild -project Tinycast.xcodeproj -scheme Tinycast \
-configuration Debug CODE_SIGNING_ALLOWED=NO buildFor a signed installed Redcast build, use the fork installer. Debug builds are a separate channel; Xcode project and source names deliberately remain Tinycast.
Read before changing code
| Document | Covers |
|---|---|
| AGENTS.md | Repository rules and the short map |
| Architecture | Ownership, feature boundaries and windows |
| Standards | Swift style, concurrency, naming and localization |
| Development | Toolchain, signing, generators and editor setup |
| Testing | Standalone harnesses and manual checks |
| Feature internals | Invariants and implementation details per feature |
| Fork tooling | Installation, rebranding and upstream sync |
AppCore owns long-lived state. Views reach feature coordinators through the environment. Model files stay free of AppKit and SwiftUI. Heavy work leaves the main actor; short UI operations stay synchronous.
Project generation and tests
project.yml owns the Xcode project. After editing it, run xcodegen generate and keep both files in the change. Generated emoji, currency, country and Raycast-runtime files must be regenerated by their scripts instead of hand-edited.
./Scripts/run-tests.sh
./Scripts/lint.shThe harnesses compile shipped Swift sources. A clean Debug build, the pure-model import check and accurate docs are also part of completion. Read testing.md for specific harness requirements and the manual sweep.
Contribute
Read CONTRIBUTING.md, describe the user-visible problem and keep unrelated changes separate. File bugs and feature requests against the fork when they concern Redcast additions.
This documentation site
The handbook source is docs-site/ in the separate redcast-site website repository. It uses the same engine as upstream: Fumadocs, Next.js static export and Tailwind. Markdown files are in docs-site/content/docs/; each section's meta.json controls navigation.
cd docs-site
npm ci
npm run dev
npm run build
npm run checkThe build exports HTML, a local search index, a sitemap, raw Markdown per page, llms.txt and llms-full.txt. No server-side model or search service is needed. Production combines this export with the existing English and Russian landing pages and deploys the complete static bundle through Wrangler.
See the downloadable documentation source for publishing, checks and attribution. The handbook describes user workflows; the repository's docs/features/ remains the detailed engineering reference.