Whilst I was up at my parent's place over the Christmas break, I rewrote Gehenna into a proper application that utilises subdomains for sectioning off user content for their own little hub. This takes inspiration from how Substack has the same system (you might notice the navbar is similar too). I wanted this so that people could post their own content here and have it cordoned off based on their handle.
I also switched the site URL over to use .app instead of the original .dev. I still have that domain up and have the domains:
This was done for redundancy in the event that one of these domains is taken down (unsure why but I've seen it happen with other self-hosted sites).
I'm pretty much just using Gehenna as an experimentation site, where I can test different patterns/practices using different technologies. I'd like to setup up image caching instead of the Supabase CDN, because their free-tier storage egress is crazy low (it's 5GB, it should be like 20GB at least). So expect lots of changes to little things all the time, just when I get some spare time to tweak things around.
As of writing, the /404 page (or navigating to a non-existent page) will trigger a forever rerender. This has to do with the middleware of the site redirecting dynamic domains to subdomains, and so it forver loops on missing pages thinking their post pages (look at the routing of this post). So 404 will be checked as an ID in the database for a post, but none will be found, so it will redirect to 404, trigger the check again and again and again. This will be gone pretty soon but it's a pretty funny bug that I only really discovered through debugging my Next.js project and seeing the callstack with the redirect cycle occurring.
Also, I changed around the content editor to still require a cover image for all posts, but you can now inlay images/audio/video alongside text content, where things are broken down into sections. This is really neat if you have examples of media you want to supply alongside your post. For instance, check this out:
The only problem (and I will admit it now, the codebase for Gehenna is open-source anyway) is that the entire post is stored in HTML. I'd prefer if it was stored in JSON, with each section having a type and rendered out that way, but for the Mantine Typography library to apply properly, it requires HTML, and so HTML it is given.
I brought commenting back in since I like to add minor footnotes onto my posts later on, and I feel like that even though I'm the only person who uses Gehenna (but I'm still writing for public consumption), it's nice to have that.
There's no liking/replying to posts however, because that's unnecessary.
Editing posts was an easy job with the old system, just being pure text, whereas for this one I would like images to be stored alongside that. So I am thinking of having that media be uploaded to the storage buckets, but not being accessible until you've actually made your post. It's going to be a lot harder than first thought.
Anyway I'm tired as hell writing this (1:12am right now after flying back down to Brisbane on 1.5 hours of sleep), so I might make some clarifications in the comments if there's anything that I forgot to mention.
Oh yeah I'll talk about Jensen stuff, Duclare/Complai, what happened in 2023 and what's to (hopefully) come in 2024, but those posts will be made tomorrow or on NYE.
Thanks for reading.