I had a self-hosted WordPress blog from 2006-2010, but security updates become a burden, especially since I had to modify the WP source code a little to do exactly what I wanted with the RSS feeds.
After a few years of not blogging at all, I decided to use the simplest possible "system", which is writing blog posts in raw HTML in a text editor, as well as writing the RSS feed in raw XML in a text editor. It's not pretty, but it's zero maintenance. I've been doing that for 10 years now, and I don't think I'd ever go back to a third-party dependency.
I should mention my other motivation: occasionally one of my blog posts will get massive traffic, such as #1 HN, or getting linked by the tech media. In cases like these, static HTML files are great. My website never gets overwhelmed and becomes unresponsive from the load, even though it's just on a little shared hosted server.
Wait... You don't use an IDE taking up 2GB of RAM to write posts in "plain text" using a random flavor of Markdown, with custom extensions only supported by a single blog generator, and then use the command line to call 250MB worth of Node libraries which creates an AST from the barely parsable text file, all to then generate a basic static HTML file?
I was pleasantly surprised to learn writing raw html is not difficult, at all. I am not doing Rocket Science, though.
As others say, static site generators introduce a layer of abstraction. I like writing in markdown too, but if I really cared to, I could write my own scripts to translate. However, I found that html does not introduce undue overhead.
I am sure I could churn out content more quickly if I were writing in markdown, but at what cost? There is a cost to writing _too_ quickly. Myself, I find I actually like a little friction.
I had a similar feeling about markdown but I went a different direction and wrote a little package that parses markdown with front matter into html and saves it inside an in memory SQLite database. It runs quickly enough that it can hot reload anytime you save while it watches your blog posts directory. Gives you full text search and it exposes the database directly from the package so you can basically hook it up to anything.
I’m still ironing out the kinks, but it made blogging way more pleasant for me, after trying a few other things and being unimpressed overall.
That sounds really cool, thanks for sharing. It may well be that I'll eventually reach, or gradually approach, a footprint with my site files that rewards putting in place some layer of tooling along these lines.
But I like to think that, when that time comes, I will be the author of that tooling. As it sounds you are. Kudos!
Until CommonMark there were a large number of ambiguities for which there was little alignment. Base Markdown is such an anemic format that it requires extensions to be useful to more forms of writing.
Along these lines...I'm surprised the HN crowd isn't into blogging in markdown, published in a git repo. About as simple as it gets and you don't get tied to a single platform. You could key sign it to ensure authenticity for when somebody rehosts it or whatever.
I used to write raw HTML, but have since come up with my own markup system [1]. The posts themselves are still stored in HTML because I don't want to get stuck with a sub-optimal markup language. By storing the rendered HTML, I can change how the markup language works (and I have).
The blog engine itself [2] is one I wrote starting back in 1999, and still in use. It works, does exactly what I want, so there's no reason to change it. And to see it in action: <https://boston.conman.org/>.
Fellow raw HTML writer chiming in. My hand-built little web app for blogging broke maybe five years ago with some OS X update, and I have been too lazy to fix it.
Also a raw HTML writer, but I’ve been considering the SSG route to make site updates (global nav changes, redesigns, etc.) manageable. You seem to have some method of handling this on your site, given that I can view a page of posts from 10 years ago and still see links to this year’s posts. How are you doing that with raw HTML? (If this question doesn’t make it clear, I am quite amateur.)
I had a PHP script that did this for a while — I would write the post itself by hand, then put it into a database; the PHP script would regenerate the site locally and take care of things like nav links; then I would rsync the static output to the web server. Once I figure out how to get it all running on the latest OS X again I'll use it again; I'm a big fan of this kind of setup. I'm sorry that I don't have specific tools to recommend for it.
Why add another layer? Right now the only tool he needs is an editor. That's it. Can't get any simpler than that. He also probably has a set of templates by now.
At the end of the day the drudgery they are doing is writing the post, something they'd have to do anyway on a static site generator. Writing the raw html likely takes no friction at all, since they are probably copying and pasting some template or at this point know all the tags they use by heart so its no harder than a more abstract method.
Comparing the complexity of operating and maintaining a SSG to using a simple text editor is just about the most HN comment I've ever read. My blog is written with Gatsby (which I use as a SSG), and about once per year I have to dedicate and entire weekend to troubleshoot because I can no longer run the SSG due to changes in the Node/npm ecosystem. There is absolutely no corollary to using a text editor. Literally nobody will have to spend a weekend figuring out "what do I have to do to get notepad to open a .html file with today's technology". Nobody! Notepad just opens the .html file, just like it opened the same file a year ago, or 10 years ago. No need to burn weekends over opening a file!
You can drop in whatever text editor you like though. It's only a dependency like saying a keyboard is a dependency to writing code. There will always be new editors or you can use a 40 year old one just fine too. Can't say the same about the static site generator though, maybe your setup works when you swap one generator for another maybe it doesn't.
Oh my goodness, I just looked through your submission history to find your website, clicked through to a random page, and I was blown away by how fast the page loaded. I love it.
I’m becoming a bit disenchanted with new things in general. This website is a perfect example of how needlessly complicated most other websites have become.
Imagine how pleasant browsing the internet would be if most sites were like this?
I’m starting to think tech in general is 1% signal and 99% noise…
the other thing you get is information density, I can see posts back till midway last year.... on my large monitor on many sites, you can be luck to see the last 3. Scrolling, I can quickly see 10 years of posts. Fantastic
Same here, I really can’t be bothered with SSGs or something like WP. I don’t even really bother with how my website looks, it’s as plain of HTML as you could get.
I did something similar but used wiki syntax with a handful of extensions. The source content was stored in a specific directory layout/scheme and the site code generated the page hierarchy from that, storing it in an adjacent cache dir. Coming from a sysadmin background, it seemed very natural and easy to manage. Definitely the way to go.
One day I'll clean it up and offload it to github for others who are like-minded.
This sounds almost exactly like something I whipped up in the early 2000s [1]. Each post was its own directory (so I could just drop images in), and it used file system metadata for dates. It was based on Bash, ImageMagick, sed, m4, head, tr, and... XSLT (I swear it seemed like a good idea at the time!).
Believe it or not, the tool actually even worked with Cygwin after I switched to Windows (on my very first laptop).
Could you explain how do you do it? I really want to have a blog but I don't want to fuck with wordpress and all that I know is a little bit of html, python and sql.
<head>
<title>Title</title>
</head>
<body>
<p><b>2023.02.20</b></p>
<p>This is the first paragraph.</p>
<p>This is the second.</p>
</body>
Save that as "blogpost.htm" somewhere a web server can see it.
Add stylesheets and so on as you get more comfortable, but it really is that simple. All that matters in the long run is what you put between the <p> tags.
Wow, I didn't expect so much interest in my comment!
I should start by saying that I'm not averse to a little "manual labor". I know a lot of people feel compelled to automate everything, and if you're like that, then you wouldn't like my methods at all. ;-)
Whenever I want to write a new blog post, I create one from an HTML template that already has a style sheet, header, footer, and other structured info.
All of my blog posts are listed reverse chronologically in a table in the "index.html" file. I just have to create a new table row for the new blog post at the top and fill in the date, filename, and title.
I can preview the blog post in a web browser while I'm writing it, and BBEdit accepts drag and drop of images files, automatically creating img elements.
I also have a template for the RSS feed entries. I use the Atom format FWIW. Each entry has a section where I can copy and paste the HTML from the blog post into the RSS feed:
I use the W3C feed validation service to check the RSS syntax, and I also subscribe to the local copy of the RSS feed file in my RSS reader app. https://validator.w3.org/feed/
That's about it! My system has become slightly more sophisticated over the years. When I started blogging this way, it was even more primitive. The whole point was to just start blogging, and not worry about my blogging system. It seems that worrying about the blogging system stops a lot of people from blogging in the first place.
> It seems that worrying about the blogging system stops a lot of people from blogging in the first place.
I couldn’t agree more, and I’ve been a victim of it myself. This is why I like zero-config setups now. Choosing themes is the most attractive nuisance ever…
1. What you use or wherever you host, make sure that you can export your content in either plain text or a universal format that can be used by another tool or host it yourself. In short, own the content and use whatever tool it fits your current situations and limitations.
2. Possibly, try to get a domain of your own, and preferably a `.com`. Point that to whichever server you use (if they don't allow you to point, that is a net negative). Keep pointing to the services that you keep moving as they keep dying. One day, you might just end up writing in plain HTML and (s)FTP into a folder.
3. If you are going to use images/audio/video quite a tad more than usual -- start using a CDN (pretty cheap and some are free these days). If those are hosted on https://cdn.mydomain.com, you can move your content wherever you want and those images, audio, video just works. I was able to change WordPress hosting providers in minutes because I don't have to move the static assets.
The one thing that drew me to micro blog was that it was a paid service.
But honestly, my blog there is not about “engagement”. I don’t really care if anyone reads it. It’s more of a personal journal to blog about the multi year, “hybrid digital nomad” life we started last year.
Seems like the biggest limiting factor for Hugo, Jekyll, and other SSGs is the need for a CDN for most images. Are there any free CDN services that are worthwhile?
Lots of good options, but what in your opinion would make .net or .org a better choice than .com ?
While perhaps not as pervasive as during the 1990s, I still feel like most people are more familiar with / assume / default to ".com" than any of the others.
CIRA's privacy policy is one of the reasons why I've stayed with .ca for my digital presence:
> The registrant name and administrative and technical contact information of non-individual registrants, such as corporations, is displayed by default. The registrant name and administrative and technical contact information of individuals, such as Canadian citizens or permanent residents is not displayed in WHOIS per the CIRA Privacy Policy. Generally non-individuals are public and individuals are private.
"Free domain privacy, forever", in GoDaddy's wording, seems fairly standard now. But really it's a spin: Since 2018, domain privacy is required by EU's GDPR in many instances. But pre-GDPR it was frequently an add-on, demanding additional payment. IIRC, there are some domains for which it is not available.
CA domains have had a privacy default for individuals since 2008. As someone who's received personal threats as a result of WHOIS info, I'd rather stick with the more certain option.
There's a problem with a national domain: people move. My .me domain is registered in 2009 (well, I know that it's a national domain) and I lived in three different countries since then with a permanent status in the current one and without plans to come back to my homeland.
.systems wasn't one of the most affordable new gTLDs used for spamming but a lot of mail sites blocked or at least increased "SPAM score" for most if not all new gTLDs.
With .systems I would expect somewhat reduced inbox deliverability but with .icu, .xyz, .top, .live and similar, you can forget about egress email.
For the combination of Hugo and GitHub Pages, images are pretty effortless as well. For example, for a post with a path of `content/posts/post-title.md`:
1. Add the image at `content/posts/post-title/image-name.png`
2. Add markdown that references it, like `![alt-text](image-name.png)`
Part of the reason I use Hugo is because it's so low friction — the hard part is the writing (and writing consistently), and keeping everything else easy is key.
Well, true, but:
1. You might want to resize image if it's a photo
2. You might prefer a CMS to a plain code editor and then you need to use its uploader (both Forestry and NetlifyCMS aren't very seamless)
3. Try doing that on mobile
Netlify CMS is dead[1] after the core dev left the company, Forestry is also officially dead as of April this year. Netlify CMS got forked into StaticCMS and the team behind Forestry have created TinaCMS. After experimenting with both last week, I recommend the latter if you're building a blog with Astro and want a Git based CMS.
TIL. There's a bug with the text editor where cursor will jump towards the last line. Really annoying and I think it's still not being fixed yet. Had to scour through Github issue to find the fix.
From its repo: "Pagefind runs after any static site generator and automatically indexes the built static files. Pagefind then outputs a static search bundle to your website, and exposes a JavaScript search API that can be used anywhere on your site."
I don’t want to force JavaScript onto my users and wrote my own full-text search for Hugo that is skinned with your Hugo theme for a seamless look (only the URL changes):
I'm not familiar with Jekyll, but if I recall correctly it's very, very similar. I just happened to pick Hugo at the start and haven't revisited the decision since, as it's tangential to the actual writing.
Hugo is much faster thanks to the fact it's written in Go. The approach by itself is the same. Also, seems to have one of the most active communities among blog-focused static generators.
I found that Hugo requires a shift in asset organization in the sense that assets are collocated with posts. If your post has three images, those images are in the same directory as the post markdown.
Jekyll keeps assets separated. Your posts live in _posts. Your static assets live together in a different directory.
I briefly experimented with switching from Jekyll to Hugo, but had too much invested—custom plugins and reliance on existing Jekyll plugins—in the Jekyll ecosystem to make the switch worthwhile.
Really weird that a very obvious choice, Medium, did not make the cut. I'm quite aware of how unpopular it is here on HN, but that's mostly a meme.
It doesn't cost anything and there's no ads. Even linking your domain to it used to be free (sadly no longer true). It has a very decent writing experience and the out of the box design is simple but effective. It has a reasonable amount of customization. It has wide support for apps.
It's part of a network so you get functionality like claps, a comment system, followers, the like. Blogging with a "social network" built-in. It has newsletter support.
I think that's a sweet deal for such low (or even zero) costs. Ultimately I'd think your writing is what the value of your blog is, not the behind-the-scenes technical tinkering. Unless that really is your thing.
Should you be paranoid about Medium going under, there's an export option.
Note that I'm the kind of person that wrote my own blogging software in the early 2000s. Tinkered and managed it that way for well over a decade.
I've given up on it. It's time wasted. Nobody cares about your blog design, it's hard enough for anybody to care about the actual text in today's landscape. Hence, pick your battles, keep it simple.
I feel like a lot of people here have moved from medium to sub stack. Also medium just sort of naturally gatekeeps your articles by eventually forcing potential readers to login to medium.
I agree. Some time back I just stopped clicking a link if it was to Medium. Maybe they've changed their practices but because of that past experience I wouldn't know and as a result don't read content that's on Medium.
It's not even in their list of things on might have done in the past, they seem to not regard anything other than self-hosting as a blog, which seems a bit archaic. Building a blog shouldn't be about learning a new framework it should be about writing
The parent is probably talking about the medium paywall, which is usually bypassed by getting it archived on the internet archive. The archive link to the post is preferable to the medium link to the post, at least for me.
I honestly think starting a blog in 2023 is exactly as easy as it was 2004 (the year he references), if you take the easiest route:
1. You pick a cheap shared hoster
2. You buy a domain and connect it
3. You download a PHP blog system, like Wordpress
4. You unpack the files into the webroot, configure the database (or use a blog system that supports sqlite, like Serendipity [which I develop for])
5. Pick a theme, install a minimal amount of plugins. Optionally customize the theme a bit.
6. Done.
Sure, going with a hosted offering looks easier, but you still have to manage things like your domain, interoperability and backups, so hosting it on your own gets easier very fast.
None of that is necessary. Nowadays common consumer web hosts allow you to install Wordpress with a click. Actually most of them provide specialized WordPress hosting that comes with WP preinstalled and with a lot of optimization. (most of them are managed).
Hm - Okay, you have a point there. My preferred hoster does not offer this, but many do, and if you don't want to go with a lesser known option that really is even easier. So the old way of hosting it with a shared hoster did improve, nice :)
I do this, but without the database. I chose Grav[0] because of its flat-fileness, but at the same time I did not want a build process (I mean, why? why do I need to rebuild my blog every time I post?)
Put it behind a CloudFlare free tier. Been happy forever after.
I'm inclined to agree that Grav is a good choice, but it still has the exact same fault as other software out there, notably updates sometimes randomly breaking things in odd ways: https://blog.kronis.dev/everything%20is%20broken/grav-is-bro... (note: typically you shouldn't run software updates inside of containers due to their immutable nature and instead just run a newer version of the container, but if you're working with persistent volumes then there's also really nothing preventing you from doing so)
Of course, if you don't update it, you'll eventually run into security related issues, which is more or less inevitable whenever you expose anything with write access (even when it is technically protected by an username and password; our industry still keeps getting basic things wrong all the time), as opposed to fully static assets: https://blog.kronis.dev/everything%20is%20broken/grav-securi...
Personally, I will probably keep using Grav for the foreseeable future, maybe even some day carry over the theme customizations that I use as well as all of my content to a more recent version, but for now I'm stuck on a comparatively old version that's thankfully a bit locked down at the web server level. Don't get me the wrong way, WordPress will be even worse in regards to both updates and security, I've seen entire sites be brought down because of a single plugin needing an update that's no longer compatible with something else.
I don’t know if you can still do this, but you used to be able to create public folders on Dropbox. Dave Winer ran a bunch of experiments serving a blog from a public Dropbox folder and IIRC, it worked great.
If you are already paying for cloud storage somewhere, you might be able to start by saving your writing to a public folder. Instant blog.
No, sadly Dropbox shut that down many years ago. First the ability to host from there, then the concept of public folders in general (they are behind an UI now).
Twitter is no blog. And with both you then later have to fight with the login/paywall. That's exactly what I meant: Looks easier in the beginning, but isn't after the very start.
Really interesting. Did you make this? Is there an API to Apple Notes? I've been wanting to programmatically interact with my notes for some time but found it to be a strangely closed ecosystem.
I didn’t, from the docs it looks as if it takes advantage of cloud sharing. I imagine once’s it got the link it scrapes the notes and then uses the data.
Have been running the same blog, on and off, since 2001. It has gone through many iterations, including being nuked and restarted several times, using archive.org as my backup.
The current iteration is optimized around not having it be a source of stress or anxiety for me. Here is my setup:
* I just use self-hosted Wordpress site on a Digital Ocean droplet.
* I made my own theme that strips pretty much everything out: it's one big page with 500+ posts on it, all text. No comments, images, video, anything like that. Minimal markup. Takes less than a second before the page can be interacted with.
* There are no post pages, and no archives (again, just one big page).
* Consequently, you search by pressing cmd-f in your browser, which is so much better than a search widget (and is the main reason I went with this design).
* I make entries whenever I want to, and then queue them up with a plugin that releases 1 post every 4 days, on a schedule. I have 112 posts in the queue, so I could not touch this thing for a year and it would be still running.
* My main goal for the blog is to record things that have happened: diary, commonplace book, repository for movie and book reviews. Not to make money or be a famous thought leader and influencer. I recognize that's not everybody's goal, but with those simplifying assumptions in place, it became super easy to make and maintain a blog.
I wish more documentation sites just loaded a wall of text with page anchors for navigation rather than separate pages. Ctrl-f/cmd-f is the best search engine for documentation
It used to be a week, but then the queue of unpublished articles got to be around 150. I want it to be around a year, but it was more like 3 years, which I thought was just silly.
A lot of expected pessimistic HN comments that seem to miss the point here. I think SSG's are pretty damn good, I use Astro. People seem to think that SSG's forces you to use markdown or something, they don't. It's literally a mechanism where content from somewhere is turned into static pages. You can even use Wordpress and it's API as the source of the content for a SSG.
In my case I use MDX, which is Markdown that allows components (eg React) to be embedded. This is great for interactive content, articles with charts, visualisations, etc.
Thanks for posting! I update that blog post regularly to keep up with all the possibilities. Ironically, I decided to remove the comments from my own blog a few years ago. Comments still reach me, though, mostly via email.
With something like Astro you can use React (or others, even vanilla) components that can either be fully server rendered, or sent to the client. With that you can allow people to post comments. As for how to render them, depends a bit on what you decide. You can either have comments displayed the next time the site is built, or you could have a posted comment trigger a build, or some other similar idea.
There’s also the option to ask someone with skills and expertise to set something up for you.
Which is almost never taken into consideration as an option in this kind of posts.
I don’t think it’s hard to start a blog in 2023. It’s hard to start a blog if you have very strict requirements AND you want to do everything on your own without being a developer/designer.
There’s also the option to ask someone with skills and expertise to set something up for you.
It's an option, but it's a bad option. Setting up and running a blog is not a one off process. For things like Wordpress there are literally security patches. For most other platforms there are updates. Wordpress has auto-update but it can be flaky, especially if the site owner tinkers with things.
If you get someone else to set something up for you it'll either rot, or you'll be pestering them to update it for you.
If you don't have the technical ability to run something just pay for a service instead.
Well yes and there's also countless other options that are not wordpress that require very little maintenance.
And you can also simply ask someone every year or so to perform some basic maintenance on your site like we already do for countless other things in our lives.
> you'll be pestering them to update it for you.
Am I pestering my mechanic to perform maintenance on my car every year? No it's called work. It's his job.
I almost always use Wordpress for Blogs and sites in general.
Reasons:
If I leave it for 10 years and come back I will know how to maintain it. The tools will exist (especially if WordPress auto upgrades).
If I use some static site gen, I will need to remember all the syntax, use some docker container to run the version I used all that time ago. Even coming back to it after a year can leave me with confusion.
Also WordPress has a brilliant ecosystem of plugins and themes. And if you are worried about security, there are plugins that will pump it out into a static site on S3, if you like, so you can use WordPress to author, and S3 to host.
The WordPress ecosystem can rival most no-code tools too.
Also hosting is ubiquitous, and cheap, and usually simple (open CPanel, hit install new Wordpress Blog).
For example, could you today run a ruby based SSG from 10 years ago? Let's pretend there is a bit of custom code and time invested in it.
I guess you could install a bunch of old versions on Ruby, gems, etc. on your machine too, but docker, or a VM might be easier.
Or you could go through, remember how all the code works and upgrade it to the latest versions of everything to run it. Assuming the SSG du jour 2013 is still maintained :-).
I tried to resurrect a 2 year old NodeJS project and gave up trying to upgrade it to the latest versions, NodeJS people really love their major version changes, and breaking back compat for no real reason.
You don't need docker for that. Also if you leave a WordPress for years with auto-updates, the plugins will often be abandoned causing your site to be vulnerable.Not to mention any breaking changes that can be introduced.
A SSG generated site will be the same in 10 years as its today, even if you might need to fix some things with your project to make further updates.
Reading it again I think his point is that the generated HTML is good enough to spring further work
even if you lose the original tool. I can agree with that.
With wordpress you could export it to HTML as a backup but it is an extra step.
How to start your blog in 2023: start writing. Upload wherever you want on whatever platform you want. You can always change it later.
Content should come first, before worrying about optimizing your static build or tweaking your CSS or moving to Substack or whatever else. That can all be done later when you've found your writing rhythm.
I started my website and blog in 2021. I used Jekyll + github pages with custom domain. I didn't want to setup everything by myself, so I bought a Jekyll theme that I liked and customized it. I did it lazily, so it took me around 1 month to complete the whole process, including copying my old blogposts from Medium.
I just publish via blogger. In the past I have checked other options but I always spend more time looking for interesting ways to deploy content than writing content
One strategy is to just always be blogging about problems you are working on, the audience being you three years from now when you forgot the context and have to solve the problem again. Best case, you now have an interesting blog related to something you have expertise in, worst case, you have a highly useful "lab notebook" for yourself you can always parse. "problems" could be things from work or from your hobbies.
I ran into the exact same issues as the author of this post the other day. I have a static site built on Hugo that I (amateurishly) set up a year or so ago, and would like it to have better support for photos & galleries, but lack the time + skill to implement that.
I spent a late-night research session a few weeks back running through many of the main options they mention only to settle on the conclusion that there wasn't something that had the compromise of features, simplicity, and price that I was looking for.
I didn't check out write.as when I was looking into things though, so maybe that'll be my next failed experiment.
It would be pretty easy to make your own photo gallery in raw html. have photos in a directory you want to link on your server. pick your favorite language, write some code to iterate through that list of files, and generate html pages for each containing the image, a previous hyperlink to go to the page for the last item iterated, and a next hyperlink to go to the next page. Throw in some button graphics and now its as sexy as any other static site generator, and you can now throw the entire codebase on github and put it on your resume and call yourself a webdev. get fancy, make a cron job that looks for new content added to that directory and runs your html generator, now all you do is drag and drop files and the site builds itself.
I came across an editor once where u can drop an image and it will put it in some directory and insert some markdown to link it. That seems like it would be a good choice for a static blog, although I didn’t try it (some Mac OS software from a year or two ago).
I've been running a blog since '99. Started on phpslash, then slashcode, then Drupal for a loonnnnng time. I just recently moved everything to WordPress and I'm finding it mostly ok. It's not designed to do small, simple, easy, plain, but it gets the job done. I agree with this
"The most popular CMS in the world, and yet I just can’t stand its admin page."
There are some things in there I can't stand, but I said the same thing about Drupal and I used that for 15 years or so.
Creator of Bear here. I've actually done a full writeup recently on how Bear is more immune to being discontinued than some of the bigger VC funded platforms. If you're interested I've linked it below.
I use Mataroa the most, and I've used many different solutions, from WordPress, Ghost, Medium, Posterous/Blogger, Movable Type, and Contentful to self-hosted static sites that run on Hugo, Jekyll, or Zola.
Shameless plug but I built a tiny unopinionated static site generator that is great for blogs. No toolchain or anything fancy, I just added RSS support too :) It would be my pleasure if someone wants to try it https://github.com/donuts-are-good/bearclaw
This looks fantastic! I was going to mess about with Picocms but going to try this instead in conjunction with either Caddy or a spare shared hosting I’ve got laying around. And for the composing I will either tack on staticcms, or spin up a fly.io instance of stackedit (which I will push my md’s/edits from there to GitHub and bearclaw). You were trying to keep things simple and here I go trying to complexify it lol..
I’ll try to remember to let you know how it turns out after I get it all going..
oops Sorry about that. I just purchased the domain and stuck it there then promptly fell asleep. I'll remove it for now and then route it to a bearclaw page when I get done working tonight.
Figured something like that. And also for the md files. Just straight up content in there and no frontmatter or anything right? (May not even be a thing for md files, not sure)
Essentially what's happening is it takes your markdown content then converts it to HTML, then it puts the header above and the footer below. Those are held in `./templates` if you want to modify them. You don't have to include anything in your markdown other than the content, if I'm understanding your question correctly.
Also, one thing I'd like to sort out is making the page titles on the pages.html page that it generates not be based on the filename, but on the title of the article so-you-dont-see-stuff-like-this on pages.html.
As of yesterday since I added config variables, I'd like to relocate those to an external file to avoid recompile, and then use those to populate the header so that people don't take time to fill in the config and then still get "Bearclaw Blog" when they fire it up.
I really appreciate the time you're taking to talk this out with me, it's very inspiring and I'm getting lots of ideas. I can't wait to get done with Job 2 today so I can hammer out some of these things :) Thank you
Thanks! I ask myself often when I have ideas if it will maintain the simplicity or make it less out of reach for regular people. Please do let me know if you end up making a blog with it. It'd be cool if I could put a list of examples in the readme so that people can see what others have done with their bearclaw blogs
> a static site is a site with no fancy clicky things, signups, comments, just plain html
Technically I think you can have comments via some embedded widget. Each page is still static, but there's a script tag in there that embeds a widget into the page that gives you commenting, usually via some SaaS
I think Disqus was the big one for a while. There was one I saw recently that uses github as the auth provider, which was interesting
I have been thinking about the comments feature. It's like peas and carrots having comments on a blog. I have almost added them before, but didn't for fear it would sacrifice any of the simplicity - which led me to think about modules/plugins. I like the idea of plopping down a folder or zip that the Bearclaw binary then reads and incorporates. Maybe that's feasible, maybe it's not.
I'm going on a walk in a little bit and will give thought to a plugin system. Any ideas you have in mind?
I have now added plugin support. This week I will write some sample plugins and then make a gallery for people to see them. Thanks for the inspiration!
Totally agree on the seemingly unnecessary overhead. Just recently I was looking into platforms for starting a blog and was overwhelmed with the choices of which none really had a complete set of offerings. Having a feature comparison table or a guide for choosing the best service/platform for individual use cases would be nice.
In the end, I chose Ghost's lowest tier. While it is limited regarding the theme choices, I've found that you can customize the free standard themes via their code injection feature[1].
Ghost is also what I always recommend. With WordPress and Jekyll/Hugo, you'll fuck around with site setup way more than actually writing. Ghost is basically only good for actually writing. Pick a theme (plenty of them for ~$50, write. That's it.
Customizing themes is also super simple in my opinion, though I've never tried their shared hosting and am unfamiliar with limitations that come from that.
I think the problem with customizing Ghost themes is that you actually have to tinker with their code, most don't really have settings at the scale WordPress themes used to have.
But yeah, that's why I said that if you're OK with the workflow Ghost provides and at least one theme you should probably use it.
> Running your own blog in 2023 is still needlessly complicated, especially if you have any kind of taste.
Aside from taste being subjective, most of the tools mentioned are customizable. That is, you can tweak the markup and CSS to your own taste.
The post starts being concerned about aesthetics but then finishes with:
"Having the right tool certainly helps, but at the end of the day, what matters is what you write there. Focus more on the content and just ensure the process of writing and posting is simple enough."
Finally, time is money. Spending an added hour (or two) with a build process (or whatever) isn't savings at all. If Goal #1 is to publish then anything that gets in the way should be avoided.
There are some solid points made, but the argument is inconsistent.
But fine-tuning these blogs or themes is actually the complicated part. That's what I had to do. But I know a bit of coding and wanted to try. Not a great option for regular people.
And it'd foolish not to say that at the end of the day writing is more important than having a blog that's just beautiful.
There's one niche option I haven't covered there called [Aegea](https://blogengine.me/), which looks good out of the box, but I can't really recommend it based on the way the author develops it: no roadmap, no community feedback, basically no support, yet has paid features.
Many people (including me) use static generation with a fancy build process because we find it fun, not to save time or money.
I honestly find it more fun to setup my blog than writing content for it... Which might be a problem. (And also explain all the blog posts describing a complex setup).
Do any of these platforms provide additional discoverability? I occasionally publish articles, usually of the technical "how-to" variety with a focus on areas that aren't already widely documented. To date I have published these on Medium because if you publish via an established publication like Towards Data Science your articles can get decent reach without much effort. I'd ideally like to move away from Medium but as I am not well-known, without an established platform to provide visibility (or a lot of self-promotion) the reality is that no one would read my articles.
That's not necessarily true. I have had success in the past with certain specific articles ranking high on google because there wasn't anything that went into that much detail about a more focused topic. E.g. AWS Cognito. In fact, you could probably document almost anything technical about AWS and get a lot of traffic since their documentation (or lack thereof) is so bad.
I want to start my own blog but the vast number of choices overwhelms me. Deciding between Astro/Hugo/Jekyll right now. Can anyone share their experiences if they have built their blogs using these tools?
I haven't tried Astro, but I moved my blog from Jekyll to Hugo.
I did it because I remember having issues with jekyll installation from time to time, like it suddenly broke out of nowhere, and trying to fix it became a pain.
Then I looked for alternatives and found Hugo, changed the template and installed in all my systems (Windows, Linux, macOS) and it has worked like a charm. Also, the speed boost was super noticeable, like, several times faster.
So if I were to choose again between Jekyll and Hugo, I'd go with Hugo.
Yeah, seems like the way to go here. To get something up and running first and then deciding if a different and shiny tool really would make much of a difference.
Honestly, the overwhelming number of tool choices and themes is the biggest hurdle these days.
I will shamelessly plug my solution: md2blog. You just plop Markdown files into folders and it does the rest, without letting you get distracted by themes.
Edit: addressing the article, md2blog does not support email subscriptions, but it does generate an Atom feed. It also requires using a command line (but the tool is a single binary, so no installation or dependencies to deal with).
I want to do the same and integrate it with my existing hobby e-com website. I was thinking of finding something that just turns markdown into HTML and using that. On the other-hand, a wysiwyg editor would be nice. I have no desire to use something heavy like wordpress or anything that requires a database. My little e-com website has no database backend which i'm kind of proud of :)
edit: on the third hand... i need a place to practice and stay in shape with full stack dev as i'm more of a manager/therapist these days. So maybe something from the ground up is in my future
Exactly my problem. With what you've described, I think Astro + some headless CMS would be the way to go here. I say Astro because having JS is a nice thing and it will let you do things that would require more effort with Jekyll/Hugo. (since you say want to integrate with your existing hobby e-com website)
Plus, it has the added benefit of keeping your front-end skills upto date.
I've been using Jekyll for a nuclear education site for many years, after doing it for even more in just manual text-edited HTML. It's great, and I'm impressed with all the little things I can do with it, such as highlighting the current page in the menu and having little back/forth buttons from page to page. No complaints.
I also use self-hosted WordPress for a hobby blog and like the graphical editor and easy drag drop of images.
I moved from jekyll (to hakyll) to hugo years ago since I found working with Ruby and its libraries slightly annoying and Hugo (packaged as a simple binary) more straightforward to use.
That said, I haven't updated my blog in years, and at this point I'm not sure I still know how to! But the good thing about a static site generator, is it just sits there in S3, costing me just $0.14/month.
I migrated from Jekyll to Astro a few weeks ago. It only took me a few hours to replicate the site, more or less. Here's the website and the post about the experience.
Jekyll is more oldschool. For me, Hugo seems to have a more active community and gets a lot of points for being a static binary (basically never fails and compiles very quickly). Haven't used Astro.
My requirements for a technical blog platform are markdown, math notation, syntax highlighting. I settled on Ghost a while ago but wonder if there are better choices these days.
Running your own blog in 2023 is still needlessly complicated, especially if you have any kind of taste. Social apps and networks are obviously the easiest options, but they’re geared toward vastly different things, and I just don’t trust their longevity. There are many options out there, ranging from WordPress and Ghost to static blogs to managed online platforms and Micro.blog. In fact, none of the options out there seem ideal to me – they range from mediocre to acceptable.
I write pretty frequently and use WordPress. Over the past few years I've felt that it's clunky to just get words out there. I've wanted to move to something simpler but looking at the options like Jekyll or self-hosted Ghost just seems like a different type of work rather than less work.
I want something with a clean, easy to read front end -- that's where WordPress has really struggled, good looking "blog" focused themes.
Want to start a blog? Good news, you already have one.
Yes sir, with my new service you can just type in your Hackernews username and have a fully formed blog launched based off your comments to various posts, all properly dated and archived.
And that’s not all, using the latest and greatest in AI tech, you can have automatically generated hash tags used for categorizing posts.
Why waste time writing a blog from scratch? Have my service build you a full blog today!
I've tried so many of these solutions. These days I am using Notion and generating static site using loconotion.
For me, writing outside Notion has become impossible. Notion AI does a fantastic job fixing my grammar and style. My English has always been less than passable and Notion AI does make it much better. I hope they dont make it very costly when they take it out of alpha.
Shameless plug, but I made Hey Homepage (see bio) and it comes with a blog and microblog functionality. Also rich support for RSS as social media, with a feed reader, your own (photo) feed, and a list of shared links that resembles a webring or blogroll.
The free version has all functionality, but is restricted in storage space and doesn't come with a nice domain name.
Blogging advice from the guy who choose a platform thats about to shut down for his own blog, thats my kind of humor. Just kidding, the actual post is fine but hosting a blog seems to be either a) running a vps incl managing all its updates and security b) trusting a service not to shut down in the next years to come. That sucks.
couldn't agree more with the section about Ghost, their shifted focus is something I've picked up on recently too [0]. I started to dislike their interface more and more when creating/editing posts.
Couple that with the regular "your theme is no longer supported" messages, I got fed up of burning time to keep up with their updates, which offered no benefits to me. I quit and moved to Hugo (using a ghost-to-hugo migration tool [1]).
One thing I value the most is the combination of markdown and latex support, plus mermaid diagrams. It’s very hard to find something that works super well on everything. Right now a customized Hugo with KaTeX is the best solution, but I’m still sad I cannot use MathJAX :((
If you like Cloudflare and want to host a few GB media files (e.g., audio, video...) for free, then you can try microfeed: https://github.com/microfeed/microfeed
I am using https://docusaurus.io in combination with GitHub pages by committing to a personal public GitHub repo and let travis-ci automatically build the site. I am happy.
- My blog lives in a Git repo I host on my own Gitea server.
- I run Working Copy on my iPad to push to/pull from the repo.
- I use iA Writer to edit files in Working Copy.
- Every 5 minutes, a script on my webserver runs `git pull`. If anything changed, it runs `hugo build`, then rsyncs the output to the webroot for my domain.
What I see in iA Writer is my blog’s contents. When I edit those words and `git commit` them in Working Copy, they magically show up on the web a few minutes later.
Needlessly complicated? there’s a thousand ways to start a blog in 2023; sure, your artisanal handcrafted static site generator can handle traffic, but so can my free Substack blog
The hard part is sticking to it; content is truly king
I do an SSG, for me, the hardest part was finding an SSG I liked. I ended up settling on a small one that rarely gets talked about, blogc. It isn't perfect, but I like it.
Can recommend Ghost self-hosted. Really good installation process and fine documentation with a big community around it - hosting with Ghost + Hetzner VPS my blog from my bio.
I quite like hashnode.com, it is kinda like Medium but gives you your content in markdown and has the option to automatically sync it to a git repo when you publish a change.
I had a self-hosted WordPress blog from 2006-2010, but security updates become a burden, especially since I had to modify the WP source code a little to do exactly what I wanted with the RSS feeds.
After a few years of not blogging at all, I decided to use the simplest possible "system", which is writing blog posts in raw HTML in a text editor, as well as writing the RSS feed in raw XML in a text editor. It's not pretty, but it's zero maintenance. I've been doing that for 10 years now, and I don't think I'd ever go back to a third-party dependency.
I should mention my other motivation: occasionally one of my blog posts will get massive traffic, such as #1 HN, or getting linked by the tech media. In cases like these, static HTML files are great. My website never gets overwhelmed and becomes unresponsive from the load, even though it's just on a little shared hosted server.