Kofa

Privacy Policy

Last updated: 21 May 2026  ·  Effective: 21 May 2026

This policy describes how the Kofa mobile app, the Kofa Raycast extension, and the backend service at api.kofa.dev (together, "Kofa") collect, use, store, and disclose information. Kofa is built and operated by Petar Yovkov, a sole developer based in the European Union (the "Operator", "we", "us").

1. Information we collect

1.1 Identity (from Google Sign-In)

When you sign in with Google we receive — and store — the following from your Google account: your Google account identifier (sub), email address, and display name. We use the OpenID Connect openid, email and profile scopes for this. We do not receive your Google password.

1.2 Task content (you provide)

Anything you type into Kofa: task titles, notes, scheduled dates and times, durations, and a color tag.

1.3 Google Calendar events (optional, read-only)

If — and only if — you explicitly connect a Google Calendar account inside Kofa, we request the https://www.googleapis.com/auth/calendar.events.readonly scope. We use this scope solely to read events from the primary calendar of each account you connect, so we can display those events alongside your tasks on the Kofa timeline. We never create, modify, or delete calendar events.

To enable refreshing events after the access token expires, Google issues us a refresh token, which we store encrypted at rest using symmetric encryption (Fernet / AES-128-CBC + HMAC-SHA256). We never share, sell, or expose this token outside the Kofa backend.

1.4 Personal access tokens you mint

Inside the mobile app you can mint personal access tokens (PATs) for use by external integrations such as the Kofa Raycast extension. Tokens are shown in cleartext only once at creation and stored on our backend as SHA-256 hashes (not recoverable). You can revoke any token at any time from the same screen.

1.5 Operational data

Standard web-server access logs at api.kofa.dev (IP address, timestamp, request path, response code, user-agent) are retained for up to 30 days for security and abuse-prevention purposes only.

1.6 What we do not collect

2. How we use information

We do not use any of the above for advertising, profiling, or training machine-learning models. We do not sell, rent, or trade your data.

3. Google API Services User Data Policy — Limited Use disclosure

Kofa's use and transfer to any other app of information received from Google APIs will adhere to the Google API Services User Data Policy , including the Limited Use requirements. Specifically:

4. Sharing with third parties

We share data only with the infrastructure providers strictly required to operate Kofa:

Each provider acts as a sub-processor under their own terms. We do not share data with any advertiser, broker, or analytics vendor.

5. Where data is stored

The Neon Postgres database and the DigitalOcean droplet hosting api.kofa.dev are located in the European Union. Data is transmitted to and from the backend over HTTPS only.

6. Retention

7. Your rights and how to exercise them

You can do the following at any time, free of charge:

8. Security

We use TLS for all data in transit and encrypt sensitive credentials (Google OAuth refresh tokens, personal-access-token hashes) at rest. Access to the production database is restricted to the Operator and to Neon's automated systems.

9. Children

Kofa is not directed to children under 16. We do not knowingly collect personal data from children under 16. If you believe a child under 16 has provided data to Kofa, contact us and we will delete it.

10. Changes to this policy

We may update this policy from time to time. The "Last updated" date at the top will reflect the most recent revision. Material changes will be announced inside the mobile app and on this page at least 14 days before they take effect.

11. Contact

Petar Yovkov, Operator and data controller.  Email: yovkov@gmail.com.