138 Commits

Author SHA1 Message Date
Koala ad33720053 feat(server): add DEBUG_LOGGING environment variable to suppress verbose console output 2026-06-03 11:57:58 +02:00
GitHub Action b526e9287b chore(release): update versions to v2.0.6 [skip ci] 2026-06-03 09:45:12 +00:00
Koala a6be6b2670 perf(server): optimize failedAuthAttempts LRU eviction to O(1) 2026-06-03 11:44:06 +02:00
GitHub Action e3dbf2b8a2 chore(release): update versions to v2.0.5 [skip ci] 2026-06-03 09:34:22 +00:00
Koala 595ea297f5 chore(release): release v2.0.5 2026-06-03 11:33:54 +02:00
GitHub Action a948780745 chore(release): update versions to v2.0.4 [skip ci] 2026-06-03 09:07:20 +00:00
Koala 8c899a6469 Update changelog for v2.0.4 2026-06-03 11:06:44 +02:00
Koala bb7bd21102 Update release assets for v2.0.3 2026-06-03 10:51:47 +02:00
GitHub Action 543bfe074d chore(release): update versions to v2.0.3 [skip ci] 2026-06-03 08:49:25 +00:00
Koala bf0fb5741f fix: version.json path for all non-English locales
Changed condition from lang === 'de' to lang === 'en' so that all
non-English language subdirectories (fr, es, pt-BR, ru, de) correctly
resolve version.json via ../version.json instead of only German.
2026-06-02 14:31:13 +02:00
GitHub Action 666808f876 chore(release): update versions to v2.0.2 [skip ci] 2026-06-02 06:17:21 +00:00
KoalaDev 014169f84e Potential fix for code scanning alert no. 2: DOM text reinterpreted as HTML
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2026-06-02 07:51:01 +02:00
Koala 5a75bae8d0 mobile: nav container padding auf 0.5rem reduziert 2026-06-02 06:43:57 +02:00
Koala fc3f4f38ff mobile: Header noch weiter nach links gerückt
- Nav Container Padding auf Mobile reduziert (0.75rem statt 2rem)
- Logo-Area Gap auf 0.25rem reduziert
- Icon auf 40x40 verkleinert
- Schriftgröße auf 1.1rem reduziert
- Vertical margin vom Icon entfernt
2026-06-02 06:41:46 +02:00
Koala f69da7542e mobile: Sprachauswahl immer sichtbar, Hamburger entfernt
- Sprachauswahl aus nav-links in neuen nav-right Container verschoben
- nav-right ist auf Mobile rechtsbündig und immer sichtbar
- Hamburger-Menü entfernt (Links sind Same-Page-Anchors)
- Logo-Bereich auf Mobile kompakter (kleineres Icon, weniger Gap)
- Lang-Selector auf Mobile kompakter (kleinere Icons, weniger Padding)
- Gleiches Restructuring für join.html, impressum.html, datenschutz.html
2026-06-02 06:35:39 +02:00
Timo aba05060b9 feat: add localization comparison row to website comparison table 2026-06-01 17:11:55 +02:00
Timo 0b986e6e13 fix: build-time VERSION injection via build.js instead of JS runtime 2026-06-01 16:27:45 +02:00
Timo b23ce8ee7d fix: dynamic mockup version from version.json instead of hardcoded 1.9.3 2026-06-01 16:25:18 +02:00
Timo a445759dd7 docs: add CHANGELOG.md, link from README, version badge -> clickable changelog 2026-06-01 16:14:30 +02:00
GitHub Action be574e0e25 chore(release): update versions to v2.0.1 [skip ci] 2026-06-01 13:59:31 +00:00
GitHub Action d026ed891a chore(release): update versions to v2.0.0 [skip ci] 2026-06-01 13:50:26 +00:00
Timo 79025f4d18 feat: new TwoPointZero branding - icons, favicon, mockup i18n
- Replace extension icons with new TwoPointZero design (16/32/48/96/128)
- Update manifest.base.json with 32+96 icon sizes
- Increase popup logo to 48px, website nav logo to 64px
- Generate website webp sizes (64/128/200) + AVIF variants from 600px source
- Add favicon PNGs (16x16, 32x32) + apple-touch-icon + 192x192
- Fix logo vertical centering via display:contents on picture wrappers
- Convert mockup section from inline <span lang> pairs to {{MOCK_*}} template vars
- Add MOCK translations for FR, ES, PT-BR, RU locale files
- Bump AVIF quality 70->80, speed 6->4, remove min 3KB threshold
- Regenerate www/ with build.js
2026-06-01 15:29:33 +02:00
Timo b2ff24e155 SEO: add crawlable language navigation links for Google indexing
- Add sr-only CSS class for screen-reader/crawler-visible elements
- Add hidden <nav> with real <a> links to all 6 language versions in template.html
- Googlebot can now discover /de/, /fr/, /es/, /pt-BR/, /ru/ via HTML links
- No visual changes - existing <select> dropdown remains the user-facing switcher
- Rebuild all www/ output with updated CSS hash
2026-06-01 05:36:06 +02:00
Koala 9285e1041e seo: per-locale HowTo schema (8 new keys × 6 languages)
HowTo schema was hardcoded English — now uses {{HOWTO_*}}
placeholders. All 3 rich-result schemas are now locale-aware:
  - FAQPage  (expandable SERP snippets)
  - HowTo    (step-by-step SERP snippets)
  - SoftwareApplication (entity understanding)

