Data controller
Canvas Designer is run as an independent project by Kaspar Bredahl Rasmussen. Contact: kasparbredahl@proton.me
What data we process
When you use Canvas Designer, we process the following information about you:
At login
- Your email address — stored permanently to identify your account and to send you login links.
- The time of your first and most recent login.
- A temporary single-use code ("magic link") sent to your email, valid for 15 minutes. We store only a SHA-256 cryptographic hash of the code — never the code itself — so that a database breach would not grant access to links still sitting in inboxes.
- A session cookie in your browser, valid for 7 days from when you log in. It holds a random value, and the database stores only a SHA-256 hash of it, so a leaked database or backup gives no login that works. The cookie is marked
HttpOnly,SecureandSameSite=Lax. You can be logged in on at most five devices at once. When you log out, the session is deleted on the server too.
When you save a design
- The HTML content of your design, as you have built it in the tool.
- A unique design ID and the title you give the design.
- Timestamps for when the design was created and last modified.
- Metadata about your design choices: page style, brand colours, icon mode, page frame, element counter. These are purely your settings in the tool.
- The link between the design and your account (ownership). Your designs are private: only you can see them, unless you share a design with a link yourself.
When you share a design with a link
- Sharing is off until you turn it on, one design at a time, in My designs. You can turn it off again at any time.
- We store a random share link tied to the design, and when it was made.
- Anyone with the link can open a copy of what you last saved: the title, the content and your design choices. They don't need an account. They don't see your email address and can't change the original.
- If you stop sharing or delete the design, the link stops working. Copies others have already saved stay in their own accounts.
- Don't share designs that contain personal data.
When you organise designs into spaces and tags
- The names and optional colours of spaces you create.
- An optional link between a space and a Canvas course (course ID and course name) if you choose to link them.
- The tags you attach to your designs (lowercase letters, numbers, hyphens, underscores).
When you connect to Canvas LMS
To publish or import pages to/from a Canvas instance, you enter a Personal Access Token from your own Canvas account.
- The token is stored locally in your browser (
localStorage), not in our database. You can clear it at any time from the "Canvas LMS" menu in the toolbar. - When you request data from Canvas (e.g. list courses, publish a page), the request goes through our proxy service. The proxy forwards the token to Canvas and never stores it.
- We do not store Canvas course lists, page titles or page content from Canvas unless you explicitly save them as a design with us.
When you use the AI features
Six builders can draft content with an AI model: flashcards, concept check, true or false, sorting quiz, worked example and self-test worksheet. This only happens when you have added an API key yourself and press the generate button. You choose the provider and the model.
- What is sent: the text you paste or type, the instructions the builder adds, and the text of Canvas pages if you tick them yourself. Your API key is sent along.
- The route: the request goes from your browser to our server in Finland, which passes it on to the provider and the answer back to you. The server neither stores nor logs the text, the answer or the key. It only logs error messages from the provider, for example that a key is invalid.
- The key is stored only in your browser (
localStorage). You can remove it in the "AI connection" dialog. - At the provider, the content is processed under the agreement between you (or your institution) and the provider. Anthropic, OpenAI and Google are headquartered in the USA, and the content may be processed outside the EU/EEA. Mistral is a French company. Read the terms of the provider you choose, including whether content may be used to train models. Some free tiers do that.
- Do not include personal data, and especially not information about students, in text sent to the AI model. Also check that Canvas pages you tick contain no such information.
When you use "Copy as AI prompt" and "Paste from AI"
With these two you make a page in an AI service you choose yourself, and build it in the designer. The designer sends nothing, neither to the AI service nor to our server.
- Copy as AI prompt puts a text on your clipboard, or downloads it as a file. The text describes the page's structure and look, with short labels such as "Week 3" and the addresses of the images on the page. The page's own text is replaced by slots such as [Paragraph, about 30 words].
- You paste the prompt and your text or document into the AI service yourself. What happens there happens under that service's terms and the agreement between you (or your institution) and the provider. Use a service your institution has approved, and leave out information about students.
- Paste from AI reads only what you paste into the field. The answer is checked and built in your browser, and stored only the way other designs are: with a mark that the page was made with AI, the links out of Canvas and the notes from the check.
What we do NOT collect
We do not store IP addresses, browser or device information in the application database. We use no third-party tracking tools — no Google Analytics, Matomo, Hotjar or advertising pixels. We do not profile you.
The web server hosting the service (Hetzner, Finland) keeps standard nginx access logs which include IP and timestamp — used only for troubleshooting and security, and rotated out after a short retention window.
Purpose of processing
We use your data exclusively to:
- authenticate you and keep you logged in,
- save, load, modify and delete your designs,
- let you organise your designs into spaces and tags,
- let you publish designs to your Canvas instance when you choose to,
- pass text on to the AI provider you chose, when you ask for a draft,
- fulfil your GDPR rights (export and deletion).
We do not use your data for marketing, profiling, advertising, resale or any other purpose.
Legal basis
Processing is based on your consent under GDPR Article 6(1)(a). You consent when you log in and when you save a design. You can withdraw consent at any time by requesting deletion (see Your rights below).
Storage and security
Data is stored in a PostgreSQL database on Hetzner in Helsinki, Finland (EU). The database is configured to accept connections only over a local Unix socket — it is not exposed on any TCP port. Our service authenticates to the database via operating-system "peer auth" without a password.
All communication between your browser and the server is encrypted with HTTPS/TLS.
Login codes are randomly generated 256-bit values stored only as a SHA-256 hash. The same goes for sessions: the database holds only a hash of the value in the cookie. Login attempts are rate-limited per email address and per IP address. The IP addresses are kept in memory only and never stored.
The database is backed up every night with 14 days of local retention and mirrored to a Hetzner Storage Box in Helsinki (Finland, EU) over SSH. All backups remain within the EU/EEA. Full-database restore from backup has been tested end-to-end.
Third parties and data processors
Canvas Designer is built to minimise the number of external services involved. All fonts, icons, images and JavaScript libraries the service uses are loaded from our own server (Hetzner Helsinki) — not from public content-delivery networks (CDNs) such as Fastly or Cloudflare. That means your browser does not contact US companies when you use the tool. If you use the AI features, our server passes your text on to the provider you chose (see below).
The only third parties involved are:
-
Mailpace (UK-registered company, EU hosting) — sends login emails
from
no-reply@learnsmith.eu. Mailpace sees your email address and the content of the login email. - Hetzner Online GmbH (Germany; servers operated in Helsinki, Finland) — provides the server and off-site backup storage. All data remains in the EU.
- Canvas LMS (Instructure) — only when you choose to connect Canvas Designer to your Canvas instance and explicitly publish or import a page. Instructure is not a processor on our behalf — you have a direct link to your own Canvas instance and must rely on your institution's privacy regime for that relationship.
- The AI provider you choose (Anthropic, OpenAI, Google or Mistral), only when you use the AI features with your own API key. The provider is not a processor on our behalf. You have the agreement directly with the provider, and it governs how the content is processed. See When you use the AI features above.
Retention
- Your user account and designs are stored until you delete them.
- Login codes have a maximum lifetime of 15 minutes and are marked used as soon as they are consumed.
- Sessions last 7 days or until you log out. Expired sessions are deleted from the database the next time anyone asks for a login link, and all your sessions are deleted when you delete your account.
- Backups are kept for 14 days (locally and off-site) before being rotated out. Account deletion is therefore reflected in backups within 14 days.
- We currently have no automatic deletion of inactive accounts — you can delete your account at any time via "Account settings".
Your rights
Under GDPR, you have the right to:
- Access the data we hold about you (art. 15) — use "Download all my data (JSON)" under "Account settings" to retrieve everything we have stored on you.
- Rectification of inaccurate data (art. 16) — edit your designs directly in the tool, or contact us to correct account details.
- Erasure (art. 17) — delete individual designs via the delete button, or delete your entire account via "Delete my account" in Account settings. Account deletion removes all your designs and login codes from the database immediately, and from backups within 14 days.
- Data portability (art. 20) — the export above is a machine-readable JSON file.
- Withdraw consent (art. 7(3)) — delete your account or stop using the service.
- Lodge a complaint with a supervisory authority (art. 77) — for Norway: www.datatilsynet.no.
Cookies
Canvas Designer uses one strictly-necessary cookie: cdSession, which
keeps you logged in for up to 7 days. It is marked HttpOnly,
SameSite=Lax and is set with the Secure flag on HTTPS connections.
We use no tracking, analytics or marketing cookies. Because of this we do not ask for cookie consent — the technical cookie is exempt because it is strictly necessary for you to stay logged in.
In addition, Canvas Designer stores some non-identifying settings locally in your
browser (localStorage), such as language preference, your autosaved
draft, and any Canvas access token you have entered yourself. These stay on your
device and are not sent to our server unless you choose to (e.g. logging in or
publishing to Canvas).
Changes to this policy
If we change how we process personal data, we will update this page and change the date at the top. Material changes are communicated by email to registered users.
Contact
For questions about this policy or to exercise your rights, contact: kasparbredahl@proton.me