2026-01-31 10:12:45 +01:00
2025-12-16 11:32:38 +01:00
2023-06-24 15:33:41 +02:00
2026-03-01 21:02:50 +01:00
2026-03-01 21:02:50 +01:00
2023-06-24 15:35:36 +02:00

Personal Homepage

My own homepage, bocken.org, built with SvelteKit and Svelte 5.

Features

Recipes (/rezepte · /recipes)

Bilingual recipe collection with search, category filtering, and seasonal recommendations. Authenticated users can add recipes and mark favorites. Recipes are browsable offline via service worker caching.

Faith (/glaube · /faith)

Catholic prayer collection in German, English, and Latin. Includes an interactive Rosary with scroll-synced SVG bead visualization, mystery images (sticky column on desktop, draggable PiP on mobile), decade progress tracking, and a daily streak counter. Adapts prayers for liturgical seasons like Eastertide.

Expense Sharing (/cospend)

Shared expense tracker with balance dashboards, debt breakdowns, monthly bar charts with category filtering, and payment management.

Self-Hosted Services

Landing pages and themed integrations for Gitea, Jellyfin, SearxNG, Photoprism, Jitsi, Webtrees, and more — all behind Authentik SSO.

Technical Highlights

  • PWA with offline support — service worker with network-first caching, offline recipe browsing, and intelligent prefetching
  • Bilingual routing — language derived from URL (/rezepte vs /recipes, /glaube vs /faith) with seamless switching
  • Nord theme — consistent color palette with light/dark mode support
  • Auth — Auth.js with OIDC/LDAP via Authentik, role-based access control
  • Progressive enhancement — core functionality works without JavaScript

TODO

General

Rezepte

Glaube

E-Mail

  • emailwiz setup
  • fail2ban
  • LDAP?

Dendrite

  • setup dendrite
  • Connect to LDAP/OIDC (waiting on upstream)
  • Serve some web-frontend -> Just element?

Webtrees

  • setup Oauth2proxy -> not necessary, authentik has proxy integrated
  • connect to OIDC using Oauth2proxy (using authentik)
  • consistent theming
  • auto-login if not logged in

Jitsi

  • consistent theming
  • move away from docker
  • find a way to improve max video quality without jitsi becoming unreliable

Searx

  • investigate SearxNG as more reliable alternative
  • consistent theming

Photoprism

  • consistent theming
  • OIDC integration
Description
My personal website built to learn SvelteKit. The largest part is the Recipes subsection.
https://bocken.org
Readme AGPL-3.0 102 MiB
Languages
Svelte 58.7%
TypeScript 34.3%
CSS 3.7%
JavaScript 2.1%
Shell 0.4%
Other 0.8%