Skip to content

Commit

Permalink
Add imprint + write first 3 FAQ articles
Browse files Browse the repository at this point in the history
  • Loading branch information
Jeehut committed Jun 5, 2024
1 parent 4a7b955 commit a28d3ed
Show file tree
Hide file tree
Showing 9 changed files with 142 additions and 59 deletions.
27 changes: 27 additions & 0 deletions Sources/FreemiumKit/FreemiumKit.docc/FAQ/FAQ-HowItWorks.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# 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.

@Metadata {
@TitleHeading("FAQs")
@PageKind(sampleCode)
}

## 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


## Contact

Have questions or need support? Reach out to me at [freemiumkit@fline.dev](mailto:freemiumkit@fline.dev).

---

## Legal

@Small {
Cihat Gündüz © 2024. All rights reserved.
Privacy: No personal data is tracked on this site.
[Imprint](https://www.fline.dev/imprint/)
}
19 changes: 0 additions & 19 deletions Sources/FreemiumKit/FreemiumKit.docc/FAQ/FAQ-One.md

This file was deleted.

43 changes: 43 additions & 0 deletions Sources/FreemiumKit/FreemiumKit.docc/FAQ/FAQ-Privacy.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# How does FreemiumKit handle User Privacy?

Learn how FreemiumKit was designed to keep your users data private and reduce the exposure of your purchase data to a minimum.

@Metadata {
@TitleHeading("FAQs")
@PageKind(sampleCode)
}


## Short Answer

We don't send any personal user data to our servers, respecting user privacy. And we delete purchase data from our servers as soon as they are fetched to your devices. Your purchase data is persisted via CloudKit. This ensures we can't access your purchase history.


## Full Answer

Firstly, we follow the principle of **data minimization** and don't send any personal data to our servers. The only data we send are the date and country of the purchase and the purchased product with its price. This way even if our servers were breached, there's nothing useful to be obtained for attackers.

Secondly, we **don't keep the data for long**: The moment the FreemiumKit app on your devices successfully fetch the purchase data, they are deleted from our servers. If you install FreemiumKit on your iPhone and have push notifications turned on, this happens just seconds after a purchase was made, keeping the amount of data we store on our servers close to zero basically all the time.

> Tip: All our servers are hosted within the European Union (EU), ensuring your data complies with strict EU privacy laws, including GDPR, for enhanced protection and security.
To ensure your data is backed up and syncs across devices, we use CloudKit. This way, even if you delete the FreemiumKit app or lose your device, you can just reinstall FreemiumKit on another device and your full purchase history statistics will stay available within the same Apple Account.

If you happen to stop using the FreemiumKit app for some reason, new purchases are kept up to 90 days on our servers. So you'll always be able to fetch tha last 90 days if you decide to return. If you have push notifications disabled, you need to open the app at least once every 90 days to not lose any purchase history data. If you returned after 100 days, you would lose 10 days of data, for example.

That's why we strongly recommend to **keep push notifications enabled** on FreemiumKit for iPhone, even if you don't wish to actually receive push notifications. You can turn off push notifications within the FreemiumKit app, which will disable the local push notification sent by the app while woken up in the background by a silent push notification. This way, the app will continue fetching purchase data without bothering you with push notifications.


## Contact

Have questions or need support? Reach out to me at [freemiumkit@fline.dev](mailto:freemiumkit@fline.dev).

---

## Legal

@Small {
Cihat Gündüz © 2024. All rights reserved.
Privacy: No personal data is tracked on this site.
[Imprint](https://www.fline.dev/imprint/)
}
14 changes: 0 additions & 14 deletions Sources/FreemiumKit/FreemiumKit.docc/FAQ/FAQ-Three.md

This file was deleted.

14 changes: 0 additions & 14 deletions Sources/FreemiumKit/FreemiumKit.docc/FAQ/FAQ-Two.md

This file was deleted.

36 changes: 36 additions & 0 deletions Sources/FreemiumKit/FreemiumKit.docc/FAQ/FAQ-Validation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Does FreemiumKit validate purchases?

Learn how FreemiumKit deals with validation and how it helps you focus on what's important – your app's features!

@Metadata {
@TitleHeading("FAQs")
@PageKind(sampleCode)
}

## Short Answer

Yes, we handle validation automatically and only report purchases that have been verified by the App Store. No action needed on your end, it all happens within our SDK automatically.


## Full Answer

The FreemiumKit SDK is built on top of StoreKit 2, which automatically verifies any transaction is "signed by the App Store for _my_ app for _this_ device" (quote from WWDC22 session [Meet StoreKit 2](https://developer.apple.com/videos/play/wwdc2021/10114/?time=694)). StoreKit 2 leaves developers the choice to accept even unverified purchases. But FreemiumKit doesn't do that, it simply **always** ignores unverified purchases. When FreemiumKit reports a purchase, it has already successfully passed transaction verification. 💯

While StoreKit 2 makes sure a transaction is coming from Apple and has not been tampered with, it's still possible that a highly skilled attacker could tamper with the devices memory or the app logic on a jailbroken device to bypass these checks. It is possible to guard against these kinds of attacks with additional server-side validation and by moving some of the paid feature logic to your servers.

The complexity of such an attack is very high though and most apps are vulnerable to it even with server-side validation receipt validation because the attacker can simply bypass the boolean check inside the apps logic if they have this level of access to your apps code. Protecting against all potential security risks is impossible and we think that the built-in transaction verification is a good level of security for most apps.


## Contact

Have questions or need support? Reach out to me at [freemiumkit@fline.dev](mailto:freemiumkit@fline.dev).

---

## Legal

@Small {
Cihat Gündüz © 2024. All rights reserved.
Privacy: No personal data is tracked on this site.
[Imprint](https://www.fline.dev/imprint/)
}
11 changes: 8 additions & 3 deletions Sources/FreemiumKit/FreemiumKit.docc/FAQs.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,10 @@ The most frequently asked questions about FreemiumKit.

## Topics

- <doc:FAQ-One>
- <doc:FAQ-Two>
- <doc:FAQ-Three>
- <doc:FAQ-HowItWorks>
- <doc:FAQ-Privacy>
- <doc:FAQ-Validation>



## Contact
Expand All @@ -21,6 +22,10 @@ Have questions or need support? Reach out to me at [freemiumkit@fline.dev](mailt

---

## Legal

@Small {
Cihat Gündüz © 2024. All rights reserved.
Privacy: No personal data is tracked on this site.
[Imprint](https://www.fline.dev/imprint/)
}
32 changes: 23 additions & 9 deletions Sources/FreemiumKit/FreemiumKit.docc/FreemiumKit.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ Automation, Paywalls, A/B Testing, Live Notifications, PPP, and more.
@TechnologyRoot
@PageImage(purpose: icon, source: "FreemiumKit")
@TitleHeading("Welcome to")
@PageKind(article)
<!-- @PageKind(article)-->
@CallToAction(url: "https://apps.apple.com/app/apple-store/id6502914189?pt=549314&ct=freemiumkit.app&mt=8", purpose: link, label: "Get on App Store")
}

Expand All @@ -23,9 +23,9 @@ FreemiumKit is the ultimate solution for Apple platform developers to integrate
## Key Features

### Quick Setup
- **Automated Creation:** FreemiumKit connects to App Store Connect on your behalf and automates all the steps in creating your products, saving you a lot of click & wait.
- **Customizable Paywalls:** Our SDK contains a paywall UI engine for all Apple platforms with beautiful, proven and ready-to-use designs.
- **Remote Configuration:** Manage and update paywalls remotely through our native app – on the Mac or even from your iPhone!
- **Automated Creation:** FreemiumKit connects to App Store Connect on your behalf and automates all the steps needed to create your products, saving you a lot of click & wait.
- **Customizable Paywalls:** The SDK contains a paywall UI engine for all Apple platforms with beautiful, proven, and ready-to-use designs.
- **Remote Configuration:** Manage and update paywalls remotely through the native app – on your Mac or even on your iPhone!

![Feature Image 1](path/to/feature-image1.png)

Expand All @@ -37,9 +37,9 @@ FreemiumKit is the ultimate solution for Apple platform developers to integrate
![Feature Image 2](path/to/feature-image2.png)

### Native Experience
- **Full Apple Platform Support:** Seamlessly integrate with iOS, macOS, watchOS, visionOS, and tvOS.
- **Simplified Usage:** Our native-first approach ensures an easy and efficient setup process, allowing you to focus on building your app.
- **Privacy by Design:** Our SDK avoids sending personal user data to any servers. And we don't keep your purchase data on our servers.
- **Full Apple Platforms Support:** Seamlessly integrate the SDK with iOS, macOS, visionOS, and tvOS.
- **Simplified Usage:** The native-first approach ensures an easy and efficient setup process, allowing you to focus on building your app.
- **Privacy by Design:** The SDK avoids sending personal user data to any servers. And we don't keep your purchase data on our servers.

![Feature Image 3](path/to/feature-image3.png)

Expand All @@ -51,11 +51,11 @@ When choosing a solution for managing in-app purchases and subscriptions, it's i
| Feature | FreemiumKit | RevenueCat |
|--------------------------------|-------------------------------------------------------|--------------------------------|
| **Quick Setup** | ✅ (automated creation of products on Connect) ||
| **Paywalls** | ✅ (on all Apple Platforms, even visionOS!) | 🚧 (only iOS) |
| **Real-Time Notifications** | ✅ (push notifications sent to native iPhone app) | ❌ (only webhooks) |
| **Skip Renewal Notifications** | ✅ (reports purchases & **new** subscriptions) ||
| **Paywalls** | ✅ (on all Apple Platforms, even visionOS!) | 🚧 (only iOS) |
| **Receipt Validation** | ✅ (using StoreKit 2) ||
| **A/B Testing** | ✅ (fast setup to test up to 4 designs in parallel) | ✅ (but a lot of work) |
| **A/B Testing** | ✅ (fast setup, up to 4 designs in parallel) | ✅ (but a lot of work) |
| **Native App** | ✅ (on all Apple Platforms) ||
| **Purchases Dashboard** | ✅ (in native app) | ✅ (only Web) |
| **Purchase Power Parity** | ✅ (adjustable slider to mix with Apple prices) ||
Expand Down Expand Up @@ -113,6 +113,8 @@ For a detailed walkthrough on how to integrate the FreemiumKit SDK into your app

## Testimonials

Here's what customers are saying about FreemiumKit:

@Row {
@Column {
![Testimonial Image](path/to/testimonial-image.png)
Expand Down Expand Up @@ -140,12 +142,24 @@ The top 5 most frequently asked questions:

Visit the [Frequently Asked Questions](doc:FAQs) page for the full list of questions & answers.



## Contact

Have questions or need support? Reach out to me at [freemiumkit@fline.dev](mailto:freemiumkit@fline.dev).

---

## Legal

@Small {
Cihat Gündüz © 2024. All rights reserved.
Privacy: No personal data is tracked on this site.
[Imprint](https://www.fline.dev/imprint/)
}


## Topics

- <doc:SetupGuide>
- <doc:FAQs>
5 changes: 5 additions & 0 deletions Sources/FreemiumKit/FreemiumKit.docc/SetupGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -141,12 +141,17 @@ If you want to simulate a specific paid state in your previews, you can call the
```



## Contact

Have questions or need support? Reach out to me at [freemiumkit@fline.dev](mailto:freemiumkit@fline.dev).

---

## Legal

@Small {
Cihat Gündüz © 2024. All rights reserved.
Privacy: No personal data is tracked on this site.
[Imprint](https://www.fline.dev/imprint/)
}

0 comments on commit a28d3ed

Please sign in to comment.