SoftwareApplication and Organization use language-neutral
brand name — no locale keys needed.
2026-06-01 04:02:21 +02:00
Koala 3ac110f8f5 seo: update sitemap lastmod + add xhtml:link hreflang alternates
- lastmod bumped to 2026-06-01 for all 6 language roots
- xhtml:link hreflang entries added per URL (Google-recommended
  belt-and-suspenders approach alongside HTML hreflang tags)
2026-06-01 03:58:17 +02:00
Koala cc8c58fac5 seo: per-locale FAQPage schema + Q6 self-hosting mention
- FAQPage schema now uses {{FAQ_Q1}}..{{FAQ_A6}} placeholders
  instead of hardcoded English — each language gets its own
  schema for locale-matched Google Rich Snippets
- Q6 updated across all 6 languages: 'What if I don't trust
  the official server?' + self-hosting Docker mention
2026-06-01 03:56:58 +02:00
Koala 53768980d0 docs: add TESTED_SERVICES.md compatibility matrix; update FAQ Q1
- TESTED_SERVICES.md: table of tested platforms with sync/title/auto-sync columns
- FAQ Q1: explicitly mention Emby + Jellyfin, remove Disney+/Prime mention
- All 6 locale files updated (Q1+A1)
- README links to TESTED_SERVICES.md
2026-06-01 03:54:52 +02:00
Koala 1b04db009a fix: add *.avif to Caddy static cache matcher
PageSpeed Insights flagged AVIF files as uncached because the
@static matcher only included *.webp. Adding *.avif enables
1-year Cache-Control for all AVIF assets.
2026-06-01 03:51:03 +02:00
Koala a2720da5f8 seo: add visible FAQ section with FAQPage schema (6 keyword-targeted Q&As)
Targets high-volume search queries:
- netflix watch2gether / netflix watch in sync
- free teleparty alternative / teleparty alternative
- emby syncplay / jellyfin sync
- watch together extension browsers
- privacy-friendly watch party

Native <details> elements — no JS, Google-visible, Rich-Snippet eligible.
All 6 languages translated (EN/DE/FR/ES/PT-BR/RU).
2026-06-01 03:49:49 +02:00
Koala d2c380d6fc fix: revert store URLs from SoftwareApplication sameAs
Google does not support sameAs for app store links in SoftwareApplication
rich results. sameAs is for identity pages only (Wikipedia, Wikidata, GitHub).
Store pages are independently indexed by Google and need no schema linking.
2026-06-01 03:41:01 +02:00
Koala 1a36b138c0 seo: add Chrome Store and Firefox Add-on URLs to SoftwareApplication sameAs
Google treats SoftwareApplication.sameAs as app listing references
(not social profiles like Organization.sameAs). This connects
KoalaSync's entity graph to both browser stores without
duplication risk.
2026-06-01 03:37:47 +02:00
Koala 72180ba817 feat(website): SEO, a11y, and build pipeline overhaul
- SEO: per-locale og:locale, Organization+WebSite schema, FAQPage replacing ItemList
- SEO: BreadcrumbList on legal pages, site.webmanifest, expanded sitemap
- a11y: hamburger ARIA+ESC, skip-to-content, aria-hidden on step-num
- a11y: focus-visible states, prefers-reduced-motion, emoji→SVG icons
- CSS: extract .mock-section-label, replace transition:all, will-change hints
- Build: esbuild JS minifier (-46%), sharp AVIF conversion (26 files, quality 70)
- Build: content hashing (style.XXXX.min.css), SVG minification, picture injection
- Cleanup: remove lightningcss (caused CSS merging bugs)
2026-06-01 03:20:51 +02:00
Koala 9eab699e2a feat(website): output minified files as .min.* for safety and clarity 2026-06-01 02:14:31 +02:00
Koala c95e72b713 docs: document build minifier and warn against editing www/ directly 2026-06-01 02:12:05 +02:00
Koala 14be38fe11 feat(website): add build-time minification and optimize meta descriptions 2026-06-01 02:10:27 +02:00
Koala 1bb2123da2 feat(website): technical SEO and UI/UX accessibility improvements
- Add LCP image preload for hero mascot
- Add HowTo structured data schema (3-step install guide)
- Update SoftwareApplication schema with screenshot + image fields
- Add glassmorphic :focus-visible outlines for keyboard accessibility
- Add content-visibility: auto to heavy offscreen sections for INP
- Expand lang-init.js auto-redirect to all 6 supported languages
- Remove impressum/datenschutz from sitemap.xml (noindex conflict)
2026-06-01 01:57:16 +02:00
Koala e29c6666b6 feat(website): redesign bento tiles in 'Why KoalaSync' section
- Swap last two tiles: Invitation becomes 2nd-last (bento-large),
  Self-Hosting becomes last small tile
