FFewchurs
← Docs

SwiftUI

Drop the Fewchurs board into any SwiftUI app in a few minutes.

SwiftUIFlutterSoonNext.jsSoonKotlinSoonReactSoonLaravelSoon

Installation

Add the package through Xcode:

// Xcode → File → Add Package Dependencies…
https://github.com/fewchurs/fewchurs-swift

Or add it directly to your Package.swift:

dependencies: [
    .package(url: "https://github.com/fewchurs/fewchurs-swift", from: "1.0.0")
]

Configure the SDK

Call configure once, on launch, with the API key from your app's dashboard settings.

import SwiftUI
import Fewchurs

@main
struct MyApp: App {
    init() {
        Fewchurs.configure(apiKey: "fr_live_xxx")
    }

    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}

Show the board

Present FewchursBoardView like any other SwiftUI view — as a sheet, a tab, or pushed onto a navigation stack. It handles listing, voting, comments, and submitting a new request on its own.

import SwiftUI
import Fewchurs

struct SettingsView: View {
    @State private var showBoard = false

    var body: some View {
        Button("Request a feature") {
            showBoard = true
        }
        .sheet(isPresented: $showBoard) {
            FewchursBoardView()
        }
    }
}

Outside a SwiftUI hierarchy (e.g. from a UIKit view controller), present it imperatively instead:

// UIKit, or anywhere outside a SwiftUI view hierarchy
Fewchurs.showBoard()

Submit programmatically

To collect a request from your own custom UI instead of the bundled board:

Task {
    do {
        let feature = try await Fewchurs.submitFeature(
            title: "Add dark mode",
            description: "Would love a dark theme.",
            isSubscriber: currentUser.hasActiveSubscription
        )
        print(feature.id, feature.status)
    } catch {
        print("Failed to submit:", error)
    }
}

isSubscriber is optional and defaults to false. Pass true when the submitter is a paying customer of your app (from StoreKit, RevenueCat, etc.) and a "Subscriber" badge will show up on that request in your dashboard.

Removing the "Powered by" badge

FewchursBoardView shows a small "Powered by Fewchurs" badge on the free plan. It disappears automatically once the app's owner upgrades to Pro — nothing to change in code. See pricing.

Stuck on something?

Most integration issues come down to a missing API key or an app that hasn't been created yet in the dashboard — double check those first.