Privacy Policy
Translation — the German version is authoritative. (Übersetzung — die deutsche Fassung ist massgebend.)
Kontera can run entirely offline in your browser — in that case all data stays only on your device (localStorage), nothing is sent to us.
With an account (online), we store your learning progress, XP, and competency values with our hosting provider Supabase, protected by access rules at the database level (Row-Level Security).
If an account joins a class, the teacher currently sees that account's complete learning statistics — a fine-grained sharing system does not yet exist (see Section 3).
Sharing links ("Share my results") contain the selected data directly within the link itself — they are not stored on our servers and cannot be revoked once shared.
We currently do not use any analytics, tracking, or advertising tools.
You can contact us at any time at samuel@spink.dev regarding access, correction, or deletion of your data.
1. Data controller
The controller responsible for processing your personal data within the meaning of the Swiss Federal Act on Data Protection (revised FADP / revDSG) is:
Sole Proprietorship, Spink Systems, samuel@spink.dev.
For questions about data protection, you can reach us at samuel@spink.dev.
2. Two modes of operation: offline and online
Kontera works in two ways, and this has direct consequences for data protection:
Offline (without an account). If no Supabase backend is configured or you are not logged in, the app runs entirely in your browser. Your entire progress (name, XP, competency values, badges, streak, exercise history) is stored exclusively in the localStorage of your device (key kontera.v1). No data is transmitted to us, no account is created, and we have no access to this data. If you clear your browser storage, your progress is gone — this is entirely within your control.
Online (with an account). If you create an account, your data is stored with our hosting and database provider Supabase, and the grading of your exercises runs server-side. The following sections refer to this mode of operation.
3. What data we process online, and why
Account data: display name, email address, password (as a hash, never in plain text), preferred language, role (learner or teacher), and a coarse birth-year band (deliberately no collection of a full date of birth — data minimisation). Purpose: performance of the contract, i.e. enabling access to your account.
Learning data: progress per competency, XP, level, streak, solved exercises, competency mastery values, earned badges, theory progress. Purpose: performance of the contract — this is the core of the product.
Class data (class feature): If a teacher creates a class and you join using a join code, the membership (class, account, join date) is stored. Important — please read this: The teacher who manages the class currently sees the complete learning statistics (name, level, XP, streak, solved exercises, competency mastery) of all accounts that have joined. There is currently no granular sharing system that would let you turn individual data categories on or off — this is planned as a future feature but has not yet been built. There is also currently no self-service function to leave a class on your own; for that, please contact samuel@spink.dev. Consider carefully whether, and which, class you join.
Sharing links ("share" feature in the profile): You can generate a link that contains selected data (summary, competency values, optionally your name). This data is encoded directly into the link itself — it is not stored on our servers. Anyone who knows the link can see the data it contains for as long as the link exists. Once shared, a link currently cannot be revoked or deleted — not even by us, since we do not manage the data contained in the link on the server side at all. Therefore, only share such links with people you trust.
Technical data: IP address (only to secure the infrastructure, no separate evaluation), cookies, and browser storage as described in the
Cookie Notice.
4. Minor users
Kontera is aimed at learners from around age 15 (commercial apprenticeships, vocational baccalaureate, vocational school). There is currently no automated age or ID verification during registration — we rely on truthful information being provided. Parents or legal guardians should go through this policy together with minor users, in particular the section on the class feature (Section 3), since learning statistics are shared with a teacher as soon as an account joins a class.
A separate parental information notice is in preparation but is not yet available at this time.
5. Recipients and processors
We use the following service providers, who process data on our behalf as processors:
Supabase (hosting, database, authentication, sending confirmation emails): Ireland.
Hosting of the web application: Vercel
Analytics/tracking tools: [[ANALYTICS_TOOL oder "keine"]] — as of today we do not use any analytics, tracking, or advertising software; this codebase contains no corresponding libraries.
If data is transferred to countries outside Switzerland or the EEA, we ensure the required level of protection (e.g. through standard contractual clauses, SCC).
6. Retention period
In principle, we retain your data for as long as your account exists. An automated deletion or anonymisation process for individual data categories (e.g. expired join codes, old log entries) does not currently exist — this is a known gap, see docs/legal/LEGAL-TODO.md. Until a specific retention-period automation is in place, the following applies: data is deleted when you have your account deleted (see Section 7), or when an automated process is introduced and documented here.
7. Your rights
You have the right to obtain information about the personal data we process, to have inaccurate data corrected, to have data deleted, to receive or transfer your data in a common format, and the right to object to processing.
An automated self-service tool for data export or account deletion does not currently exist. You can exercise these rights at any time by email to samuel@spink.dev — we will process your request manually.
You also have the right to file a complaint with the Federal Data Protection and Information Commissioner (FDPIC / EDÖB): Feldeggweg 1, 3003 Bern, www.edoeb.admin.ch.
8. Security measures
The connection to Kontera is TLS-encrypted throughout (https). Passwords are stored hashed by our authentication provider Supabase, never in plain text.
Access to learning data is technically enforced at the database level (Row-Level Security, RLS): database rules — not just application code — ensure that, in principle, only you yourself can access your own data, or that a teacher can only access data of accounts that have joined their class.
In the event of a data protection breach that is likely to result in a high risk to affected persons, we will inform the FDPIC and the affected persons in accordance with legal requirements.
10. Changes to this policy
We adapt this policy whenever our offering or the legal situation changes. The current version, together with the date, is always shown at the top of this page ("Effective: …"). We additionally announce material changes within the product.