I've come across
three interesting posts from elsewhere on the
indieweb, their titles (links to follow):
- "What happened to blogging for the hell of it?"
- "Why You Should Write Your Own Static Site Generator"
- "A blog post is a very long and complex search query to find fascinating people and make them route interesting stuff to your inbox"
And for a little variety, two arts and entertainment posts:
- "Buzzfeed, Gawker, and the end of the 2010s"
- "My life in the Telegram Bitcoin scam group chat of ghosts"
There's
a recurring theme of static site generators (SSGs), so I'll start with talking about my own.
Graphics on an SSG
Putting a photo or screenshot or gif on a webpage is easy. Doing more than one can get a little tricky - it's not really a technical challenge (unless you make it one) but more a matter of how to use real estate. Here's a brief history of my SSG's graphics widgets.
It started with a polyptych.
Triptychs are common art presentation styles that can show juxtapositions or - more relevant to me - sequences of frames (though they are almost always cascaded horizontally). Adding these to my early SSG amounted to a width check and placing the images in a table.
Then came the
gallery of thumbnails. Centering and cropping the full images could have been accomplished in javascript and/or aggressive html/css but that's not my thing. Graphics are my thing, so with a little raster work I added the ability to create arbitrary-sized thumbnails for use in gallery widgets.
The initial thumbnailing implementation looked at contrast to automatically hone in on areas of interest. This worked well most of the time but a couple corner cases dicatated that I either use an off-the-shelf algorithm or, what I settled on, use
a simple click + mousewheel to specify thumbnail dimensions when generating a new post. I probably have enough data to train a half-decent machine learning model to do this automatically.
Since the center of a thumbnail is probably the highest area of interest in an image, that center value can be used to crop the shot to a non-thumbnail size. And so
horizontal polyptychs that stretch to the page width became a thing.
New widget
Triptychs are sometimes dictated by the content - e.g. three sequential frames of
Shane on and off his board tells the story. Alternatively, cascaded images is a nice way to show downscaled previews that might or might not interest a reader. Since I'm occasionally a UI guy, I broke it down into
the following use cases:
- "I want to see full res photos of everything on this subject because it interests me and I don't want to open new tabs to see full res." An example would be if there was a gallery of my nephew at a pumpkin patch - I'm in it for all the photos, just show them to me. For this I have the '[+]' slideshow view next to each month (it should probably also be available for each post).
- "I'm reading, but not sold on a subject, maybe something will catch my eye." E.g. I'm reading a post about bonds but the author also has some adorable dog pics, I might click through or I might want to keep reading about investing. Having an unintrustive graphics widget that highlights the best of the content is how I'd accomplish this.
- Finally, "I want to see photos on this subject, but let me see all of them with minimal scrolling". E.g. I'm looking for Halloween costume ideas, the thumbnails aren't detailed enough but the full size images don't have as much information density as something cropped and scaled.
I took the horizontal polyptych widget and made it have rows. There was some greatest common multiple work to get a clean right edge but it wasn't as painful as getting the tiling working in the thumbnail gallery. The rows alternate even/odd so the channels should never line up. Each row can have 2-5 images, favoring 3 and 4 but with a composition that's randomly created through (quick) brute force. And the images can be sequential or randomized.
More good reads
Back in September
I mentioned a couple of entertaining posts from a blog called Read Max. Or Max Read. Or whatever. Well here are two more good posts and then a bonus one from someone who decided web publishing might be fun.
"Buzzfeed, Gawker, and the end of the 2010s"
Max Read |
Buzzfeed and Gawker will be remembered in future movies and TV shows and novels as more than anything as symbols of a more-or-less lost decade, a privacy-flouting, social media-friendly ten years.
|
You know I'm something of a
20-teens cultural commentator myself. This post gave me those 2010s nostalgia feels -
Buzzfeed was the punching bag of internet culture and the Gawker network (mostly io9, Kotaku, Jalopnik, and Consumerist) was a great place for almost-news. To its credit, I guess Buzzfeed briefly had a Pulitzer-winning journalism shop.
Max Read |
But the decade really kicked into gear around 2012, when Facebook, apparently motivated by jealousy over Twitter's popularity among journalists (and specifically the extent to which they were crediting Twitter with the Arab revolutions of 2011), opened up a fire hose of traffic to anyone willing to make their headlines sound like they'd been written by a dog, but a dog who'd been genetically/cybernetically manipulated to have the intelligence of a seventh grader, but was subsequently brain damaged in a lab accident, and was also on coke.
|
"My life in the Telegram Bitcoin scam group chat of ghosts"
Another two things I like:
investing and
scammers getting theirs. I also have some affection for Telegram because
NCD often relays vatnik cope from Telegram channels. So I was naturally enthralled by Max's
synopsis of being invited to a scam investor group.
"What happened to blogging for the hell of it?"
Whiona |
I consulted my friend Startpage.com with the obvious prompt: "blog post ideas."
What I got was a roaring cascade of capitalist buzzword swill:
- 120 profitable blog niche ideas and how to pick the right one (Write what'll make you money!)
- 50+ blog post ideas to drive traffic and increase followers (Get those numbers UP, baby!)
- 60 blog post ideas to fill your content calendar (Gotta push out that ~content~ often enough for the algorithm!)
|
Oh man, this reminded me of
Dr. Jigsaw's SEO tips.
Whiona |
I'm probably saying nothing new to anybody who's been on the blogging scene for some time, but as a newcomer who's just here to write creatively and have fun, it was a stark reminder of how corporate the web has become.
...
I'm sick of everything having to be a hustle now, even something personal like sharing our ramblings with strangers on the internet.
|
Say what you will about being old, it's refreshing to not know anyone who has a hustle or claims to be a sigma anything. On the subject of cynicism, I got to Whiona's post by way of
Hacker News where the comment section was naturally full of snark, blog links, and Kagi
smallweb mentions.
Whiona |
I really want to write about Baldur's Gate 3, how it compares to Bioware titles, and how my personal feelings on said titles have changed over the years-but it would be pretty silly to do so before I've finished Baldur's Gate 3. I'm 100+ hours in now and just barely got inside the city walls!
|
Smallweb, SSG, POSSE, etc.
"What happened to blogging for the hell of it" is a good segue into
some more interesting discussions from HN.
"Why You Should Write Your Own Static Site Generator"
Arne Bahlo |
[Friends talking about upgrading Next.js] made me think about the longevity and robustness of my website and so I decided I don't want to depend on other people's decisions and run after version upgrades I don't care about.
And even if your content is Markdown and media, almost everything around it needs to be updated when switching frameworks-sometimes even when upgrading.
|
Writing a bunch of web publishing code simply to avoid a deprecation rugpull isn't the most convincing of arguments but having hated the transition from
Blogger and
Flickr, I'm on board. It's worth mentioning that those very simple platforms aren't nearly as expansive as the Substacks and Wordpresses.
Arne Bahlo |
After contemplating to build something dynamic2 for search without JavaScript, I decided to stay with a static site. It's faster and you don't have to worry about security or stability. And of course I choose the best programming language on the planet, Rust (my beloved). Wait, come back, this is not a Rust post!
A static site generator mostly needs to do five things:
- Convert markdown to HTML
- Render HTML templates
- Compile CSS
- Generate RSS feeds
- Generate a sitemap
And of these you might not even need the last three. Surely your favourite programming language has a Markdown parser and a templating engine.
|
Arne's recipe makes writing an SSG seem simple and, in it's purest form, it really is that simple. I got by without rss or a sitemap for many years.
Ingesting text and producing html can be solved with a nice, reliable, static library. But if it wasn't obvious from my widget polishing at the top of this post, I prefer a fully-featured SSG.
I wasn't enamoured with some of
the HN commentary.
onli |
Blogs are the worst use case for a ssg and you should focus on writing first. It's the articles that make or break a blog, and you might actually want the comforts of a dynamic blog engine. Plus comments, trackbacks and pingbacks, so it is a real blog.
Where static site generators shine are websites that are not blogs. Especially when generated from a data source. Then you can tailor your ssg to the data source, update the data and run the generator to update the site.
|
Certainly
content (not necessarily writing) is the most important aspect of web publishing but only the most time-constrained enthusiast needs to choose one over the other. And in the same way that any automation opens up one's availability to do other things,
automated site generation can liberate time for writing.
I really don't get that second paragraph about generating a site from a data source, that's exactly how my SSG works. The text files and images constitute a data source, the SSG publishes the content with a healthy dose of meta information and logic.
Then there were these comments:
Linux-Fan |
I certainly learned to keep the featureset of such a program to a minimum in order to have a chance to "complete" and publish it.
|
hombre_fatal |
It's a procrastination time hole that mostly just distracts us from the harder, less concrete, less fun thing we supposedly set out to do in the first place. It keeps us from shipping real shit.
e.g. Quit dicking around with your SSG and write the damn blog post already. The hard part of writing something worth reading is not your tech stack.
|
What is it with the Hacker News commenters and not being able to manage their time? Oh, okay that tracks. This talk of 'shipping' and grinding reminds me of Whiona's dissatisfaction with the influencer mentality of the web.
Regardless, hombre_fatal forgets about a little friend we call Sunk Cost Fallacy; if I spent my weeknights coding a new site feature I'm not going to subject myself to the regret of having spent that time on unused code. Also:
- The more optimistic version of that last point, if I have a neat new feature I'm more inclined to deploy it.
- The other other version of that last point, if I've automated something tedious like photo editing and cropping, I'm less likely to loathe finishing that backlogged post.
- More personally (but maybe not), while I enjoy software security work by day, it makes me really appreciate opportunities to code by night. Even if the feature is never used again, it's a thing I like to do.
But
the real value of a custom SSG? Features.
|
Source. Yes, an SEO post about if image alt text matters does feature a screenshot with stretched dimensions. |
It starts with
implementing the stuff any web publishing tool would have - photo editing/labeling, galleries, logs integration. When I
came across the Wordpress photo labeling tool a couple years ago, I was surprised by its similarity to my own.
But then when you realize you write about a lot of board games or video games,
they should be their own semantic thing on the site rather than a generic tag. Or
Erik asks, "hey remember that time we did that one thing, do you still have photos of that?" Or you realize you need a
dive log.
"A blog post is a very long and complex search query..."
... to find fascinating people and make them route interesting stuff to your inbox
yCombLinks |
The writing is pretentious, but the post has several interesting insights.
|
No kidding.
Moving on from SSGs, a few months back
I outlined how
tag/text/symantic matching between sub-corporate sites could be a great substitute for the lack of search engine support for quality user content. This 2022 blog post
linked from HN took the same concept in a slightly different direction:
Henrik Karlsson |
The more precise and niche the words I input, the better the internet would match me with people I could forge meaningful relationships with.
|
My
first and
second iterations compared rss feeds to my site, in effect
finding blogs like mine. Henrik proposes using this method to find people like me.
From the comments section:
celeritascelery |
This makes me wonder if I should be writing on substack. I currently use a static site generator and host with netlify[1]. This is great because it is simple and I have complete control over the site. But at the same time I can't see when people visit my site and there is no comment section. I rely or external forums like HN, lobsters, and Reddit to have a discussion. And I have no way of knowing when my content gets shared because I can't see the traffic.
But my purpose of writing is the same as the authors, to find like minded people and have a discussion with them. It's kind of cure for intellectual loneliness.
[1] https://coredumped.dev/
|
I should say that traffic and referral information is available if your can get and parse logs from your host but there is a certain loneliness in the SSG life.
The big publishing platforms provide a lot of social network-esque features, ones that Henrik might use to find his tribe:
Henrik Karlsson |
When writing in public, there is a common idea that you should make it accessible. This is a left over from mass media. Words addressed to a large and diverse set of people need to be simple and clear and free of jargon. It is valuable to write clearly of course, to a degree. Clear writing is clear thinking. But to make the content accessible? To cut digressions and obscure references to reduce the number of things people need to understand to make sense of your argument? Really?
That is against our purposes here. A blog post is a search query. You write to find your tribe; you write so they will know what kind of fascinating things they should route to your inbox. If you follow common wisdom, you will cut exactly the things that will help you find these people.
|
From the perspective of an indieweb discovery algorithm, peppering posts with jargon is a great way to identify similar content. But I would expect that for most, creating social circles is a secondary objective of web publishing.
Some posts from this site with similar content.
(and some select mainstream web). I haven't personally looked at them or checked them for quality, decency, or sanity. None of these links are promoted, sponsored, or affiliated with this site. For more information, see
.