welcome to cathode ray dude's blog. please be aware that i'm a lot cruder on here than on youtube.
you can subscribe via RSS. point your reader here: RSS Feed
making a website is hard
and every year it gets harder. you can skip this post, i'm just an old man yelling at cloud.
break
i wrote like 8,000 words about how much i hate trying to make websites in the modern world and got so mad and disgusted that i just abandoned it. then i tried to write something nicer and that didn't work either. the best i can manage is not being outright vitriolic
i should be able to host my own blog where i can write posts in a WYSIWYG editor, not in goddamn markdown, and where i can drag images into the editor to upload and embed them. it's pathetic that what we could do with frontpage in 1998 is no longer possible with any available tooling, and it's because the only two parties that exist in the website creation space at this point are
- hypercorporation offering you a Web App designed to generate one of 8 possible sites, all based on massive and hideous templates intended to make your local plumbing company look like a fortune 500 with tons of parallax-effect static images and pull quotes and shit like that. each page load is 8-12 megs and takes over 40 seconds on gigabit internet and an i9
- Computer People who say “just use a static site generator. all you have to do is SSH into your server (you DO carry the same laptop with you everywhere, right?) and type up everything in markdown, then run a command to generate your site, then go load the site in a browser and drill down to the page you just created in order to find out what it looks like, then repeat that every single time you make a change. what do you mean you want to embed images? huh. sounds weird. well if you really want that, it's easy: simply create thumbnails by hand in photoshop, give every image a unique filename by hand, manually upload them to your server, then write a chunk of line noise like:
(images/j2me_game_1_1.png)[!(images/thumbs/j2me_game_1_1.png)[screenshot of j2me game 1]]
“simply do this 24 times if you want 24 images. if you make a typo, you'll find out when the image doesn't load!”
yes i know some ssg's try to smooth over parts of this. i don't care, it's not enough, i fundamentally hate the way they work and it is a massive impedance to me getting anything done, no discussion, this is not up for debate. i just fucking want to see what i'm working on without a six step process, the way i could with frontpage or dreamweaver or microsoft expressions, twenty five fucking years ago.
now i'm not surprised that group #1 won't help me out here; they obviously hate that i exist because i am not a profit center. i understand them completely, and i don't despise them, they are simply my mortal enemies because they have to be.
group #2 bugs me though, because they should be on my side, or at least nod and go “oh yeah, i don't have time to make that for you, but i get why you'd want it. good luck man.” instead they act like i shit in their soup when i don't want to use fucking Jekyll, and idk why. i think i'm being pretty reasonable here, wanting a thing i could do when i was 13, which was 50 times faster than any of this hacking-the-mainframe horseshit, to simply continue being possible. but it isn't, and i've given up, so it's time to compromise.
what i need is a page which i can open in any browser, on any computer i am sitting at, just by remembering the URL and a login. this used to exist, but i went through every single piece of blogging software, and - yeah, it's over scoobs. ten years ago there were dozens of packages that were just, “here's some php or python you can use instead of wordpress to make a site that works like blogger,” but they're all dead.
there are FOSS packages that come up if you google this, but of the ones that aren't long-abandoned, they're all… weird. like i can't even remember names so i won't name them, it's too much effort, but very few actually SAY they're for blogging, and of the ones that do, they all felt like they existed in opposition to some other thing, just out of frame, with which i was unfamiliar. they also usually wanted to run on like cloudflare or S3 or something, instead of a normal server? useless to me.
mostly though, i just… didn't find any blogging software, at all. i found activitypub stuff (don't talk to me about activitypub, i am not interested in anything social-media-shaped) and i found things for like, “note taking,” and various “wikis,” all of which claimed they could be beaten into blog shape, but they were all fiendishly complicated and obviously intended to fight me at every turn. yes, i COULD make blogs with these, but they did not WANT to be blogs, and the instructions for how to make them act like blogs were lengthy, convoluted, and felt like they all had the subtext “okay, you can do this, but why would you want to.” also, none of them looked like blogs. they looked like work. every “webapp” looks like work now, and nobody is going to read my posts on a site that looks like a Sharepoint.
the sole exception seemed to be some node.js thing called Ghost, which almost looked promising, but no matter what anyone tells you, installing a node.js app is no different than running an .exe in windows: it's a completely uninspectable black box that simply expects a given environment and explodes if it doesn't get it.
on windows though, API support has been basically unbroken for over 30 years, so at worst you need to install a runtime that's trivial to find, takes two minutes to install, and then simply works. node.js however is a fragile china doll with infinite dependencies, and i have never gotten it working in any environment without a lengthy struggle. usually it demands “libDickSmasher v2.0 or higher”, so i install libDickSmasher 2.1, and then it says i don't have v2.0 or higher. or, it tries to run and crashes, because they broke the API between minor revs 2.0 and 2.1. and downgrading to 2.0 isn't possible because something else demands 2.1. etc etc etc
in the case of my shared webhosting situation, it's even better: i literally cannot make this work because all the commands from the ghost documentation just make the interpreter dump a trace and exit with an inscrutable error about not being able to create a thread or some other gibberish like that. googling gets nothing except a suggestion that i have inadequate perms; who's surprised, since node.js is an enormous tentacle monster that expects total control of the system it's running on. fuck that.
do not mention containers to me unless you're wearing a cup. and no, i do not want to run a VPS. my first website was on shared hosting in 2003, and you can't tell me that 21 years later we have slid so far backwards that i now need to feed and care for apache myself just in order to have any presence on the web at all. that's stupid, and it's also just plain wrong.
CGI still works, it has always worked, and it has always been the ideal way to make a website. sure, it doesn't scale well to actual “apps”; that's good, i hate “apps.” i have a website, and CGI is perfect for that. it allows just enough complexity to make it easy to update your site without any external tools, and to have things like automatic indexes and search. yes, if you overreach you end up with wordpress - so don't do that, and you'll be fine.
there are CGI websites, and in particular PHP websites, which have been continuously functioning since i was twelve years old. i am not too good for this. in fact, it's all i can really handle.
everything more ambitious than a PHP script requires you to have a PhD from fucking NASA and breaks if you don't constantly feed and care for it. all the node.js Apps and virtually all the SSGs are so complex that your only options are to either treat them as total black boxes, or adjust your brains entire neural geometry to understand their particular ecosystem, and i just don't have the brainspace for it. the beauty of CGI apps is that i can understand them well enough to hack in the features i need without comprehending how the whole enchilada is assembled - and more importantly, eight months from now when i need to fix something, but i've completely forgotten everything i'd learned, i can relearn it all in a couple hours, because it's not a massive App built on Frameworks with Models and Views and all this other incomprehensible dogshit that people only use because they want to be able to Scale to Enterprise Workloads.
i am sick of being told i should care about Enterprise Workloads. i am sick of everyone telling me that i should use their tool because it “scales.” i am not a corporation, i am not interested in getting millions of pairs of eyes on my website, i just want to put text and images on a page without having to assemble and operate a whole Toolchain. when did we give up on the idea that computers should make things easier? when did everyone decide that “1987 greentext unix machine” was the pinnacle of computing? i don't know, but i refuse to accept it.
so here i am. back in 2008, when things worked. back on dokuwiki. sigh. this goddamn thing. i'll write more about it in another post
Backlinks
.
Discussion
As you point out there's a lot of things that led to this situation but I think of your desiderata the toughest one to recreate is gonna be “works on shared hosting”. Ever since the $20/month VPS became a thing in like…2005, the hobbyist computer touchers of the world simultaneously stopped thinking about the shared hosting usecase forever. Shared hosting was always oversold and shady and they'd cut off your MySQL connections when you had high traffic and so forth, but the alternative was like. Colo and managed dedicated hardware that you wouldn't be able to figure out how to buy. So Slicehost came on the scene (around the same time as Ruby on Rails 1.0) and it became way less necessary for your project to target $4.95 a month shared hosts where you got some version of PHP and some amount of MySQL and a preconfigured cgi-bin folder.
This post has me brainstorming a bit about how I would build something you'd hypothetically like and if I would hypothetically enjoy making it, and as a longstanding computer toucher “works on a variety of cheap shared hosting” is really the main requirement I find daunting!
Honestly, I think Grav might be pretty close to what you're looking for. It uses markdown internally, but you absolutely don't have to see that if you don't want to. The WYSIWYG editor works just fine for pretty much anything you're liable to do.
PHP does still exist, and there are still projects out there, depending on what you want to do. But, it became cool to crap all over it (because of legitimate issues), but it's just an entire landscape of things built off of one or two frameworks that are trying to be like everything else.
I think a big problem is that we're kinda using the same word to describe two different things. The simple pages of the past where you can just post an article or something, is the website. But, then when things started migrating over to pages on one of the big sites that were trying to become Internet 2, the only people making things on the web were making Websites: big projects with big goals, trying to compete with one of the big dogs because that's who they're trying to compete with.
I really hope I can beat Grav CMS into shape. It's PHP, it doesn't require a database connection, it *is* in markdown but it has a decent web UI with a preview button and a place to drag and drop upload media that doesn't quite work as well as I'd prefer, but it's like 90% of the way there. It probably still works good enough out of the box for a lot of people, I've sure not found anything better yet, but it could be even better.
I'm not a PHP programmer. I am going to have to learn PHP to fix that last 10%. I'd get better responses from nerds about this if I told them I had to learn IBM RPG. But one of my favorite posts I've seen says that the web doesn't just belong to software engineers, and we're failing society by not doing something about that (to paraphrase it down into half a sentence). So until I find something that actually meets this criteria, and holy shit there's a lot of CMSes out there, I've just got to work on getting this sorted. Because I need something to point to and say “Hey, if you want to make a website you should do this.” I keep telling myself that, anyway.
But another thing I've seen while doing all of this are the… the bodies along the way, as it were. Abandoned software projects. CMSes, plugins, SSGs, hell even CDN providers. It seems like everyone that isn't a Wordpress sized entity has a very short lifespan; a project gets worked on until a single maintainer gets burnt out or bored, or until the backing company runs out of VC money. Even if everything goes well, I have no real way of preventing everything from becoming another abandoned project. But I gotta try I guess.
Better than thinking about how many WYSIWYG desktop site builders and how they're all gone now. “Why is this a trodden path? Where did everyone go?”
at the risk of being condescending – you do have a way to (help) prevent (or at least mitigate) an open-source thing from becoming yet another abandoned project: join it. if it's already abandoned, fork it yourself. if it's not, get familiar with the codebase and jump right in. i can't speak for grav cms but 99% of open-source projects would love to have someone else onboard.
that's a burden on you, yes. but like… someone has to shoulder it. sure, it's a bigger burden for you since you don't already know php. and maybe you don't have the time. that's fair! hell, maybe you just don't want to, that's also fair. i'm putting an idea in your head, not demanding you do it. open-source thrives on people going “sure, i can pitch in”, even if it's just a little.
also fuck ibm rpg. i dislike php but at least it's not that.
Oh I agree! That's my intent, learn enough to make code that works and isn't a complete joke and start putting stuff up on github. Some stuff may even involve getting directly into core Grav components instead of just doing plugins. No idea if I'll actually be able to figure out PHP well enough to do anything, but I'm going to try. All I can do is try.
(Is the site supposed to email you if you get a reply? I'd assume not but I also totally forgot I made this post…. *oh look* a button that says “subscribe to comments”. Reading is hard…)
i got so mad about this (before cohost even announced it was dying, when it was literally the only place i had ever enjoyed writing a blog) that i started a whole fuckin project about it. it's just barely started so far but i'm p sure in like two years i'll have a publicly accessible website which is explicitly designed for blogging, and apparently the only one of its kind. the only technical burden would be buying your own domain if you wanted it. (right now it's a static site generator because i needed something to do my blog and i'm fine with the tradeoffs. the goal is to make that ssg an implementation detail you don't need to think about, though.)
yeah when i was first starting to investigate how to make my blog a year or so ago i was looking for something like dreamweaver and it still boggles me that there's nothing airquote “modern” that works anything like it. i guess they just expect you to use wordpress or wix or whatever, and that sucks. like, wordpress is *fine* honestly, but it's super bloated and. you know. *gestures broadly at whatever tf the wordpress team is doing this week*
but if you don't want to use any of those options or you just wanted to write your own code it's like people just shrugged and went, oh, you're a computer toucher? better get ready to get elbow deep in there!
i gave up looking for things like dreamweaver and just pulled up notepad and started writing my own html and css. then i realized that i'd have to populate and update every page manually. and that sucked. and somehow, in searching for fixes for that, i ended up with jekyll. very “draw the rest of the fucking owl”. kinda feel like it's because i had 0 experience with php or cgi or anything like that (and honestly, still don't. i need to fix this) and didn't really know what else to look for. i feel like if i'd known about those i'd have figured something different. i dunno
but like, yeah! jekyll is way too deep for most folks! you shouldn't have to get silly with the command line just to make a blog post! you should not have to deal with yaml! you should just be able to open a program and make a blog post and not have to worry about ruby errors or some obscure dependency exploding after a bundle update (thanks wdm-0.1.1). it should not be this much of a pain in the ass to make a blog! where did we go so wrong. augh
(also yeah, activitypub. like. i'm on mastodon. it's neat. but holy shit not everything *needs* to be federated, there's no reason for that, hot damn)
i completely forgot two things
1. i'm very glad to see you with a blog, i love reading your stuff, i always learn so much (ngl i have an itch now to wrangle dokuwiki lol, and i am reminded that i need to get familiar with php)
2. stuff like jekyll also completely falls apart if you have more than one author with varying tech skills. i am not making my co author learn git and you can't make me
i have more website builder things to yell about but i should probably do that on my own blog instead of wall of texting the comments section lol
thank you so much i'm glad you are enjoying the blog! it is a huge fragile piece of shit under the hood and i hope it does not blow up on me but i'd rather be doing this than using literally any of the other options
and like, that's the thing - i don't actually think what i'm doing here is fit for general consumption. it works for me to the extent that i am willing and able to put up with its quirks and build workarounds for them, but if i didn't have my specific skillset it'd be the exact same set of complaints i have about all the other stuff. i wouldn't suggest anyone else use this specific set of tools, and i really wish that some of the immense effort going into all these redundant SSGs (i think there are like 40 at this point) would ever get directed into something fit for non-computer touchers
sometimes those are the most fun things though - the things that do exactly what you want them to, you know their quirks and flaws and the workarounds to get things done, maybe not for everyone, but a certain kind of person really enjoys wrangling those kinds of programs. (not just saying this having been on second life since 2008, but it is a good example, thing's built on gum, duct tape, and good wishes, but if you know how to work it, it can do some really cool stuff)
but they absolutely aren't for everyone, yeah. some folks really enjoy making clunky things work. other folks just want to Make A Post and not worry about how the hot dog is made. there need to be more options for them. if it wasn't way way way beyond my current skillset i'd try to make something to fill that gap
i've been going through CMS Hell trying to find a website maker that 1. i can get in the guts of and customize to our needs, 2. my buddy, who is Not a computer toucher, can just log in and make a Post with, and 3. i can host myself, i.e. not tied to a specific web site already. so far: wordpress would have been overkill but alright, were it not for. yeah. grav looked alright, but the roundabout way of adding a post and not being able to add images unless you save post as draft first kinda got me. using publii right now, even though it's not really meant for multiple users (it's a local electron thing instead of a server software) but i found a workaround & it's got a simple wysiwyg editor so i think it's the winner for the immediate future. maybe i'll find something better. i hope. we'll see
i'm also currently diving more into becoming a cli ssg freak (affectionate) and looking at maybe migrating my site from jekyll to hugo. or. something. idk. i'm trying to find a posting gui because i'm tired of writing directly into vscode, and they exist, but almost all the ones for jekyll are either outdated as hell or confusing even for me.
it's bleak out there in the website builder world
I actually do still use Dreamweaver 2018 or something. People still look at the code and make noises and I'm like “what the fuck do you care you weirdo” just like when I was 11.
I'm guessing what you ended up with isn't something you can just whack up on an FTP or something? This seems good but I'm too dumb for most web shit.
yeah no this thing is a huge fucking mess that's barely suitable for my needs, i wouldn't impose it on anyone else. it is constantly breaking, just in ways i understand how to anticipate and fix
Do you have any plans on reposting your longer Cohost posts (the HTC Shift saga, “#The Decline”, etc.) and the articles from your personal website over here?
dunno yet. maybe in a year i'll be sufficiently cooled off to even think about cohost again.
I actually was wondering this yesterday too having a flip through my own posts on cohost and seeing how many bangers of yours i shared. all these posts should not be tears in rained imo
it really feels like the mass exodus from PHP without any “modern” option that matches its convenience was the death knell of web 2.0. no one wants to write PHP anymore, and if you asked them why not I'm sure they'd all give plausible-sounding reasons, but in reality it's all because it became uncool to write PHP after people started pointing out its many flaws. “I write PHP” is a statement met with a thought-terminating “oh, I'm sorry”, regardless of how the person actually feels about the language (a friend of mine actively enjoys writing modern PHP for her job! but the brand damage is already done)
the exit from PHP was also the exit from CGI, because as far as i know nobody made an “app framework” for PHP but every other language has it. so while you absolutely CAN write CGI in python or ruby or whatever, nobody does; it's always “spin up an Application that has Routes and Models and Views! want to put a link on the page? no problem, just instantiate an Enterprise Link Bean and add it to the Rendering Pipeline. make sure your reverse proxy is set up!” and then node.js added on this whole extra paragraph that starts with “so set up your container and internal port forwards, and then,” and like
none of this is necessary. you can still just create website.py and write print(“<h1>welcome to my page</h1>”), it still works. it's not like the frameworks are more secure and for anything short of an ecommerce site you get so little out of it other than it being far harder to make any changes without internalizing an entirely new vocabulary and forming your brain around it
Yeah, shit sucks, it's why I wrote my own blog software which I definitely do not recommend. Every SSG is just someone's “I wanted to teach myself Ruby|Python|Lisp|whatever” project that got far enough to spit out HTML and was left there like a french fry on the sidewalk because making something usable by literally anyone is clearly unacceptable.
Also thanks, your post inspired me to just get comments working on my thingie by slopping them into the database without trying to like, integrate with APub or any other goddamn bullshit I've been thinking about.
yeah and like that's always how it's gonna go right. “i wrote my own which absolutely nobody else should go near” is exactly the situation i'm in. it works… sort of… for me. i wouldn't impose this on anyone else, it has so many bugs and edge cases that i can anticipate but couldn't possibly expect anyone else to. ugh. ugh!!
good luck with the comments i hope you do not get spammed by 500,000 bots (i am praying for the same for myself)
My mom picked up godaddy a while ago and was constantly forcing me to help her with it (even tho I don't know anything about web stuff, but. Y'know. Boomers think their kids are knowledgable at everything on the computer)
For one thing, it was slow, annoyingly confusing, and felt like it kept trying to push her into making some CEObullshitinsporationalcrypto style website, and trying to make anything with actual soul was just working against it. Fuck modern website generators. I remember making a website as a kid on the school computers and it was just glorified, unopinionated textboxes for me to dump my game ideas into.
Oh yeah, social media ate most of the market for just a simple easy to edit page and now we have this shitty market. Everything is a CMS that does everything. I went through so many options before settling on something.
what did you end up settling on?
I found htmly largely to my liking. I just upload the files to my shared hosting, run install.php to set up passwords and such, and it's a simple and functional blog that I can just log into a reasonable post editor on. I like not having to dick around with a database, I can simply back it up by downloading all the files.