feat(app): add prerender, self-hosted fonts and privacy page
Fonts come from npm, not Google, so no third-party font requests. Pages are prerendered at build time; browser-only code is guarded. nginx serves per-route HTML, a real 404 and gzip.
This commit is contained in:
1 parent
57f861510e
commit
54b93055ba
42 files changed
+544
-88
No files matched your search
+38
-1
@@ -33,7 +33,6 @@
|
||||
"ROLE": "Senior Software Developer / Full-Stack Developer / Software Architect",
|
||||
"LOCATION": "Munich · Remote",
|
||||
"VIEW_PROJECTS": "View projects",
|
||||
"CONTACT_ME": "Contact me",
|
||||
"SECTION": {
|
||||
"SKILLS": "Skills & Stack",
|
||||
"LANGUAGES": "Languages & Frameworks",
|
||||
@@ -416,6 +415,40 @@
|
||||
"COUNTRY": "Germany",
|
||||
"CONTACT": "Contact"
|
||||
},
|
||||
"PRIVACY": {
|
||||
"TITLE": "Privacy policy",
|
||||
"CONTROLLER": "Controller",
|
||||
"SECTIONS": {
|
||||
"HOSTING": {
|
||||
"TITLE": "Hosting and server logs",
|
||||
"TEXT": "This site is hosted by Hostinger [TODO: legal entity, address and log retention period to be confirmed; data processing agreement (Art. 28 GDPR) to be confirmed]. The web server writes server logs: IP address, time, requested URL and user agent. Purpose: operation and security of the site. Legal basis: Art. 6 (1) (f) GDPR. The logs are deleted after a short time [TODO: exact period]."
|
||||
},
|
||||
"STORAGE": {
|
||||
"TITLE": "Local storage",
|
||||
"TEXT": "The site stores only your language and theme (light or dark) in the local storage of your browser. There are no cookies, no tracking and no analytics tools."
|
||||
},
|
||||
"SERVICE_WORKER": {
|
||||
"TITLE": "Service worker",
|
||||
"TEXT": "A service worker keeps files of this site in the browser cache, so the site loads faster and works offline. No data is sent to third parties."
|
||||
},
|
||||
"FONTS": {
|
||||
"TITLE": "Fonts",
|
||||
"TEXT": "Fonts (Roboto, Material Icons) are loaded from this server. There is no connection to Google."
|
||||
},
|
||||
"EXTERNAL_LINKS": {
|
||||
"TITLE": "External links",
|
||||
"TEXT": "Links to Gitea, LinkedIn and Codeberg are only opened when you click them. From then on the privacy policy of the respective provider applies."
|
||||
},
|
||||
"RIGHTS": {
|
||||
"TITLE": "Your rights",
|
||||
"TEXT": "You have the right to access, rectification, erasure, restriction of processing, data portability and objection (Art. 15 to 21 GDPR). Contact: the e-mail address above."
|
||||
},
|
||||
"AUTHORITY": {
|
||||
"TITLE": "Right to lodge a complaint",
|
||||
"TEXT": "You can complain to a supervisory authority. Responsible: Bayerisches Landesamt für Datenschutzaufsicht (BayLDA), Promenade 18, 91522 Ansbach."
|
||||
}
|
||||
}
|
||||
},
|
||||
"PATHFINDING": {
|
||||
"TITLE": "Pathfinding Algorithms",
|
||||
"START_NODE": "Start Node",
|
||||
@@ -738,6 +771,10 @@
|
||||
"TITLE": "Imprint – Andreas Dahm",
|
||||
"DESCRIPTION": "Legal information and contact details for the Andreas Dahm Playground website."
|
||||
},
|
||||
"PRIVACY": {
|
||||
"TITLE": "Privacy policy – Andreas Dahm",
|
||||
"DESCRIPTION": "Privacy policy for the Andreas Dahm Playground website."
|
||||
},
|
||||
"STOPWATCH": {
|
||||
"TITLE": "Stopwatch – Andreas Dahm",
|
||||
"DESCRIPTION": "A simple online stopwatch with configurable interval beeps."
|
||||
|
||||
Reference in new issue
Block a user