{"id":18551365,"url":"https://github.com/chaoscoder/beekeeper","last_synced_at":"2025-06-27T13:35:24.555Z","repository":{"id":55085838,"uuid":"130099754","full_name":"ChaosCoder/Beekeeper","owner":"ChaosCoder","description":"An anonymous usage statistics tracking library for iOS using a differential privacy approach.","archived":false,"fork":false,"pushed_at":"2024-01-28T13:10:17.000Z","size":540,"stargazers_count":2,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-04-29T07:00:30.132Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ChaosCoder.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-04-18T17:39:29.000Z","updated_at":"2022-10-18T06:53:58.000Z","dependencies_parsed_at":"2024-11-06T21:09:04.855Z","dependency_job_id":"57f996cf-200a-4c10-b2b4-9c13a7b9673f","html_url":"https://github.com/ChaosCoder/Beekeeper","commit_stats":{"total_commits":34,"total_committers":2,"mean_commits":17.0,"dds":0.02941176470588236,"last_synced_commit":"938297d1327ac9761b95697b271737cae5c8fd1c"},"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChaosCoder%2FBeekeeper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChaosCoder%2FBeekeeper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChaosCoder%2FBeekeeper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChaosCoder%2FBeekeeper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ChaosCoder","download_url":"https://codeload.github.com/ChaosCoder/Beekeeper/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248123605,"owners_count":21051502,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-06T21:08:50.560Z","updated_at":"2025-04-09T22:31:34.798Z","avatar_url":"https://github.com/ChaosCoder.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"![](https://github.com/ChaosCoder/Beekeeper/blob/master/Logo.png)\n[![](http://img.shields.io/badge/Swift-5.0-blue.svg)]() [![](http://img.shields.io/badge/iOS-15.0%2B-blue.svg)]() [![](https://img.shields.io/github/license/ChaosCoder/Beekeeper.svg)](LICENSE.md) [![Build Status](https://app.bitrise.io/app/de6c8de2d3e47847/status.svg?token=almCOiEviEDNJOAM2G5WQQ\u0026branch=master)](https://app.bitrise.io/app/de6c8de2d3e47847)\n\n# Beekeeper\nAn anonymous usage statistics tracking library for iOS using a [differential privacy](https://en.wikipedia.org/wiki/Differential_privacy) approach.\n\nBeekeeper allows you to get insights about your most important KPIs like daily, weekly or monthly active users, funnels and events and much more without sacrificing your users' privacy.\n\n## Install\n\n### Swift Package Manager\n\n```swift\n.package(url: \"https://github.com/ChaosCoder/Beekeeper.git\", from: \"1.0.0\")\n```\n\n## What user data is stored?\n\nAn event in the app (*e.g. user tapped a button or opened the app) is sent via Beekeeper to your server.\n\nAn event, that is fired in your app, includes the following data:\n\n- `id: String`: Random UUID for the event\n- `product: String`: The app the event was fired in\n- `timestamp: Date`: The precise timestamp the event was fired\n- `name: String`: The name of the event\n- `group: String`: The group/category of the event\n- `detail: String?`: A detail of the event (optional)\n- `value: Double?`: A numeric value of the event (optional)\n- `custom: [String]`: Custom data\n\nAdditionally, each event carries metadata. This metadata is usually the crucial part for the privacy of the user. Let's have a look at the metadata:\n- `previousEvent: String?`: Event (name), that was triggered before this event within the same group\n- `previousEventTimestamp: Day?`: Date (day precision), when an event of the same, was triggered last time\n- `install: Day`: Date (day precision) when the user installed the app\n\n*Note: There is no user id, no IP address or other identifying information about the user.*\n\n## Privacy-preserving anonymous system\n\nEach event is stored in a database with just the information listed above. Each event is isolated from the history, as the only two links to previous events are too unprecise to be chained together. This way, Beekeeper is anonymous and not only pseudonymous. This property is important for preserving the users' privacy, as [pseudonymous solutions can potentially be de-anonymized](https://iapp.org/news/a/looking-to-comply-with-gdpr-heres-a-primer-on-anonymization-and-pseudonymization/).\n\n## Powerful insights\n\nBeekeeper allows you to generate important insights about your app. A basic event that can be tracked in an app is the event of opening the app.\n\nYour **daily app sessions** can then be calculated by just counting those events on a given day. The **daily active users** (who could have multiple sessions a day) can be calculated by just counting the events with a `previousEventTimestamp` of a past day. The same goes for _weekly_, *monthly* or other timeframes.\n\n## Acknowledgments\n\nBase icon made by [Eucalyp](https://www.flaticon.com/authors/eucalyp) from [Flaticon](https://www.flaticon.com/) with some custom coloring.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchaoscoder%2Fbeekeeper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchaoscoder%2Fbeekeeper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchaoscoder%2Fbeekeeper/lists"}