[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)