Someone asked me today why I use Bear Blog when I generally selfhost everything.
Mostly it was wanting to support indie developers (I also pay for Mataroa and Paper Website even though I wasn't actively using either of them).
Partly it was because I wanted to have somewhere to write without thinking about hosting it, even though static websites are one of the easiest things to host. But I was always one foot out the door, and the ability to migrate away easily is the main reason I used a custom domain.
But some things about Bear Blog have started to make me feel at odds with what I'm trying to do here.
From the start it bothered me that there is no straightforward way to migrate away. Even on a paid account there is no built-in way to issue redirects from the old URLs so it is difficult to leave without breaking links.
Next, the tagline is:
No trackers, no javascript, no stylesheets. Just your words.
And yet I can't even login without accepting Cloudflare trackers. I can't even scrape my own blog on my own domain without faking a user agent:
$ curl -sI https://schaudenfrau.de | grep -E "HTTP|server"
HTTP/2 403
server: cloudflare
I can't remove the 'powered by Bear' even on a paid account (even though the documentation says you can if you paid):
$ curl -s -A 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36' https://schaudenfrau.de | grep -i bear
<!-- Powered by Bear Blog -->
<meta name="schadenfreude" content="look-for-the-bear-necessities">
<p>schadenfreudebear@tutamail.com</p>
Powered by <a href="https://bearblog.dev">Bear <span role="img" class="bear" aria-label="ASCII bear logo">ʕ•ᴥ•ʔ</span></a>
How much time does this Cloudflare browser tracking add on? It's difficult to say because it's "transparent", but just running curl against both shows it's 3.5x slower than Mataroa:
$ time curl -I -s -A 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36' https://schaudenfrau.de/on-wanting-to-escape/ > /dev/null
real 0m0.569s
user 0m0.029s
sys 0m0.011s
$ time curl -I -s --resolve schaudenfrau.de:443:95.217.30.133 https://schaudenfrau.de/blog/on-wanting-to-escape/ >/dev/null
real 0m0.157s
user 0m0.022s
sys 0m0.010s
It takes 0.220s (still more than twice as fast) with a Caddy reverse proxy in the way. So decrypting SSL, redirecting, bouncing to Matarao, then re-encrypting the SSL again is still more than twice as fast as bouncing through Cloudflare. It's still only half a second though.
The final nail in the coffin for me was not that Bear Blog doesn't offer an API for me to post/edit/delete post, but it was that someone has created an unofficial Python script to provide this functionality missing from Bear, and it keeps breaking because of Cloudflare.
The only way to update the blog is via the website, and I didn't create this site to be part of a captive audience routed through Cloudflare. I don't want to use big tech wrapped in a Bear costume. I just want to be able to git push a markdown file and have a static blog.