Skip to content

Commit

Permalink
Update How it Works FAQ question
Browse files Browse the repository at this point in the history
  • Loading branch information
Jeehut committed Jun 5, 2024
1 parent 5f8e0b7 commit 49c5d0b
Showing 1 changed file with 27 additions and 2 deletions.
29 changes: 27 additions & 2 deletions Sources/FreemiumKit/FreemiumKit.docc/FAQ/FAQ-HowItWorks.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# How does FreemiumKit work? Can I trust it?

Learn why you can trust FreemiumKit to scale with your app why there's no lock-in risk for you in the long term.
Learn why you can trust FreemiumKit to scale with your app and why there's no long-term lock-in risk for your app.

@Metadata {
@TitleHeading("FAQs")
Expand All @@ -9,8 +9,33 @@ Learn why you can trust FreemiumKit to scale with your app why there's no lock-i

## Short Answer

FreemiumKit makes use of StoreKit 2 in the SDK and uses Apple's officially documented App Store Connect APIs in the native app. Therefore, most of what FreemiumKit does is following modern Apple best practices, without any dependency to our servers. Only the remote configuration of your paywalls depends on our servers. But we use a CDN for fast global availability & scalability. And
FreemiumKit is built on top of StoreKit 2 and official App Store Connect APIs. Therefore, most of what FreemiumKit does is following modern Apple best practices, without being dependent on our servers. For the paywall remote configuration, we use a Content Delivery Network (CN) for fast global distribution – but there's also a local fallback in your project, in case of downtimes.

## Full Answer

FreemiumKit is here to automate the cumbersome and fiddly steps in setting up and maintaining purchases for your app. Our goal is not to cover every possible pricing model, neither is it to support all technological stacks. For example, we will probably never support Android. Instead, we keep the scope focused on the most modern Apple technologies and pricing concepts.

We will always try to support all Apple platforms you can choose as a destination for your target in Xcode and keep up with the latest OS releases. We will always prefer official APIs over private APIs and keep every dependency out that is not absolutely needed. This means, we stick to official Apple APIs wherever possible.

This lead to the following current tech stack:

- Native apps for iOS, macOS, and visionOS (tvOS has no biometric authentication)
- App connects to official [App Store Connect API](https://developer.apple.com/documentation/appstoreconnectapi/) endpoints to handle purchases
- [SwiftUI](https://developer.apple.com/xcode/swiftui/) SDK targeting iOS, macOS, visionOS, and tvOS (watchOS is not a destination)
- SDK is built on top of [StoreKit 2](https://developer.apple.com/storekit/) and SwiftUI 3 (supporting iOS/tvOS 15+, macOS 12+)
- [Vapor](https://vapor.codes)-based server for push notifications when purchases are made (reported by SDK)
- [Supabase](https://supabase.com)-based Content Delivery Network (CDN) for remote configuration of paywalls
- [CloudKit](https://developer.apple.com/icloud/cloudkit/)-based persistence of purchase history in your Apple Account for backup & sync

The only non-Apple technologies here are our server and CDN. We included these dependencies in a thoughtful manner – let's suppose both are down, then:

- ❌ You would no longer receive **live push notifications** when users make purchases
- ❌ You would no longer be able to **remotely configure** your paywall or A/B test
- ✅ The Paywall UI would continue to work, using the local "fallback" configuration
- ✅ Users can continue to make purchases, as the SDK only needs StoreKit 2 for that
- ✅ Even paying users will continue to have access to paid features (via StoreKit 2)

Of course, we don't expect our servers to be down any significant amount of time. This was just to show you that we have considered all cases when designing FreemiumKit conceptually. And because all the purchases are directly configured on App Store Connect, you could even decide to move away from FreemiumKit entirely if you find our feature set does not fulfill your needs. There are no lock-in features. But beware, you will miss all our built-in conveniences! 😉

## Contact

Expand Down

0 comments on commit 49c5d0b

Please sign in to comment.