[HN Gopher] Bear Blog - A privacy-first, fast blogging platform
       ___________________________________________________________________
        
       Bear Blog - A privacy-first, fast blogging platform
        
       Author : janandonly
       Score  : 209 points
       Date   : 2022-07-17 14:57 UTC (8 hours ago)
        
 (HTM) web link (bearblog.dev)
 (TXT) w3m dump (bearblog.dev)
        
       | Geee wrote:
       | This would be excellent with LNURL-auth for better privacy and
       | UX.[0]
       | 
       | [0] https://lightninglogin.live
        
       | janandonly wrote:
       | Another honorable mention goes to: https://telegra.ph
        
         | bayindirh wrote:
         | https://smol.pub and https://mataroa.blog are also nice
         | examples. I host my blog in Mataroa, and love the experience so
         | far.
        
           | Groxx wrote:
           | On https://mataroa.blog/                   Pricing          -
           | Premium -- all features            - $9/year
           | 
           | A blog hosting price that's actually reasonable! The trend of
           | everything being $5-10/month is ridiculous, this is nice to
           | see.
        
             | dunefox wrote:
             | I need images and code blocks + formulas. Is that doable
             | with mataroa? I'd be happy to pay 9EUR for that.
        
               | bayindirh wrote:
               | Mataroa supports markdown, with images (and you can store
               | your images on Mataroa servers), and syntax highlighted
               | code blocks (which is something they don't openly say). I
               | normally don't use formulae in my blog posts, so I don't
               | know that part.
               | 
               | In every case, Mataroa has a free tier, so you can always
               | try before you buy. If you want to see, my blog is at
               | https://blog.bayindirh.io.
        
             | bayindirh wrote:
             | Yes, Mataroa is a great service, and https://smol.pub is
             | $5, one time, for now.
        
         | qudat wrote:
         | For a terminal based workflow, https://prose.sh is pretty
         | great. Authentication happens via SSH so all you need is a key-
         | pair to register. Uploading posts is as simple as `scp hello-
         | world.md prose.sh:/`. This also means that you can bring your
         | own editor and you control the source files.
         | 
         | Coming from hugo, prose.sh has been much easier to publish
         | content since I pretty much live in the terminal anyway.
        
         | AnonC wrote:
         | I recall trying this a few years ago using my Telegram account,
         | but I could never figure out how to edit a published post or
         | delete it. There were also some other drawbacks that I don't
         | recall now.
        
       | __mp wrote:
       | Hugo in combination with the Congo Theme (see
       | https://github.com/jpanther/congo) has scratched this itch for
       | me. The theme is well thought out and has all the features I
       | need.
       | 
       | There's the usual youtube and vimeo integration, but also
       | 
       | - integration with Flowcharts through mermaid
       | https://jpanther.github.io/congo/samples/diagrams-flowcharts...
       | 
       | - charts through Chart.js
       | https://jpanther.github.io/congo/samples/charts/
       | 
       | - and even LaTeX support:
       | https://jpanther.github.io/congo/samples/mathematical-notati...
        
         | kirillbobyrev wrote:
         | Thanks a lot for posting it! I wanted to blog for quite a while
         | but am too lazy to finish some basic blog setup with my "own
         | theme". Bear looked great and I was upset none of the Hugo
         | themes I looked at were exactly what I wanted. This one does!
        
         | sureglymop wrote:
         | All of that's great... but wouldn't it be much better to render
         | the latex, mermaid etc server side? I'm a bit baffled that
         | apparently Hugo can't do that.
        
           | __mp wrote:
           | Sure, there's certainly interest in doing this. See this post
           | for more details:
           | https://misha.brukman.net/blog/2022/04/writing-math-with-
           | hug... (I'm not the author of this post)
           | 
           | Client-side rendering works well enough for me, and has been
           | for years (as a visitor). I don't see a benefit to integrate
           | a custom Hugo patch to get server-side rendering for my
           | simple personal blog.
        
       | tyingq wrote:
       | >no stylesheets
       | 
       | Well, there is a fair amount of css wrapped in <style> tags. Not
       | sure I understand the upside of not putting it in a separate
       | file.
       | 
       | Though the look is reasonably pleasant.
       | 
       | Edit: The example blog also loads js, despite the "no javascript"
       | claim. Like: _< script src="https://cdn.usefathom.com/script.js"
       | data-site="WKWMFTPV" defer></script>_. Perhaps that's not a
       | default thing, but it seems odd to link to an example blog that
       | doesn't match the sales pitch.
        
         | KronisLV wrote:
         | > Edit: The example blog also loads js, despite the "no
         | javascript" claim. Like: <script
         | src="https://cdn.usefathom.com/script.js" data-site="WKWMFTPV"
         | defer></script>. Perhaps that's not a default thing, but it
         | seems odd to link to an example blog that doesn't match the
         | sales pitch.
         | 
         | Seems like this is loading Fathom analytics:
         | https://usefathom.com/
         | 
         | Probably safe to turn off, as uBlock Origins and other ad
         | blocking solutions would, depending on your settings. So I
         | guess in a way the site itself works just fine without JS
         | enabled and doesn't _require_ it, but the authors have chosen
         | to add analytics to see who uses their site, then.
        
         | twohaibei wrote:
         | Depending on the styles inside of that style tag it can be
         | faster because of lack of separate http request to fetch it.
        
           | kabirgoel wrote:
           | Yep, although on HTTP/2 this shouldn't be an issue anyway.
        
         | Kaze404 wrote:
         | Inline CSS has the benefit of not making a second HTTP request,
         | as well as (if I recall correctly) rendering the page styled
         | from the get go, as opposed to once unstyled and once again
         | when the CSS has finished downloading.
        
           | numlock86 wrote:
           | Separate CSS has the advantage that it can get cached, so you
           | ideally only transfer it once.
        
             | wbobeirne wrote:
             | HTML can be cached too, with the right headers.
        
               | mccorrinall wrote:
               | Most blogs consist of more than a single html page and
               | usually reuse the same styles.
        
               | josephg wrote:
               | True, but most visitors to your blog won't read more than
               | one page.
        
               | stefs wrote:
               | true, but for a blog, the html would be cached per page,
               | which means that if you look at n pages the same css is
               | loaded n times too.
               | 
               | depending on _how_ you cache it, there might be a cache
               | invalidation round trip for your css (Q: has this
               | changed? A: no), which might or might not transfer more
               | data than your embedded css anyway.
        
           | fsociety wrote:
           | How does that make the website better though?
        
             | Kaze404 wrote:
             | I don't know. You'll have to ask the people who made it.
        
           | treve wrote:
           | The issue you're describing only happens when JavaScriptis
           | used to render the CSS.
        
             | julianlam wrote:
             | The fact that this needed to be said is concerning.
             | 
             | There's no FOUC if you add a stylesheet to <head>, and it
             | concerns me that people seeing that flash have come to
             | expect it as a fault of CSS, when it's really these
             | frameworks making a decision to load the stylesheet via
             | javascript.
        
               | agraddy wrote:
               | I completely agree. I'm promoting a concept called TACE
               | to get back to the principles of the web that were being
               | promoted between 2000-2010. I've realized that a lot of
               | web developers these days don't understand the basic
               | principles of HTML, CSS, and JS because they initially
               | learned web development using a Javascript framework.
               | 
               | https://www.agraddy.com/introducing-tace
        
               | Kaze404 wrote:
               | I feel like this is an overblown reaction to a single
               | person getting something wrong in the internet? It's not
               | really concerning that not everyone knows everything with
               | a 100% degree of certainty.
        
               | josephcsible wrote:
               | Why is seeing plain text before the stylesheet is loaded
               | considered to be worse than seeing nothing at all before
               | the stylesheet is loaded?
        
               | egypturnash wrote:
               | reflow while you're trying to read something sucks
        
           | tyingq wrote:
           | Perhaps, though I thought the net benefit of newer http
           | protocols was to make that second request very lightweight.
           | Then it's also cached if they visit a second page on the
           | blog.
        
             | datalopers wrote:
             | It's text and is transmitted gzipped. This is as close to a
             | non-issue as I can think of.
        
               | tyingq wrote:
               | Normally, yes, but the sales pitch is "no stylesheets" +
               | "fast", etc. So it becomes a topic of interest.
        
           | butz wrote:
           | One might argue, that inline CSS cannot be cached by browser
           | and are loaded with each HTTP document, thus increasing total
           | download size. And using HTTP/2 making additional requests
           | ain't such a big problem anymore.
           | 
           | All in all I think developers have considered all options and
           | chose the best solution for their particular use case.
        
             | quest88 wrote:
             | The browser can cache the http page too!
        
               | gbear605 wrote:
               | True, but they can't cache a portion of the page that
               | happens to be shared across every page on the website. If
               | I go to a dozen different pages on the site, any in-http-
               | page styles will be loaded a dozen times, while a
               | separate style sheet will only be loaded once.
        
               | onlyrealcuzzo wrote:
               | True but blogs are not Facebook. People generally don't
               | visit thousands of pages. 1 visit and bounce is very
               | common for blogs.
        
               | josephg wrote:
               | Visiting 1 article then bouncing is the most common
               | pattern for blogs by a long way.
               | 
               | Also the amount of time taken to download a CSS file is
               | usually much less than the round trip time for requesting
               | the file. Especially in the p90/p99 end of the latency
               | distribution. Here in Australia, I can download a 10kb
               | css file in less than 1ms. But simply requesting that CSS
               | file from America will take 200ms.
               | 
               | For a blog, inlining the css is absolutely the way to go.
               | Especially if the css is small (which it should be!).
        
             | chrismorgan wrote:
             | If the stylesheet is less than a few kilobytes, it will
             | generally be faster to inline it even for subsequent page
             | views with an immutable cache header. Caches and separation
             | into external files still aren't free.
             | 
             | One other thing that is almost always overlooked is that
             | you don't tend to use all styles on a given page, and you
             | could strip out the unused styles. For example, the front
             | page linked here has over 4KB of stylesheet, unminified and
             | with unused styles; minified, it's 3KB; with unused styles
             | removed (including the wonky body:hover), it's about 662
             | bytes. Something in the vicinity of 1KB is for specific
             | pages, and 1KB for editing (form fields and such). If you
             | try actively minimising the front page (removing
             | unnecessary whitespace and attribute quotation marks,
             | minifying and paring the stylesheet, and removing a few
             | pointless elements), the whole thing ends up under 3.4KiB
             | (down from 7.8KiB).
             | 
             | (Mind you, most browsers can do some degree of intra-
             | session sharing of an in-memory representation of a
             | stylesheet, for performance and memory usage reasons, and
             | doing this _will_ thwart that. But that's only likely to
             | make things faster over inlining if you've got much heavier
             | styles, dozens or hundreds of kilobytes, the sort that you
             | wouldn't be so likely to inline anyway.)
             | 
             | As for the "making additional requests thing": you still
             | have to remember _latency_ , because you're adding another
             | whole round trip to the waterfall. In the case of
             | bearblog.dev which is hosted somewhere on the other side of
             | the world from me (I'm in Australia), that will add an
             | absolute minimum of over 260ms, more commonly half a second
             | or more. Inlining of small resources like this when you
             | have a very short waterfall already significantly improves
             | load performance. The HTTP/2 and HTTP/3 improvements are
             | about requesting more than just a couple of resources: in a
             | case like this if you had one HTML and one CSS resource
             | from the same host, HTTP/2 would not improve anything over
             | HTTP/1.1.
        
             | Kaze404 wrote:
             | Great points. I completely forgot about HTTP/2, thank you.
        
         | [deleted]
        
       | muglug wrote:
       | The easiest part of a blog is figuring out a hosting platform (or
       | building it yourself). I have spent many (fruitful) hours down
       | rabbit holes.
       | 
       | The hardest part of a blog is actually filling it with compelling
       | content -- research, writing and editing.
        
         | amelius wrote:
         | This is like how many PhD students spend 80% of their time
         | learning LaTeX and only 20% on thinking what to write.
        
       | indymike wrote:
       | No stylesheets is untrue. There is a <style> tag in the head that
       | contains a stylesheet.
        
         | akmittal wrote:
         | I think they mean no user customized stylesheets.
        
           | tyingq wrote:
           | It seems to have user customized stylesheets:
           | 
           | https://github.com/HermanMartinus/bearblog/issues/152
        
       | numlock86 wrote:
       | > no stylesheets
       | 
       | > uses stylesheets anyway
       | 
       | I don't get this part.
        
       | Barrera wrote:
       | I like the idea, but to echo another comment, the hardest part of
       | running a blog is not selecting the blogging engine or how to
       | host it. The hardest part is keeping new posts flowing through
       | the engine.
       | 
       | What blogging platforms focus on this side of things? Which ones
       | help solve the "What do I write next?" problem?
        
         | hypertele-Xii wrote:
         | If you have nothing to write about, you should not write; Not
         | write about nothing.
         | 
         | You should write about nothing though, it's a good writing
         | exercise. Just maybe don't publish it? Publish what you write
         | _after that,_ when you _know_ what to write about.
        
       | drakonka wrote:
       | This looks really cool. No reason to switch from my self-hosted
       | Hugo setup, but if I was just starting out with blogging I'd be
       | happy to have this available vs the bloated Wordpress site I
       | started out with in the beginning.
        
       | janandonly wrote:
       | Previous post: https://news.ycombinator.com/item?id=23312339
        
       | orliesaurus wrote:
       | I use bearblog for my .dev website [1]. It's a one pager and
       | works great for me.
       | 
       | I inject some CSS to make it work for me, i.e. fonts - and simple
       | colors and I removed most of the "extra" pages because I wanted
       | to keep it as a one pager. It's a great platform and I wish there
       | was a version where I could self host it like `hexo.js`
       | 
       | Thanks for your work herman!
       | 
       | [1] orlie.dev - Currently using it behind Cloudflare!
        
       | bearzdev wrote:
       | I can't bear the contradictions.
       | 
       | - "No trackers, no javascript, no stylesheets" - inline js. -
       | inline stylesheets. - uses favicon which can be used for
       | tracking. - not self hosted. - requires an account to sign up -
       | "TOS" > "Bear may disclose personally identifiable information
       | under special circumstances, such as to comply with subpoenas or
       | when your actions violate the Terms of Service." - can't be
       | bothered to indent the html. - payment system could require real
       | identity.
        
         | SkyMarshal wrote:
         | Fyi, HN uses a limited version of markdown which doesn't
         | recognize standard markdown list syntax. If you want to make a
         | bullet list, you have to put blank lines between each bullet
         | point, like this:
         | 
         | ----
         | 
         | - "No trackers, no javascript, no stylesheets"
         | 
         | - inline js.
         | 
         | - inline stylesheets.
         | 
         | - uses favicon which can be used for tracking.
         | 
         | - not self hosted.
         | 
         | - requires an account to sign up
         | 
         | - "TOS" > "Bear may disclose personally identifiable
         | information under special circumstances, such as to comply with
         | subpoenas or when your actions violate the Terms of Service."
         | 
         | - can't be bothered to indent the html.
         | 
         | - payment system could require real identity
        
           | bearzdev wrote:
           | Thanks for taking the time to provide this.
        
           | chrismorgan wrote:
           | Please don't say HN uses any form of Markdown. It's its own
           | thing entirely with absolutely no foundation in Markdown--the
           | only points of _any_ similarity between Markdown and HN
           | comment formatting predate both by multiple decades. HN's
           | formatting gives you paragraph breaks (by blank lines),
           | linkification (with no delimiter, _unlike_ stock Markdown
           | which requires angle brackets, to the surprise of many),
           | monospaced blocks (by two space indentation), italics (with
           | asterisk delimiter), backslash escaping for asterisks, and
           | that's _all_. Every element of this, or a very slight
           | variant, has been common in lightweight markdown languages
           | since before Markdown, and all but the backslash escaping and
           | hyperlinks (which hadn't been invented yet!) have been in
           | conventional use in communication since well before the web
           | (and match some typewriter conventions from before the
           | invention of _computers_ ).
           | 
           | Markdown is not the only game in town. Yes, for now it's the
           | dominant lightweight markup language (more's the pity--it's a
           | right mess, thoroughly unsound and inconsistent in a great
           | many ways), but a lot of stuff exists beyond its horizons;
           | it's only an instance of LMLs, not the whole class.
        
         | jer0me wrote:
         | The favicon is actually a URL-encoded SVG with an emoji. It's
         | an open source Django app and can be self hosted.
        
         | IshKebab wrote:
         | How do you expect them to _not_ comply with subpoenas? Or
         | collect payment without a real identity.
         | 
         | As far as I understand bitcoin is mostly useless for actual
         | payment these days.
        
           | bearzdev wrote:
           | If an organization or person is selling a product focused on
           | privacy and there is a TOS that focuses on the org or person
           | avoiding liability but lacks documentation or links to
           | resources to help users to lower their liability and increase
           | privacy, its a red flag to me.
           | 
           | Their servers are located in the Netherlands. Its good that
           | they list that. It would be better to hoist information into
           | something that is less policy/legal oriented and perhaps
           | provide an overview of the laws of that region.
           | 
           | Other things that should be listed is how is the data stored,
           | transferred, how is it protected, are there any steps to
           | anonymize the data, hash the data, or provide a way to bring
           | your on key for data encryption.
           | 
           | Is there any telemetry gathered or stored by the server? Is
           | the code in the github project the same that is deployed in
           | production or is there a private repo that augments the code?
        
           | SkyMarshal wrote:
           | Bitcoin works fine for payments, just hope you didn't put
           | your life savings into it at the top of the bubble.
        
         | popcorncowboy wrote:
         | I suspect what he _means_ is  "this is a safe space" in
         | contrast to the open/hostile internet "out there", i.e. there
         | is no nefarious intent. As you point out, this is really mostly
         | virtue signalling (and probably well-meant). The fact that
         | _actually_ there is JS, there are trackable signals, your PII
         | can and will be disclosed etc is sorta beside the point of
         | sites like this.
        
       | trykondev wrote:
       | The simplicity of this is awesome. I've vaguely wanted to start
       | blogging for many years, but suffered from analysis paralysis on
       | where/how to get started. This was so simple -- took me less than
       | 2 minutes to get set up and start writing. Thanks for making
       | this!
        
       | johndhi wrote:
       | I needed a blogging platform for my hyper simple website and I
       | may have found it.
       | 
       | Was annoyed I'd have to pay to have a custom domain but seeing
       | it's a one time payment and not a subscription, I am probably on
       | board.
       | 
       | Personally the minimalism is what drew me more than privacy
       | stuff.
        
       | hownottowrite wrote:
       | The privacy-first platform that cannot be self-hosted. So many
       | contradictions.
        
         | Stampo00 wrote:
         | Maybe not directly, but if you like the style, you have some
         | options: https://github.com/HermanMartinus/bearblog/#can-bear-
         | blog-be...
        
           | hownottowrite wrote:
           | What style?
        
             | Stampo00 wrote:
             | If you like the style of the blog, there's a theme
             | available for Hugo and a Go-based clone available for self-
             | hosting. Links in the project README.
        
             | [deleted]
        
       | tarr11 wrote:
       | Not quite a blog, but Obsidian Publish has been scratching the
       | "easy publish" itch for me.
       | 
       | https://obsidian.md/publish
        
         | awestroke wrote:
         | 20 usd per month, that's bizarre
        
           | selykg wrote:
           | Yea, their stuff is so dang expensive. I really don't know
           | how they are able to charge so much.
        
       | julianlam wrote:
       | I ended up building my own blog hosted atop Github Gist. It's
       | pretty quick once the data is cached, and uses almost no
       | resources.
       | 
       | https://devnull.land/github-gist-blog
       | 
       | I only feel sort of bad that I basically use Gist as my data
       | store.
        
         | staindk wrote:
         | Why not host it for free through Github Pages? They only host
         | static sites so it's technically quite different to your
         | blog... but if you are only going to be blogging it may as well
         | be a static site IMO.
         | 
         | Edit: I do like how neat it sounds to just query a user's
         | public Gists though.
         | 
         | https://pages.github.com/
        
           | julianlam wrote:
           | I opted not to use GH pages because I wanted to stay open to
           | the possibility of adding some dynamic elements (e.g.
           | comments integration)
        
             | staindk wrote:
             | Ah that's fair enough.
             | 
             | I've actually been thinking about different ways of adding
             | exactly that to a static site - technically you could have
             | something like a comments form that just writes to a text
             | file somewhere (perhaps updating a Gist with the API you
             | mentioned[1]), which the static site reads from upon page
             | reload.
             | 
             | Sounds a bit inelegant I guess, but could be interesting to
             | implement.
             | 
             | [1] https://docs.github.com/en/rest/gists/gists#update-a-
             | gist
        
               | lmas wrote:
               | I've encountered https://github.com/utterance/utterances,
               | which relies on github issues for providing a blog
               | comments system of a sort.
               | 
               | Alternatively there's https://github.com/giscus/giscus,
               | which instead uses github discussions.
               | 
               | Haven't used either so can't comment (heh) on their
               | "performance".
        
               | staindk wrote:
               | Ha, wow those are both great, thanks for the links!
        
       | sureglymop wrote:
       | Well.. can i self host it?
        
       | podviaznikov wrote:
       | http://montaigne.io - made this one for myself. Just publishes
       | website from Apple Notes. Every time time I update note on my
       | laptop or iPhone the site is updated automatically.
        
         | janandonly wrote:
         | That sounds extremely useful.
         | 
         | Is it possible for others to use this as well ?
        
           | podviaznikov wrote:
           | It's still early stages. So I have like 5 sites build with it
           | so far. Eg my personal site https://podviaznikov.com
           | 
           | But try to signup. It should work for other people too now.
           | It just not polished yet.
        
       | recroad wrote:
       | I actually am looking to migrate raptorsrepublic.com off
       | Wordpress to something simpler, but the lack of Home Page
       | customization makes this a no-go.
        
       ___________________________________________________________________
       (page generated 2022-07-17 23:00 UTC)