- bento-large layout: icon centered above heading, 33/67 grid split
- Fix icon consistency on small tiles (uniform 44x44 rounded squares)
- Improve responsive breakpoints for all viewports
- Delete legacy website/index.html (obsoleted by template + build.js)
2026-06-01 01:42:42 +02:00
Koala b08e8ba06b docs: update advanced caddyfile configuration for syncserver in example and website 2026-06-01 01:20:31 +02:00
Koala 30a4057c99 docs: update documentations to reflect browser extension i18n features 2026-06-01 01:07:41 +02:00
Koala 3fcafbd081 fix(eslint): resolve all 6 repository lint errors
- Removed unused html variable from localizeHomeLinks in website/app.js.
- Added website/build.js to ESLint flat config Node files match pattern to define require, process, and __dirname.
2026-06-01 01:04:47 +02:00
Koala d430501b82 feat(website): update sitemap.xml to index clean URLs
- Replaced /impressum.html and /datenschutz.html with clean URLs /impressum and /datenschutz in sitemap.xml.
- Recompiled website to copy clean sitemap to www/ folder.
2026-06-01 00:23:54 +02:00
Koala d738352c90 feat(website): implement Clean URLs and split Caddy configurations
- Removed all .html file extension suffixes from website and invite links (impressum, datenschutz, join).
- Updated app.js dynamic localizer and path switching to target Clean URLs ('./', '../', etc.).
- Refactored Caddyfile.example into simple (lightweight try_files) and advanced (hardened production) options.
- Split Caddy configs into Caddyfile (Simple) and Caddyfile (Advanced) tabs on the landing page.
2026-06-01 00:21:29 +02:00
Koala dbf1b3e81b docs(translation): refine TRANSLATION.md for better clarity and human readability
- Restructured translation guide with clean markdown layout and tables.
- Removed mermaid sequence diagram to improve text-based clarity.
- Audited steps for contributing new language keys.
2026-05-31 23:54:44 +02:00
Koala 5a3f1c7019 docs(website): update Caddyfile configuration and website README for www/ path
- Corrected static server root path to website/www/ in Caddyfile.example and website/README.md.
- Updated core roles to reflect multi-language (EN/DE/FR/ES/PT-BR/RU) support.
- Refactored local development and compilation instructions to target build.js and www/ output.
2026-05-31 23:50:49 +02:00
Koala 57b0dd1632 feat(website): implement custom i18n static compiler & full 6-language expansion
- Added pure Node.js dynamic i18n static site generator (build.js).
- Structured locales for English, German, French, Spanish, Brazilian Portuguese, and Russian.
- Replaced two-state toggle with premium glassmorphic language select dropdown.
- Integrated robust segment-based locale routing with safe dynamic fallbacks for legal and invite pages.
- Audited Core Web Vitals (LCP preloads, CLS dimensions) and SEO structures (robots, sitemap).
- Added dedicated Localization section to README and created contributor TRANSLATION guide.
2026-05-31 23:49:36 +02:00
Koala b6f7c1ccdb refactor(datenschutz): unify email obfuscation to .email-reveal (scraper-safe) 2026-05-31 00:47:39 +02:00
Koala 4bada9533a feat(impressum): add name (Timo/KoalaDev), Mastodon for private msgs, GitHub Issues for concerns 2026-05-31 00:43:58 +02:00
Koala df32385fa6 fix(website): correct Mastodon SVG icon path to official branding 2026-05-31 00:22:47 +02:00
Koala ce9778245d feat(website): add Mastodon profile link (rel=me) to all page footers 2026-05-31 00:16:18 +02:00
Koala 5d6c0cd1fb fix(seo): shorten title (<70 chars), meta description (<160 chars), fix duplicate h1 2026-05-30 21:43:32 +02:00