Alexander Bocken 28b2494a08 rebrand app from Bocken Fitness to Bocken, track Android project
- Manifest: name/short_name → "Bocken", start_url → "/"
- Tauri: productName → "Bocken", identifier → org.bocken.app, url → "/"
- Cargo: package → bocken, lib → bocken_lib
- Page titles: "- Fitness" → "- Bocken" across all fitness routes
- Build script: auto-regenerate android project on identifier change
- Regenerate app icon from website favicon
- Track Android project source in git (ignore only build output/caches)
- Add native GPS foreground service and AndroidBridge for background
  location tracking (LocationForegroundService, AndroidBridge.kt)
- Add ACCESS_BACKGROUND_LOCATION permission for screen-off GPS
2026-03-24 18:29:38 +01:00
2025-12-16 11:32:38 +01:00
2023-06-24 15:33:41 +02: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 105 MiB
Languages
Svelte 56.5%
TypeScript 36.3%
CSS 2.8%
Kotlin 1.8%
JavaScript 1.6%
Other 1%