# Mayolo > The decisions you won't find in the docs. Trade-offs, gotchas, and the stuff that's obvious in hindsight. By Antonio Maiolo. ## Key Pages - [Home](https://www.mayolo.de/) - [About](https://www.mayolo.de/about) - [Blog Posts](https://www.mayolo.de/posts) - [Archives](https://www.mayolo.de/archives) ## Blog Posts - [Germany Doesn't Have a Heroku — So I Built My Own on Hetzner](https://www.mayolo.de/posts/k3s-hetzner-german-hosting): German PaaS options exist, but none match Heroku-level simplicity. k3s on Hetzner gave me scalable infrastructure with git-push deploys and full observability — without leaving the country. - [Your AI Reads Customer Data — A Proxy Solved My GDPR Problem](https://www.mayolo.de/posts/gdpr-ai-pseudonymization-proxy): Four approaches to GDPR-compliant AI. Three require rebuilding your pipeline. A pseudonymization proxy keeps frontier model quality and ships in days. - [On-Device Transcription Without the Cloud — The Architecture Behind Murmur](https://www.mayolo.de/posts/why-i-built-murmur): FluidAudio, MLX, ScreenCaptureKit, and zero network calls. How I shipped a macOS transcription app that runs entirely on your machine. - [Zero CI Code: Managing Supabase Credentials with dotenvx](https://www.mayolo.de/posts/dotenvx-supabase-credentials): How dotenvx eliminates custom CI code for managing Supabase credentials across environments — and why encrypted secrets in git might be fine. - [Why I Chose Unix Sockets for Browser-to-Desktop Communication](https://www.mayolo.de/posts/native-messaging-electron-python): Native Messaging options for connecting browser extensions to desktop apps — and why I picked Unix sockets over HTTP. ## Contact See the [About page](https://www.mayolo.de/about) for contact information.