Datenschutzerklärung
This is an English translation for your convenience. Only the German version of this privacy policy is legally binding.
1. Controller
The controller responsible for data processing on this website within the meaning of the General Data Protection Regulation (GDPR; German: DSGVO) is:
Amir Reza Afshar Bekeshloo
Roggenstraße 12
70794 Filderstadt
Email: info@amirrezaafshar.de
This website is my portfolio and blog. In a separate area (/studio) I also offer website development services. No data protection officer has been appointed, as there is no legal obligation to do so.
2. Hosting and server logs
This website is hosted by Render Services, Inc., 525 Brannan St, San Francisco, CA 94131, USA ("Render"). The server and database are located in the Frankfurt am Main (Germany) region; all content, user accounts and uploaded files are also stored there.
Render processes the data as a processor (Art. 28 GDPR) on the basis of a data processing agreement. According to that agreement, parts of the processing (e.g. operations, monitoring, support and logs) also take place in the USA. Render is certified under the EU-US Data Privacy Framework; the transfer is therefore based on the European Commission's adequacy decision of 10 July 2023 (Art. 45 GDPR) and, in the alternative, on the EU Standard Contractual Clauses (Art. 46(2)(c) GDPR). Render uses further sub-processors (including Amazon Web Services, Google Cloud, Cloudflare), see render.com/trust.
When the website is accessed, access data is necessarily processed for technical reasons, in particular IP address, date and time, requested address, amount of data transferred, browser and operating system information (user agent) and the HTTP status code. This data is required to deliver the website, analyse errors and fend off attacks.
- Legal basis: Art. 6(1)(f) GDPR (legitimate interest in secure and stable operation).
- Retention period: The logs are automatically deleted by Render after 7 days. The application itself does not write any IP addresses or email addresses to its logs.
Preloading of pages
To make pages open faster, your browser may load a linked page of this website shortly before you click on it (e.g. when you hover over it with the mouse). This only generates the access data described above, as if you had visited the page. No cookies are set and no data is transmitted to third parties. The legal basis is Art. 6(1)(f) GDPR (legitimate interest in a fast website).
Anonymous visitor statistics
To see which pages are read and how visitors find the website, the website keeps simple statistics – without cookies, without storing your IP address and without third parties. Nothing is stored on or read from your device for this purpose.
What your browser sends: After a page has loaded, the path of the page (e.g.
/Projekte) and – only if you arrive via a link from another website – its domain (e.g.linkedin.com, never the full address) or autm_sourcevalue contained in the link. As with every request, the server also receives your IP address and the browser identifier (user agent).Counting visitors without a cookie: A one-way hash is created from the IP address and browser identifier together with a random daily key. It serves only to avoid counting several page views on the same day as separate visitors. The daily key is newly generated every day and the old one is deleted; the day's hashes are deleted no later than the following day. Recognition across several days or attribution to a person is therefore not possible.
Country and device type: The country is derived from the IP address on this server (local database "IP to Country Lite" by DB-IP, CC BY 4.0 – the IP is not transmitted to DB-IP or anyone else). The device type (desktop, mobile, tablet) is derived from the browser identifier.
What is stored: Exclusively daily totals, e.g. "06.10.: 23 visitors, of which 15 from Germany, 7 via LinkedIn, 12 on a mobile device; /Projekte 40 views". The IP address itself is not stored and no profiles are created.
Not counted are logged-in users, recognisable bots and browsers that send "Do Not Track" or "Global Privacy Control".
Legal basis: Art. 6(1)(f) GDPR (legitimate interest in improving the website and in learning through which channels the portfolio is found). Since nothing is stored on or read from your device, no consent under Section 25 TDDDG (German Telecommunications Digital Services Data Protection Act) is required.
Retention period: Daily key and daily hashes no later than the following day; daily totals are automatically deleted after 400 days.
3. Cookies and browser storage
This website does not use any tracking, analytics or advertising cookies and does not embed any third-party content. Only cookies or browser storage entries (localStorage/sessionStorage) that are strictly necessary for the functions you request are used. Under Section 25(2) No. 2 TDDDG no consent is required for this – which is why there is no cookie banner.
| Name | Type | Purpose | Retention period | Who |
|---|---|---|---|---|
CMS_Auth |
Cookie (HttpOnly) | Keeps you signed in after login | until the browser is closed or you log out; only if you select "Stay signed in" when signing in: 30 days from last use (extended with use, ends immediately on logout) | logged-in users only |
Studio_Auth |
Cookie (HttpOnly, only for /studio) |
Keeps you signed in to the client area for website orders – separately from the login for the rest of the website (signing in to the client area does not sign you in to the rest of the website and vice versa) | until the browser is closed or you log out; with "Stay signed in" 30 days from last use | clients in the client area only |
.AspNetCore.Antiforgery.* |
Cookie (HttpOnly) | Protects forms against forged requests (CSRF) | until the browser is closed | anyone using a form |
.AspNetCore.Mvc.CookieTempDataProvider |
Cookie (HttpOnly) | One-time status message after submitting a form | deleted after being displayed | when needed |
adminLang |
Cookie (HttpOnly) | Remembers the language you selected in the administration area (value "de", "fa", "en" or "tr", no identifier) | 1 year or until you choose a different language | only logged-in users who change the language |
.AspNetCore.Correlation.* |
Cookie (HttpOnly) | Security check for "Sign in with Google" (protection against forged responses) | max. 15 minutes, deleted after sign-in | only those who click "Sign in with Google" |
Identity.External |
Cookie (HttpOnly) | Transfers the result of the Google sign-in to your account once | a few seconds, deleted immediately afterwards | only those who click "Sign in with Google" |
siteIntroDismissed |
localStorage | Remembers that you closed the "How was this site built?" notice (value "1", no identifier) | until you clear browser storage | all visitors |
adminTheme, aiPanelCollapsed, blogAiAssistantSettings, chatSoundEnabled |
localStorage | Display and usability settings in the administration area | until you clear browser storage | logged-in users only |
adminSidebarScroll, blogAiChat_* |
sessionStorage | Scroll position of the menu or history of the AI writing assistant in the current tab | until the tab is closed | logged-in users only |
admin-app-v1 (Service Worker + Cache) |
Browser cache | Only for the administration area as an app on the home screen (e.g. iPhone/iPad): stores an offline notice page and an icon that appear when there is no connection. No pages, content or personal data are cached; all pages are always loaded fresh from the server. | until you delete the app or the website data in your browser | visitors to the login page and logged-in users |
The legal basis for the subsequent processing is Art. 6(1)(b) GDPR (use of the user account) or Art. 6(1)(f) GDPR (security and functionality of the website). You can delete cookies and browser storage in your browser at any time.
Adaptation to your device: To keep the website fast on phones, tablets and less powerful devices, a script checks some technical characteristics directly in your browser (e.g. screen width, input type, number of processor cores, memory, data saver mode, "reduce motion" setting) and hides the scroll animation if necessary. This information is not stored and not transmitted to the server or third parties; it is used only to display the page you requested (Section 25(2) No. 2 TDDDG).
4. Contact form
If you use the contact form, your name, email address, message and, optionally, phone number and subject as well as the time of receipt are stored in the database (Frankfurt) so that I can answer your enquiry. The data is not passed on to third parties; no emails are sent automatically. To protect against spam, the form is secured by bot protection without third parties (see Protection against spam and bots).
- Legal basis: Art. 6(1)(b) GDPR, insofar as your enquiry relates to a contract or an application/internship relationship; otherwise Art. 6(1)(f) GDPR (answering enquiries).
- Retention period: Enquiries are automatically deleted after 6 months, or earlier on request.
5. Registration and user account
You can create a user account for blog comments. The following is stored:
- Display name (shown with your comments – a nickname is sufficient),
- Email address (as login identifier and for the one-time confirmation email; it is not published),
- Password (only as an irreversible, salted hash; when signing in with Google there may be no password),
- Time of registration and, where applicable, of email confirmation,
- optionally a profile picture.
New accounts receive the role "User" (comments, chat with me);
the account is active as soon as the email address has been confirmed (or immediately when signing in with Google).
I grant extended rights (e.g. as a blogger) manually and only on request. In your user account, under Profile → My data, you can download a copy of your data (JSON) and delete your account yourself at any time. When deleted, the account, profile picture and login data are permanently removed; your comments and chat messages are retained as conversation history but are only displayed as "Deleted user".
- Legal basis: Art. 6(1)(b) GDPR (provision of the user account).
- Retention period: until the account is deleted.
Email confirmation (double opt-in)
After registering, you will receive an email with a confirmation link from info@amirrezaafshar.de. This ensures that the email address really belongs to you and that nobody creates an account using someone else's address. The link is valid for 24 hours; you can request a new link on the sign-in page. An email address changed in your profile is also only applied after you have confirmed the link sent to the new address. The email contains no advertising and no tracking pixels; whether or when you open it is not evaluated. As evidence, the times of registration and confirmation are stored.
- Sending: via the mail server of my email provider, which processes the data (email address, content and time of the message) as a processor under Art. 28 GDPR solely on my behalf.
- Legal basis: Art. 6(1)(b) GDPR (setting up the requested account) and Art. 6(1)(f) GDPR (protection against misuse of other people's email addresses).
- Retention period: Newly registered accounts whose email address is not confirmed within 7 days (and which I have not approved manually) are automatically and completely deleted.
Sign in with Google
Instead of using an email address and password, you can also optionally register or sign in with your Google account. No Google script is loaded on this website for this purpose – you are only redirected to Google once you click "Sign in with Google". The provider is Google Ireland Limited, Gordon House, Barrow Street, Dublin 4, Ireland. Google thereby learns that you are signing in to this website and processes your data under its own responsibility in accordance with Google's Privacy Policy; processing in the USA is possible (Google LLC is certified under the EU-US Data Privacy Framework, Art. 45 GDPR).
After you give your consent at Google, I receive only: your Google ID (a number), your email address together with the information whether Google has verified it, and your name (the first name is used as the display name and can be changed in your profile). No profile picture, no contacts and no access rights to your Google account are taken over or stored; the Google access tokens are discarded after sign-in.
- Legal basis: Art. 6(1)(b) GDPR (sign-in via Google at your request).
- Retention period: The link to your Google ID is stored until your account is deleted. You can also remove this website's access at any time in your Google account under Third-party connections.
Household budget book for personally invited persons
The protected administration area contains a private household budget book. It is only available to persons I personally invite (e.g. family members) – visitors to the website are not affected by it.
- What data: only what the person enters themselves: amounts, dates, notes and categories of expenses and income, fixed items and instalment purchases (name, monthly instalment, number of instalments, debit day), account balances, voluntarily entered reserves, savings goals and investments (name, type, amount, amount paid in, monthly savings rate), food prices and offers entered for the shopping planner, and optionally body weight (only for calculating protein per kg) as well as – if desired – credit cards and debts (name, bank, at most the last 4 digits, balance, interest rate). A full card or account number is never stored. The PDF file of a shopping/meal plan is generated in the person's own browser; for sending to Telegram it passes only briefly through my server and is not stored there.
- Separate and private: Each household budget book is strictly separated from the others. It can only be seen by the person themselves and whomever they explicitly authorise (revocable at any time). I, too, can only see another person's household budget book in the administration area with such authorisation; as operator I merely have technical access to the database but do not use this data. Changes to the household budget book are not recorded in the activity log.
- Telegram (optional): If a person connects their household budget book to my Telegram bot via a one-time link, I store only the Telegram chat ID. Messages and photos the person sends to the bot, as well as the bot's replies (evaluations from their household budget book, on request a daily reminder of due instalments, at the push of a button a shopping list and meal plan as text or PDF file) pass through Telegram's servers (Telegram Messenger Inc. or Telegram FZ-LLC, established outside the EU; Telegram's privacy policy applies). The connection can be disconnected at any time in the bot or in the administration area.
- Use via app (optional): The household budget book can also be used via my own app (iPhone/iPad/Android) through a protected interface. If a person signs in there, I store one sign-in per device: the self-chosen device name, the time of sign-in and of last use, and an irreversible hash of the sign-in key – no IP address and no device identifier. The actual access key is valid for only 15 minutes and is not stored. The sign-in ends after 30 days without use and immediately on signing out, on a password change or on deletion of the account; all devices can be signed out at any time. The sign-ins are included in the account's data export.
- Photos and AI: Photos (e.g. receipts, card statements) are sent only for reading out to the AI service from Section 10 and are not stored; the AI analysis receives only numbers, no names.
- Learning area and learning games: Only learning progress (completed lessons, quiz answers right/wrong with month, game points) and voluntary information for financial health are stored. The server retrieves current economic figures (inflation, ECB key interest rate) once a month from the public ECB Data Portal; no personal data is transmitted in the process.
- Daily prices in the shopping planner: For suggestions beyond the person's own list, the server searches the internet for current food prices roughly every two weeks (or at the push of a button). For this, only a fixed list of product names (e.g. "oat flakes", "rice") is sent to the AI service Groq (Groq, Inc., USA; with built-in web search), alternatively to the search service Tavily (USA) or to Google Gemini (estimate without web search) – no personal data, no own entries and no information about the person. The prices found, with a source link, are stored on the server.
- Legal basis: Art. 6(1)(b) GDPR (use of the function at the person's request); for the optional Telegram connection Art. 6(1)(a) GDPR.
- Retention period: until the person deletes the entries or deletes their account – their entire household budget book is then completely deleted. It is included in their account's data export.
Website orders (quotes, contracts, online signature)
If you commission me to build a website or request a quote, I process the data required for this in my protected administration area.
- What data: name, company if applicable, contact details (email, phone), address and city, your requirements for the website and notes from our conversations, quotes, contracts, payments received and – if you sign on paper – the scan of the signed contract.
- AI support: To turn your requirements into a specification of services, I may send only the text of the requirements (without your name and without contact details) to the AI service from Section 10. To determine prices, the server searches the internet for general market prices for websites – no data about you is transmitted in the process.
- Status reports and receipts: During the order I send you reports on the status of the project (e.g. completed steps, next steps, outstanding amounts) by email via the mail server of my email provider (processor, Art. 28 GDPR) – or, if you so wish, via WhatsApp or Telegram from my own device. The report, the date of sending and your email address are stored as part of the order documents. I create payment receipts as PDFs.
- Online signature: You receive a personal, secret link (valid for 30 days). When you sign, I store as evidence the name you entered, your drawn signature, the time, your IP address and your browser identifier as well as a checksum of the contract text. The link is stored only as an irreversible checksum. I receive a Telegram notification containing only the contract number.
- Legal basis: Art. 6(1)(b) GDPR (quote and contract); for evidence of the signature Art. 6(1)(f) GDPR (legitimate interest in a provable conclusion of the contract); for retention obligations Art. 6(1)(c) GDPR.
- Retention period: I delete enquiries that do not lead to an order no later than 12 months after the last contact. I keep contracts, quotes and payment records of an order for as long as statutory retention periods require (up to 10 years); they are deleted thereafter.
Client area for website orders (Web Studio)
At a separate address (/studio, in German, English, Turkish and Persian), clients can create an account, request a website project and track their order.
- What data: name, email address, optionally phone number, password (only as a salted hash), time of registration, of consent to this notice and of email confirmation, the chosen language; project details (title, company, country, city, type of website, desired features, requirements, time frame, optionally budget and existing website/Instagram), messages between you and me as well as files uploaded by you or me (e.g. logo, texts, images; max. 15 MB, stored privately outside the public web directory, accessible only to you and me). In addition, quotes, contracts, status reports, payment requests and payments as described in the "Orders" section.
- Separate login: The client area has its own login (cookie
Studio_Auth, see Cookies). Client accounts have no access to the rest of the website's administration area. - Continue with Google (optional): You can also register or sign in to the client area with your Google account – the same applies as under Sign in with Google (only Google ID, verified email address and name are taken over). A new account is only created if you have first ticked the box for this privacy notice.
- Protection against bots: Registration and sign-in are protected by ALTCHA (see Spam protection), a field invisible to humans and a time check (a form submitted in less than three seconds is considered automated). Nothing is stored for this and nothing is transmitted to third parties.
- Notifications: I inform you by email about new messages, payment requests and payments received (email provider as processor). I myself receive a Telegram notification containing only the order number and the type of event – no contact details and no message content.
- Account linking: I only automatically link an order that I created myself to your account if you have verified the email address via the confirmation link.
- Online payment (only if offered and chosen by you): When paying with Stripe, you are redirected to Stripe's payment page; the provider for customers in the EEA is Stripe Payments Europe, Ltd., Dublin (Ireland), and processing in the USA is also possible (Stripe, Inc. is certified under the EU-US Data Privacy Framework). When paying in toman with Zarinpal, you are redirected to the Iranian payment service Zarinpal (Iran – a country without an adequacy decision; the transfer takes place only because you yourself choose this payment method for the performance of your contract, Art. 49(1)(b) GDPR). In both cases you enter your card details only with the payment service; only the amount, the order reference, your email address and a payment receipt (transaction number) are transmitted to me. For bank transfers, you report the payment in the client area and I confirm it upon receipt.
- Who sees your data: in principle only me. I may, in individual cases, give individual persons who support me with an order (e.g. design) read access or restricted editing access – only to the extent necessary and, if desired, for a limited time. Access only works technically after the person has signed a confidentiality agreement (online or as a signed scan) and I have reviewed and approved it (Art. 28(3)(b), Art. 29, Art. 32(4) GDPR). Deletion, payment data and settings always remain with me alone. Every access by these persons is logged.
Persons with access to the client area (confidentiality agreement)
If I grant a person access to the "Clients & Web Studio" area, I process the following about them: account (name, email), type, scope and duration of the authorisation, the confidentiality agreement with version, time, the name entered and – for an online signature – the image of the signature, IP address and browser identifier, or – for an upload – the uploaded file (stored privately, accessible only to the person themselves and me) with checksum; in addition, when I approved or rejected the agreement, and an access log (time, account, page accessed, view/edit; only the last 500 entries). I receive a Telegram notification about a new signature without name or email address.
- Legal basis: Art. 6(1)(b) GDPR (agreement on cooperation), Art. 6(1)(c) GDPR in conjunction with Art. 29 and 32(4) GDPR (obligation to bind persons with access to confidentiality) and Art. 6(1)(f) GDPR (evidence, protection of client data, investigation of misuse).
- Retention period: Authorisation and agreement for as long as access exists. Because the obligations continue beyond the end, I keep a signed agreement thereafter as evidence for a further 3 years (standard limitation period, Section 195 BGB (German Civil Code)) and then delete it automatically. A rejected or never-signed agreement is deleted immediately. The data is also included in the data access request (JSON download in the profile).
- Client testimonials: A review you write in the client area only appears after my approval and only with your express consent (Art. 6(1)(a) GDPR) under the display name you have chosen; you can change or delete it at any time.
- Your rights directly in the client area: Under Account you can change your data, download all data as JSON and delete your account yourself. In that case the account and access are deleted; order documents (quotes, contracts, payments, messages) are retained only for as long as statutory retention periods require.
- Legal basis: Art. 6(1)(b) GDPR (enquiry, quote and contract, provision of the client area); Art. 6(1)(c) GDPR (retention obligations); Art. 6(1)(f) GDPR (security, protection against misuse, evidence).
- Retention period: Account until deletion; project enquiries without an order no later than 12 months after the last contact; order documents as in the "Orders" section.
- The
/studiopage is not indexed by search engines (noindex) and sets no tracking cookies – only the necessary login cookieStudio_Authwhen you sign in.
6. Protection against spam and bots
Registration, sign-in and the contact form are protected by ALTCHA – an open-source solution (MIT licence) that runs entirely on this server. Your browser automatically solves a small computational task ("proof of work") that is imperceptible to humans but makes mass bot requests expensive. No cookies are set, nothing is stored in the browser, no image puzzles are shown, no usage behaviour is analysed and no data is transmitted to third parties (e.g. Google reCAPTCHA).
In addition, the number of attempts per IP address is limited. For this purpose, the IP address and counter are held exclusively in the server's memory, for at most 15 minutes, and are neither stored in the database nor logged. After 5 incorrect passwords the affected account is locked for 5 minutes (the failed-attempt counter is stored in the account and reset upon successful sign-in).
- Legal basis: Art. 6(1)(f) GDPR (legitimate interest in protecting the website and user accounts against spam, automated attacks and password guessing).
7. Blog comments
Only logged-in users can write comments. The comment text, the time and the link to your account are stored; the comment text, display name and date are displayed publicly. Comments are reviewed before publication.
- Legal basis: Art. 6(1)(b) GDPR (use of the comment function) and Art. 6(1)(f) GDPR (prevention of misuse).
- Retention period: as long as the post is online, or until you have the comment deleted or delete your account (then anonymised).
8. Internal chat
Approved users of the administration area can send each other messages and images via an internal chat. Message text, images (without metadata such as GPS – images are re-encoded on upload), times, read status and the accounts involved are stored.
- Legal basis: Art. 6(1)(b) GDPR.
- Retention period: Messages and images are automatically deleted after 12 months.
9. Activity log in the administration area
Changes to content in the administration area are logged with user name, time and type of change in order to trace errors and detect misuse (Art. 6(1)(f) GDPR). The entries are automatically deleted after 6 months. If a demo account changes content, I receive a short summary ("what was changed") – without names or other personal data. Demo accounts cannot see any personal data of other users (authorisation concept based on the need-to-know principle).
Notification of the operator via Telegram: So that I notice new enquiries quickly, I receive a short push notification via my own Telegram bot that something new has arrived (e.g. "1 new contact enquiry", "2 new chat messages"). This notification contains only counts – no names, email addresses, message texts or other personal data about you. Your data is therefore not transmitted to Telegram; I see the content only in the protected administration area. If a demo account changes website content, the notification additionally states which website content was changed (e.g. "Project edited") – but not who changed it.
10. AI features
When writing blog posts and project descriptions and when translating the website texts into English, I use AI services in the (non-public) administration area. In doing so, only the texts and keywords that I enter myself are transmitted – no data from visitors, no comments, no contact enquiries.
- Google Gemini API (text generation): the provider for customers in the EEA is Google Cloud EMEA Limited, Dublin (Ireland); processing in the USA is also possible (Google LLC is certified under the Data Privacy Framework).
- Cloudflare Workers AI (image generation and text generation when Gemini is unavailable or deliberately switched off): Cloudflare, Inc., San Francisco (USA), certified under the Data Privacy Framework; according to the provider, inputs are not used for training.
- Groq (fallback for text generation when Gemini is unavailable or deliberately switched off): Groq, Inc., Mountain View (USA); according to the provider, inputs are by default neither stored nor used for training.
The legal basis is Art. 6(1)(f) GDPR (efficient creation of my own content). Blog posts created with AI support are reviewed, revised and taken responsibility for by me; AI support is transparently indicated in the post.
There is currently no public AI feature (e.g. a chatbot for visitors) on this website.
English version of the website
All pages are also available in English at addresses beginning with /en (e.g. /en/Projekte). Which language is displayed is determined solely by the address requested – no cookie is set and nothing is stored in the browser for this. The English texts are translations of my own German texts (created by hand or with the AI services mentioned above and reviewed by me); no data from visitors is transmitted in the process. Visitor input (e.g. comments, messages) is not translated. Only the German version of the legal notice (Impressum) and the privacy policy is legally binding.
11. GitHub data
The overview of my public GitHub projects and my public GitHub activity calendar (number of my contributions per day) are retrieved by the server via the GitHub API and cached. Your browser does not connect to GitHub; no visitor data is transmitted to GitHub.
12. Links to other websites
This website contains ordinary links (e.g. to GitHub, LinkedIn or for sharing a post). These are not embedded plug-ins: only when you click on a link do you leave this website, and the privacy notice of the respective provider then applies.
Live demos of my projects
You can try out some of my projects as an online demo. The demos are stand-alone sample applications that I operate myself and that run at a separate address with the hosting provider Render (provider, data transfer to the USA and legal bases as described under Hosting and server logs).
On this website (before opening a demo):
- Waking up and checking status: The demos run on free hosting and "go to sleep" after a period without requests. So that a demo is ready more quickly, the server of this website briefly calls it when a project page is displayed and checks whether it responds. No data about you (e.g. IP address, cookies or browser information) is transmitted to the demo – the request comes solely from this server.
- "Starting live demo" dialog: While you wait, your browser periodically asks only this server whether the demo is ready. This generates only the access data described above. No cookies are set and nothing is stored in your browser.
- Legal basis: Art. 6(1)(f) GDPR (legitimate interest in being able to show visitors my projects without a long wait).
When you open a demo:
- The demo opens in a new tab at a different address. Only then does your browser connect to the demo; Render processes the usual access data (IP address, time, requested address, browser information) in server logs, which are automatically deleted after 7 days.
- The demo may set technically necessary cookies (e.g. for sign-in or to protect forms). Further details can be found in the privacy notice of the respective demo.
- Please do not enter any real personal data in the demos. Use the demo login details provided or made-up test data instead. Inputs in the demos may be deleted or reset at any time without notice.
- Legal basis: Art. 6(1)(f) GDPR (demonstration of my projects at your request).
Downloadable Windows demos
For some Windows projects I offer a free demo version for download.
- Where the file is located: The installation files are not located on this server but at GitHub (GitHub, Inc., 88 Colin P. Kelly Jr. Street, San Francisco, CA 94107, USA; a subsidiary of Microsoft Corporation) as so-called "releases".
- What happens when you click: Clicking "Download demo" first only opens an information dialog on this website – no data is transmitted to GitHub. Only when you click "Download" there does your browser connect to GitHub. GitHub processes the usual access data (IP address, time, requested file, browser information). A transfer to the USA is possible; GitHub is certified under the EU-US Data Privacy Framework (adequacy decision of the European Commission, Art. 45 GDPR). Further details: GitHub's Privacy Statement.
- No counting by me: This website does not log who downloads which file.
- The installed demo runs locally on your computer; inputs are stored only there and are not transmitted to me. If a demo requires additional components (e.g. Microsoft SQL Server Express LocalDB), these are downloaded – after a notice in the installer – directly from Microsoft; Microsoft's terms and privacy notice apply to this. Please do not enter any real personal data in the demos either.
- Legal basis: Art. 6(1)(f) GDPR (legitimate interest in making my projects available for you to try out at your request).
13. Retention periods at a glance
| Data | Retention period |
|---|---|
| Server logs at Render | 7 days |
| Server logs of the live demos (at Render, only if you open a demo) | 7 days |
| Inputs in the live demos (test data only, please) | until the demo is next reset |
| Contact enquiries | 6 months, then automatic deletion |
| User account, profile picture | until the account is deleted |
| Unconfirmed new registrations | 7 days, then automatic deletion |
| Link to Google account | until the account is deleted |
| IP address for limiting sign-in/form attempts | max. 15 minutes, in memory only |
| Blog comments | until deletion; anonymised on account deletion |
| Household budget book (personally invited persons only) | until the person deletes the entries or their account |
| Website orders: enquiries without an order | no later than 12 months after the last contact |
| Client area (Web Studio): account | until the account is deleted (for order documents see website orders) |
| Client area: messages and uploaded files of an order | as for the order documents; for enquiries without an order no later than 12 months after the last contact |
| Website orders: contracts, quotes, payments, signature evidence (incl. IP address) | statutory retention periods (up to 10 years) |
| Persons with access to "Clients & Web Studio": confidentiality agreement (signature, IP address, file) | as long as access exists, then 3 years as evidence |
| Access log "Clients & Web Studio" | the last 500 entries |
| App sign-ins (device name, times, hash of the sign-in key) | 30 days from last use; immediately on sign-out, password change or account deletion |
| Chat messages and images | 12 months, then automatic deletion |
| Activity log (administration) | 6 months |
| AI usage statistics (no personal reference) | 12 months |
| Sign-in, security and status cookies | until the browser is closed (login cookie with "Stay signed in": 30 days from last use or until logout) |
| Database backups | max. 30 days, then automatic deletion |
| Visitor statistics: daily key and one-way hashes for counting visitors | deleted no later than the following day |
| Visitor statistics: daily totals (views per page, visitors, countries, referrers, device type – no personal data) | 400 days, then automatic deletion |
| Uploaded files no longer in use (e.g. replaced or deleted images, profile pictures, videos) | automatic daily check; files no longer in use are moved to a recycle bin on the server and permanently deleted there after 14 days (as long as a database backup still references the file, it is retained until that backup is deleted) |
For recovery in the event of errors, I create database backups as needed. They are also located on the server in Frankfurt, are accessible only to me and are automatically deleted after 30 days at the latest. Deletions that you request or that take place after the periods stated above therefore also take effect in the backups after 30 days at the latest.
Statutory retention obligations remain unaffected.
14. Your rights
You have the right at any time to
- access to your stored data (Art. 15 GDPR),
- rectification of inaccurate data (Art. 16 GDPR),
- erasure (Art. 17 GDPR),
- restriction of processing (Art. 18 GDPR),
- data portability (Art. 20 GDPR),
- object to processing based on Art. 6(1)(f) GDPR on grounds relating to your particular situation (Art. 21 GDPR).
With a user account, you can trigger export and deletion yourself in the administration area under Profile → My data – with a client account in the client area under Account. Otherwise, an informal message to the address stated above is sufficient.
You also have the right to lodge a complaint with a data protection supervisory authority (Art. 77 GDPR). The competent authority is:
The State Commissioner for Data Protection and Freedom of Information Baden-Württemberg (Der Landesbeauftragte für den Datenschutz und die Informationsfreiheit Baden-Württemberg)
Heilbronner Straße 35, 70191 Stuttgart
Phone: 0711 / 61 55 41-0 · Email: poststelle@lfdi.bwl.de
www.baden-wuerttemberg.datenschutz.de
15. No automated decision-making
No automated decision-making, including profiling, within the meaning of Art. 22 GDPR takes place.
16. Data security
The connection to this website is encrypted via TLS (HTTPS). Passwords are stored only as a salted hash (new passwords with at least 8 characters), accounts are temporarily locked after several incorrect passwords, forms are protected against forged requests and bots, and images in the chat are re-encoded on upload to remove hidden metadata.
17. Changes to this privacy policy
I amend this privacy policy when the website or the legal situation changes. The version published here at the time applies; the date of the latest version is shown at the top of this page.